<?xml version="1.0"?>
<rss version="2.0">

<channel>
	<title>Planet DebianTW</title>
	<link>http://planet.debian.org.tw/</link>
	<language>en</language>
	<description>Planet DebianTW - http://planet.debian.org.tw/</description>

<item>
	<title>tsung: 在 phpBB 加入 Google Analytics code</title>
	<guid>http://plog.longwin.com.tw/my_note-app-setting/2010/02/09/phpbb-add-google-analytics-2010</guid>
	<link>http://feedproxy.google.com/~r/tsungblog/~3/N1MSrISC3JM/phpbb-add-google-analytics-2010</link>
	<description>&lt;p&gt;
要在 phpBB 加入 Google Analytics code 的步驟:
&lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;vim styles/prosilver/template/overall_footer.html&lt;/li&gt;
	&lt;li&gt;於 &amp;lt;/body&amp;gt; 前加入
	&lt;blockquote&gt;
		&amp;lt;script..... Google Analytics code ..&amp;lt;/script&amp;gt;
	&lt;/blockquote&gt;
	&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
放最下面除了頁面比較快外, 主要是 Analytics code 有時後會把頁面卡住, 雖然可以設 async 避免(&lt;a href=&quot;http://www.stevesouders.com/blog/2009/12/01/google-analytics-goes-async/&quot; target=&quot;_blank&quot; title=&quot;Google Analytics goes async&quot;&gt;Google Analytics goes async&lt;/a&gt;), 不過, 盡量不想去改 Google 本身提供的語法.
&lt;/p&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/tsungblog/~4/N1MSrISC3JM&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;</description>
	<pubDate>Mon, 08 Feb 2010 21:41:06 +0000</pubDate>
</item>
<item>
	<title>tsung: 大同電鍋不銹鋼蒸籠 - 說明書食譜</title>
	<guid>http://plog.longwin.com.tw/my-life/2010/02/08/tatung-electric-rice-cooker-food-doc-howto-2010</guid>
	<link>http://feedproxy.google.com/~r/tsungblog/~3/unpFnNwiSr4/tatung-electric-rice-cooker-food-doc-howto-2010</link>
	<description>&lt;p&gt;
&lt;a href=&quot;http://tcpc.tatung.com/client/product_big.asp?d_id=49&amp;amp;p_id=7&quot; target=&quot;_blank&quot; title=&quot;大同電鍋&quot;&gt;大同電鍋&lt;/a&gt; 相信是家家必備的良品, 之前買沒有用心看說明書, 前幾天去買 &lt;a href=&quot;http://tcpc.tatung.com/client/product_big.asp?d_id=49&amp;amp;p_id=2&quot; target=&quot;_blank&quot; title=&quot;大同不銹鋼蒸籠&quot;&gt;大同不銹鋼蒸籠&lt;/a&gt; 才發現有時間表可以參考.
&lt;/p&gt;
&lt;p&gt;
註: 蒸籠蠻好用的, 原本的要努力疊起來的食物, 蒸籠直接可以平擺, 擺滿滿的一起蒸, 輕鬆多了~
&lt;/p&gt;

&lt;p&gt;
說明書很容易弄丟, 所以把說明書的食譜目錄打起來放. (註: 幾杯 =&amp;gt; 量杯的水量)
&lt;/p&gt;
&lt;h4&gt;
電鍋使用時間表 (空鍋)
&lt;/h4&gt;
&lt;ul&gt;
	&lt;li&gt;水量: 時間&lt;/li&gt;
	&lt;li&gt;半杯: 14分&lt;/li&gt;
	&lt;li&gt;1杯: 20分&lt;/li&gt;
	&lt;li&gt;1杯半: 26分&lt;/li&gt;
	&lt;li&gt;2杯: 32分&lt;/li&gt;
	&lt;li&gt;2杯半: 38分&lt;/li&gt;
	&lt;li&gt;3杯: 44分&lt;/li&gt;
	&lt;li&gt;3杯半: 50分&lt;/li&gt;
	&lt;li&gt;4杯: 56分&lt;/li&gt;
	&lt;li&gt;4杯半: 62分&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;
食譜目錄
&lt;/h4&gt;
&lt;p&gt;
健康的飲食是少油炸多蒸煮
&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;菜名 - 量杯 - 備註&lt;/li&gt;
	&lt;li&gt;苦瓜排骨 - 1杯半 - 用中茶杯裝盛, 再放入蒸籠內.&lt;/li&gt;
	&lt;li&gt;茄片白鯧 - 1杯 - 蕃茄, 蔥, 薑, 酒, 鹽, 胡椒粉放在魚上面.&lt;/li&gt;
	&lt;li&gt;陰瓜仔肉 - 1杯半 - 加入鹹蛋黃與蒜頭, 風味更佳.&lt;/li&gt;
	&lt;li&gt;鼓汁小排 - 1杯半 - 豆鼓, 蒜頭, 辣椒切碎, 炒香淋在排骨上.&lt;/li&gt;
	&lt;li&gt;冬菇蒸機 - 1杯半 - 蔥, 薑, 雞肉, 冬菇調味後拌勻, 放入平底盤.&lt;/li&gt;
	&lt;li&gt;蒜泥白肉 - 1杯半 - 後腿肉蒸完後, 切片淋上調味料即可.&lt;/li&gt;
	&lt;li&gt;醉雞 - 1杯半 - 雞肉蒸完後, 放入蔥, 薑, 麻油, 紹興酒浸泡.&lt;/li&gt;
	&lt;li&gt;鮮菇醬肉 - 半杯 - 鮮菇切大塊, 加入豬肉醬肉, 放入平底盤.&lt;/li&gt;
	&lt;li&gt;蒸花椰菜 - 半杯 - 花椰菜蒸完後, 淋上蠔油, 香油蒜末即可.&lt;/li&gt;
	&lt;li&gt;蒸蛤蜊 - 半杯 - 用大碗公裝盛, 湯汁不流失.&lt;/li&gt;
	&lt;li&gt;蒸紅蟳 - 1杯 - 鎖住原味, 營養不流失.&lt;/li&gt;
	&lt;li&gt;蒸蕃薯 - 1杯 - 蕃薯去皮後, 切塊.&lt;/li&gt;
	&lt;li&gt;茶碗蒸 - 1杯 - 用中茶杯裝盛, 再放入蒸籠內.&lt;/li&gt;
	&lt;li&gt;筒仔米糕 - 2杯半 - 用中茶杯裝盛, 再讓入蒸籠內.&lt;/li&gt;
	&lt;li&gt;芋頭扣肉 - 2杯半 - 用中碗公裝盛, 蒸完後倒扣即可.&lt;/li&gt;
	&lt;li&gt;苦瓜蒸肉 - 2杯 - 苦瓜切半, 加入絞肉, 香菇, 再放入蒸籠內.&lt;/li&gt;
	&lt;li&gt;人參雞 - 3杯半 - 用燉盅裝盛, 再讓入蒸籠內.&lt;/li&gt;
	&lt;li&gt;蘿蔔糕 - 4杯 - 用棉布放入蒸籠內, 再倒入蘿蔔泥.&lt;/li&gt;
	&lt;li&gt;蒸玉米 - 1杯 - 將玉米去掉外殼抹鹽, 再讓入蒸籠內.&lt;/li&gt;
	&lt;li&gt;金針排骨 - 1杯半 - 用中茶杯裝盛, 再放入蒸籠內. &lt;/li&gt;
&lt;/ul&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/tsungblog/~4/unpFnNwiSr4&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;</description>
	<pubDate>Mon, 08 Feb 2010 04:10:07 +0000</pubDate>
</item>
<item>
	<title>tsung: 於系統 移除 CNNIC 憑證</title>
	<guid>http://plog.longwin.com.tw/news_security/2010/02/05/remove-cnnic-ssl-ca-linux-2010</guid>
	<link>http://feedproxy.google.com/~r/tsungblog/~3/TfIx5kbIrJU/remove-cnnic-ssl-ca-linux-2010</link>
	<description>&lt;p&gt;
CNNIC 似乎很嚴重, 最近正忙到不可開消, 還好有不少長輩清楚的將原由、嚴重性做清楚的說明~
&lt;/p&gt;

&lt;h4&gt;
CNNIC 事件說明
&lt;/h4&gt;
&lt;p&gt;
下述摘錄自: &lt;a href=&quot;http://www.jeffhung.net/blog/articles/jeffhung/2804/&quot; target=&quot;_blank&quot; title=&quot;Untrustable CCNIC SSL CA&quot;&gt;Untrustable CNNIC SSL CA&lt;/a&gt;
&lt;/p&gt;
&lt;blockquote&gt;
	&lt;p&gt;
	CNNIC 就跟 TWNIC 一樣，是國家級的網路管理中心，主要負責如 domain registration 業務。雖然 CNNIC 號稱是非營利組織，但實際上對於豎立 GFW 之中國政府的各項要求，沒有能力拒絕。事實上，CNNIC 也幹過，發佈內含流氓軟件功能，且使用者無法刪除的中文上網官方版軟體這種事。
	&lt;/p&gt;
	&lt;p&gt;
	&lt;strong&gt;由於 CNNIC SSL CA 被納入 Root CA，依據 SSL CA 的階層式信任的架構，CNNIC 隨時可以發佈假的 CA，進行 SSL MITM (Man-In-The-Middle) 攻擊。這個意思是說，當你從境外連結中國境內的網站，透過 SSL 登入該網站系統時，即使瀏覽器顯示此 SSL 安全連線安全無虞，但實際上因為假的 CA 之故，很有可能連到的實際上是個釣魚網站 (DNS hijacking 是中國 GFW 常用的技倆)。因此，你的帳號密碼，就會被竊取；而如果這密碼是平常常用的密碼，那你所有平常用的資訊服務，盡皆淪陷。&lt;/strong&gt;
	&lt;/p&gt;
	&lt;p&gt;
	另一種更可能的情境是，在中國境內連 Gmail 時，由於 CNNIC 的假 CA 與 DNS hijacking 之故，連到的是假的 Gmail 登入頁，你很可能毫無所覺，使自己的 Gmail 帳號密碼拱手予人。
	&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h4&gt;
CNNIC 憑證的結論
&lt;/h4&gt;
&lt;ul&gt;
	&lt;li&gt;結論: 盡快把 CNNIC 的憑證從系統移除.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;
於 Debian、Ubuntu Linux 移除 CNNIC 憑證
&lt;/h4&gt;
&lt;h5&gt;
方法1
&lt;/h5&gt;
&lt;ol&gt;
	&lt;li&gt;sudo dpkg-reconfigure ca-certificates&lt;/li&gt;
	&lt;li&gt;選 Ask&lt;/li&gt;
	&lt;li&gt;將 mozilla/Entrust.net_Secure_Server_CA.crt 前面的 * 拿掉.&lt;/li&gt;
&lt;/ol&gt;
&lt;h5&gt;
方法2
&lt;/h5&gt;
&lt;ol&gt;
	&lt;li&gt;sudo vim /etc/ca-certificates.conf
	&lt;blockquote&gt;
		mozilla/Entrust.net_Secure_Server_CA.crt&lt;br /&gt;
		改成 (前面加 &amp;quot;!&amp;quot; 號)&lt;br /&gt;
		!mozilla/Entrust.net_Secure_Server_CA.crt
	&lt;/blockquote&gt;
	&lt;/li&gt;
	&lt;li&gt;sudo update-ca-certificates&lt;/li&gt;
&lt;/ol&gt;
&lt;h4&gt;
於 Firefox 刪除 CNNIC 憑證
&lt;/h4&gt;
&lt;ol&gt;
	&lt;li&gt;編輯 -&amp;gt; 偏好設定 -&amp;gt; 進階 -&amp;gt; 加密&lt;/li&gt;
	&lt;li&gt;檢視憑證清單 -&amp;gt; 憑證機構&lt;/li&gt;
	&lt;li&gt;將 Entrust.net 下面的全部選起來, 按 &amp;quot;刪除&amp;quot; 即可.&lt;/li&gt;
&lt;/ol&gt;
&lt;h4&gt;
相關網頁
&lt;/h4&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://people.debian.org.tw/~chihchun/2010/02/02/remove-cnnic-cert-on-linux/&quot; target=&quot;_blank&quot; title=&quot;在 Linux 上移除 CNNIC 憑證&quot;&gt;在 Linux 上移除 CNNIC 憑證&lt;/a&gt; - 此篇有非常清楚的說明.&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;http://jonny.ubuntu-tw.net/2010/02/cnnic-on-linux.html&quot; target=&quot;_blank&quot; title=&quot;移除 CNNIC 憑證 on Linux&quot;&gt;移除 CNNIC 憑證 on Linux&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/tsungblog/~4/TfIx5kbIrJU&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;</description>
	<pubDate>Thu, 04 Feb 2010 21:22:31 +0000</pubDate>
</item>
<item>
	<title>tsung: Google Open Source Porject 列表</title>
	<guid>http://plog.longwin.com.tw/news-google-yahoo/2010/02/04/google-open-source-project-list-2010</guid>
	<link>http://feedproxy.google.com/~r/tsungblog/~3/guhz_Mky0Ug/google-open-source-project-list-2010</link>
	<description>&lt;p&gt;
Google Open Source 的專案到底有哪些? 總列表在哪?
&lt;/p&gt;

&lt;h4&gt;
Google Open Source Porject 列表
&lt;/h4&gt;
&lt;ul&gt;
	&lt;li&gt;Google Open Source Porject 列表 詳見: &lt;a href=&quot;http://code.google.com/hosting/projects.html&quot; target=&quot;_blank&quot; title=&quot;Open Source Projects - Project Hosting on Google Code&quot;&gt;Open Source Projects&lt;/a&gt; (Google Code)&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;
相關網頁
&lt;/h4&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://www.google.org.cn/posts/35-google-open-source-projects-you-probably-do-not-know.html&quot; target=&quot;_blank&quot; title=&quot;35個你也許不知道的 Google 開放原始碼項目&quot;&gt;35個你也許不知道的 Google 開放原始碼項目&lt;/a&gt; - 將這些專案比較特殊的另外整理出來.&lt;/li&gt;
&lt;/ul&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/tsungblog/~4/guhz_Mky0Ug&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;</description>
	<pubDate>Wed, 03 Feb 2010 21:35:16 +0000</pubDate>
</item>
<item>
	<title>Rex's blah blah blah: Java JVM 的 Dual Stack/IPv6 連線問題</title>
	<guid>http://people.debian.org.tw/~chihchun/?p=1794</guid>
	<link>http://people.debian.org.tw/~chihchun/2010/02/03/connectivity-issue-of-java-with-ipv6/</link>
	<description>&lt;p&gt;大約從 J2SE 1.4/1.6 開始，Sun 所釋出的 Java runtime 開始支援 IPv6 連線功能。一般的 Linux 的&lt;abbr title=&quot;distribution&quot;&gt;套件系統&lt;/abbr&gt; 也開始支援 IPv6，許多系統預設是同時開啟 IPv4/IPv6 或稱為 &lt;a href=&quot;http://en.wikipedia.org/wiki/IPv6#Dual_IP_stack_implementation&quot;&gt;Dual Stack&lt;/a&gt; 網路功能。&lt;/p&gt;
&lt;p&gt;基本上，鼓勵各種軟體開始移植到 IPv6 網路上是一件好事。Java runtime 若在 dual-stack 的機器上，預設走 IPv6 位址，因為 IPv6 位址可同時走 IPv4/IPv6 網路。不過問題在於，若一般的 GNU/Linux Debian, Ubuntu 系統，預設會啟動 IPv6 介面，無論你所在網路是否有 IPv6 路由。&lt;/p&gt;
&lt;p&gt;於是，你若在 Linux 上使用一些 Java 寫成的網路軟體，如 JDownloader 等，很有可能發生軟體運作後，卻什麽地方都連不上的症狀。解決辦法一是關閉 IPv6 網路功能，一則是利用 JRE 的參數，改為預設使用 IPv4 網路。&lt;/p&gt;
&lt;h2&gt;檢查 IPv6 是否驅動&lt;/h2&gt;
&lt;p&gt;首先，你若想確認是否開啟了 IPv6 網路，可於終端機下使用此指令判斷&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;$ ip addr|grep inet6&lt;/pre&gt;
&lt;p&gt;若出現了 inet6 之位址，即為開啟了 IPv6 網路。&lt;/p&gt;
&lt;p&gt;你若想快速的關閉 IPv6 功能，可以利用 root 執行 ip 指令，直接刪除 inet6 位址&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;/sbin/ip addr del &amp;lt;ipv6address&amp;gt;/&amp;lt;prefixlength&amp;gt; dev ethX&lt;/pre&gt;
&lt;h2&gt;舊版核心&lt;/h2&gt;
&lt;p&gt;在舊版核心，IPv6 功能是以模組方式存在，妳可以透過更改 modprobe (module-init-tools) 的設定，讓系統不載入對應驅動程式。關閉的方式&lt;a href=&quot;http://www.debian-administration.org/article/Disabling_IPv6_under_a_2.6_kernel&quot;&gt;很簡單&lt;/a&gt;，請修改 /etc/modprobe.d/ 之設定，如以 root 執行以下指令&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;# cat &amp;gt; /etc/modprobe.d/00local.conf &amp;lt;&amp;lt;EOF
alias net-pf-10 off
alias ipv6 off
EOF&lt;/pre&gt;
&lt;p&gt;更改之後，重新開機即可關閉 IPv6 功能。&lt;/p&gt;
&lt;h2&gt;新版核心&lt;/h2&gt;
&lt;p&gt;在新版的 Debian/Ubuntu 中使用 2.6 核心，因為內建 IPv6 驅動程式, 你得利用開機參數 (cmdline) 關閉之。作法是修改 /etc/default/grub 檔案，更改 GRUB_CMDLINE_LINUX_DEFAULT 一行，加入 &lt;em&gt;ipv6.disable=1&lt;/em&gt;，如&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;GRUB_CMDLINE_LINUX_DEFAULT=&quot;ipv6.disable=1 quiet&quot;&lt;/pre&gt;
&lt;p&gt;修改完畢後，請用 root 執行 &lt;em&gt;update-grub&lt;/em&gt; 後，重新開機。&lt;/p&gt;
&lt;h2&gt;JRE 參數&lt;/h2&gt;
&lt;p&gt;另外一項作法是更改 JRE 參數，你若知道啟動該軟體的 shell script 位於何處，可新增&lt;a href=&quot;http://java.sun.com/j2se/1.5.0/docs/guide/net/ipv6_guide/index.html#ipv6-networking&quot;&gt;一參數&lt;/a&gt;如下&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;$ java -Djava.net.preferIPv4Stack=true Main&lt;/pre&gt;
&lt;p&gt;這樣就可以要求 JVM 預設使用 IPv4 stack.&lt;/p&gt;
&lt;p&gt;這是一篇 &lt;a href=&quot;http://people.debian.org.tw/~chihchun/tag/tips/&quot;&gt;Tips&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;修訂紀錄 (20100207): 補充利用 iproute 關閉 ipv6 方法，說明新舊版核心處理方式。&lt;/em&gt;&lt;/p&gt;
&lt;img src=&quot;http://people.debian.org.tw/~chihchun/?ak_action=api_record_view&amp;amp;id=1794&amp;amp;type=feed&quot; alt=&quot;&quot; /&gt;</description>
	<pubDate>Wed, 03 Feb 2010 12:00:07 +0000</pubDate>
</item>
<item>
	<title>tsung: PHP 免費線上電子書 - Practical PHP Programming</title>
	<guid>http://plog.longwin.com.tw/document-ebook/2010/02/03/php-free-ebook-practical-2010</guid>
	<link>http://feedproxy.google.com/~r/tsungblog/~3/5Q_KT7Wr2Uw/php-free-ebook-practical-2010</link>
	<description>&lt;p&gt;
PHP 免費的線上電子書, 這本應該不算是入門, 比較偏中上程度適合閱讀, 裡面也有提到如何寫 PHP extensions 的 Hello world 版.
&lt;/p&gt;

&lt;h4&gt;
Practical PHP Programming 電子書
&lt;/h4&gt;
&lt;p&gt;
線上文件: &lt;a href=&quot;http://www.tuxradar.com/practicalphp&quot; target=&quot;_blank&quot; title=&quot;Practical PHP Programming&quot;&gt;Practical PHP Programming&lt;/a&gt;
&lt;/p&gt;
&lt;h4&gt;
目錄
&lt;/h4&gt;
&lt;ol&gt;
	&lt;li&gt;Preface&lt;/li&gt;
	&lt;li&gt;Introducing PHP&lt;/li&gt;
	&lt;li&gt;Simple variables and operators&lt;/li&gt;
	&lt;li&gt;Functions&lt;/li&gt;
	&lt;li&gt;Arrays&lt;/li&gt;
	&lt;li&gt;Objects&lt;/li&gt;
	&lt;li&gt;HTML Forms&lt;/li&gt;
	&lt;li&gt;Files&lt;/li&gt;
	&lt;li&gt;Databases&lt;/li&gt;
	&lt;li&gt;Cookies and Sessions&lt;/li&gt;
	&lt;li&gt;Multimedia&lt;/li&gt;
	&lt;li&gt;XML &amp;amp; XSLT&lt;/li&gt;
	&lt;li&gt;Output Buffering&lt;/li&gt;
	&lt;li&gt;Java and COM&lt;/li&gt;
	&lt;li&gt;Networks&lt;/li&gt;
	&lt;li&gt;Miscellaneous topics&lt;/li&gt;
	&lt;li&gt;Security concerns&lt;/li&gt;
	&lt;li&gt;Performance&lt;/li&gt;
	&lt;li&gt;Writing PHP&lt;/li&gt;
	&lt;li&gt;Writing extensions&lt;/li&gt;
	&lt;li&gt;Alternative PHP uses&lt;/li&gt;
	&lt;li&gt;Practical PHP&lt;/li&gt;
	&lt;li&gt;Bringing it to a close&lt;/li&gt;
	&lt;li&gt;Answers to Exercises&lt;/li&gt;
	&lt;li&gt;The future of PHP&lt;/li&gt;
	&lt;li&gt;Glossary &lt;/li&gt;
&lt;/ol&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/tsungblog/~4/5Q_KT7Wr2Uw&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;</description>
	<pubDate>Tue, 02 Feb 2010 21:36:54 +0000</pubDate>
</item>
<item>
	<title>Cornelius: Vim - glob 應用</title>
	<guid>tag:blogger.com,1999:blog-3147036244016021082.post-4668333040907850478</guid>
	<link>http://c9s.blogspot.com/2010/02/vim-glob.html</link>
	<description>臨時需要將一目錄下所有的檔案插入為 img tag ，所以臨時直接在 vim command line 下寫了 &lt;a href=&quot;http://www.plurk.com/p/3lbr8t&quot;&gt;這樣的東西&lt;/a&gt;來應付:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;整理了一下:&lt;br /&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/3147036244016021082-4668333040907850478?l=c9s.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Tue, 02 Feb 2010 03:53:04 +0000</pubDate>
	<author>cornelius.howl@gmail.com (c9s)</author>
</item>
<item>
	<title>tsung: 教育部免費的楷書字型</title>
	<guid>http://plog.longwin.com.tw/news-application/2010/02/02/free-edu-nlc-font-2010</guid>
	<link>http://feedproxy.google.com/~r/tsungblog/~3/k_b74DzSUQQ/free-edu-nlc-font-2010</link>
	<description>&lt;p&gt;
教育部提供免費的楷書字型可以讓一般人使用, 商用填寫資料來申請授權.
&lt;/p&gt;
&lt;p&gt;
詳細可見: &lt;a href=&quot;http://www.edu.tw/mandr/content.aspx?site_content_sn=3591&quot; target=&quot;_blank&quot; title=&quot;教育部標準楷書--國語推行委員會 National Languages Committee&quot;&gt;教育部免費的楷書字型&lt;/a&gt;
&lt;/p&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/tsungblog/~4/k_b74DzSUQQ&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;</description>
	<pubDate>Mon, 01 Feb 2010 20:32:24 +0000</pubDate>
</item>
<item>
	<title>jouston: CarryMe快跑之三成到麻布</title>
	<guid>tag:blogger.com,1999:blog-4227440140881202536.post-8076701182832403582</guid>
	<link>http://jouston.blogspot.com/2010/02/carryme.html</link>
	<description>今天心情不好。各種狀況一大堆。

下班了以後，可以自己亂亂跑，是讓我很開心的事情。



騎CarryME回到InterContinental Grand Seoul，Doorman大概都已經因為我的CarryME而熟識了。開心的聊了一下，就回到房間裡把筆記型電腦丟在房間，然後打開GPS logger準備出發。

由於是晚上，肚子餓了，本來打算到現代百貨公司吃飯，結果地下美食街實在沒有甚麼看上眼的食物，就又拖著CarryME走向COEX Mall的懷抱。莫名其妙的被某家有部隊湯(Butae Jikae)的店吸引進去，結果很神奇的點了牛肉湯(YuKaeChan)，而且還是不辣的版本。某前同事要是看到一定又會說我舌頭已經壞掉了，是啦，是有一點點的辣味，只不過跟我平常熟悉的辣牛肉湯比起來，這一點點大概只是輕微的調味而已。

吃飽喝足了以後，拉著CarryME上1F，也不知道去哪裡，</description>
	<pubDate>Mon, 01 Feb 2010 14:52:00 +0000</pubDate>
	<author>noreply@blogger.com (Jouston Huang)</author>
</item>
<item>
	<title>Rex's blah blah blah: git archive 與 log 小技巧</title>
	<guid>http://people.debian.org.tw/~chihchun/?p=1775</guid>
	<link>http://people.debian.org.tw/~chihchun/2010/02/01/git-archive-and-log/</link>
	<description>&lt;p&gt;時常，你得將手上的軟體原始碼壓起來釋出給第三方使用、測試。特別是你希望提供 daily basics/ revision basics 讓使用者取得最新版軟體的時候。&lt;/p&gt;
&lt;p&gt;由於最近都已經只用 git，依據我自己的習慣，希望能夠在檔名中使用&lt;abbr title=&quot;abbreviated commit hash&quot;&gt;簡碼版次&lt;/abbr&gt;，以便未來能夠追蹤出該版次的問題。稍微&lt;a href=&quot;http://www.plurk.com/p/3fcfl0&quot;&gt;問了一下友人&lt;/a&gt;與查了一下文件，取得 abbreviated commit hash 的作法如下&lt;/p&gt;
&lt;p&gt;&lt;code&gt;git log --pretty=format:&quot;%h&quot; -1&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;若你想將整份程式碼壓縮起來，可以使用&lt;/p&gt;
&lt;p&gt;&lt;code&gt;git archive --format zip -o filename.zip HEAD&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;倘若想加上日期作為檔名，請使用&lt;/p&gt;
&lt;p&gt;&lt;code&gt;git archive --format zip -o $(git log --pretty=format:&quot;%h&quot; -1).zip HEAD&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;若常常使用這個指令，有兩種作法，一是&lt;a href=&quot;http://git.wiki.kernel.org/index.php/Aliases#Advanced&quot;&gt;設定為 git alias&lt;/a&gt;. 另一則是利用 git 的 commands (verbs) 命名機制，在你的&lt;abbr title=&quot;PATH for shell&quot;&gt;執行路徑&lt;/abbr&gt; 下，寫入一檔案名稱如 git-zip。並將上述指令加入檔案中，未來就可以使用 git zip 來產生最新版壓縮檔。&lt;/p&gt;
&lt;p&gt;作法如&lt;br /&gt;
&lt;code&gt;$ cat &gt; ~/bin/git-zip&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
git archive --format zip -o $(git log --pretty=format:&quot;%h&quot; -1).zip HEAD&lt;br /&gt;
$ chmod u+x ~/bin/git-zip&lt;br /&gt;
$ cd git-repository&lt;br /&gt;
$ git zip&lt;br /&gt;
&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;另外，為了容易辨識版次，你也可以利用 &lt;a href=&quot;http://progit.org/book/ch7-2.html&quot;&gt;gitattributes&lt;/a&gt; 在程式碼中加入 ident ($Id$) 作為標示。操作可參考 &lt;a href=&quot;http://kalug.linux.org.tw/~lloyd/&quot;&gt;Lloyd Huang&lt;/a&gt; 所寫之 &lt;a href=&quot;http://kalug.linux.org.tw/~lloyd/bblog/archives/2009/12/24/[tip]_git_ident_and_export-subst_howto/&quot;&gt;Howto&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;這是一篇 &lt;a href=&quot;http://people.debian.org.tw/~chihchun/tag/tips/&quot;&gt;Tip&lt;/a&gt;.﻿&lt;/p&gt;
&lt;img src=&quot;http://people.debian.org.tw/~chihchun/?ak_action=api_record_view&amp;amp;id=1775&amp;amp;type=feed&quot; alt=&quot;&quot; /&gt;</description>
	<pubDate>Mon, 01 Feb 2010 12:00:34 +0000</pubDate>
</item>
<item>
	<title>Cornelius: hypergit.vim (A Git plugin for vim)</title>
	<guid>tag:blogger.com,1999:blog-3147036244016021082.post-3714030554910667469</guid>
	<link>http://c9s.blogspot.com/2010/02/hypergitvim-git-plugin-for-vim.html</link>
	<description>最近的作品 - &lt;a href=&quot;http://github.com/c9s/hypergit.vim&quot;&gt;hypergit.vim&lt;/a&gt;。先前的 fastgit.vim 經過一些思考後，打掉重寫了，新增的 GitMenu 讓原本越來越的 Command 得以有組織性的以樹狀選單呈現，更 Powerful。&lt;div&gt;&lt;br /&gt;&lt;div&gt;正為了要有一個樹狀選單，所以晚上以 VimL 實做了 Helper Message Class 以及 TreeMenu Class ，以方便其他各種 Plugin 需要用時重用。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;該 Git Menu 可自動 Parse Remote 名稱 、Branch 名稱以產生 TreeMenu ，以及各 Menu Node 都可像 Nerd Tree Plugin 一般延展、收和，或執行。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;以下是 Screenshot:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;http://4.bp.blogspot.com/_i3PNCkrh-3k/S2Xa-Od8j4I/AAAAAAAAJLE/EK7WbuvNgIQ/s1600-h/Screen+shot+2010-02-01+at+2.51.53+AM.png&quot;&gt;&lt;img src=&quot;http://4.bp.blogspot.com/_i3PNCkrh-3k/S2Xa-Od8j4I/AAAAAAAAJLE/EK7WbuvNgIQ/s320/Screen+shot+2010-02-01+at+2.51.53+AM.png&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5432989288062816130&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Well, It's still under development.&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/3147036244016021082-3714030554910667469?l=c9s.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Mon, 01 Feb 2010 10:13:52 +0000</pubDate>
	<author>cornelius.howl@gmail.com (c9s)</author>
</item>
<item>
	<title>Cornelius: Vim - Making your script auto-installable</title>
	<guid>tag:blogger.com,1999:blog-3147036244016021082.post-1372556132410632844</guid>
	<link>http://c9s.blogspot.com/2010/01/vim-make-your-script-auto-installable.html</link>
	<description>Once you write a plugin , you will need it to be auto-installable. &lt;a href=&quot;http://github.com/c9s/vimana&quot;&gt;Vimana&lt;/a&gt; is a script manager , which parses script files, and looks for a &quot;script type:&quot; tag to install the script.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;For example , if you have script , which is a ftplugin , then you should write:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;in your script file. cases is ignored.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;then the plugin could be installed via Vimana script manager.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Or if you have multiple file to install , you can put your script files in this kind of directory structure:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;plugin/script.vim&lt;/div&gt;&lt;div&gt;ftplugin/script.vim&lt;/div&gt;&lt;div&gt;doc/script.txt&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;then tar it and upload to vim.org site , the plugin could be installed via Vimana too.&lt;/div&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/3147036244016021082-1372556132410632844?l=c9s.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Mon, 01 Feb 2010 09:52:13 +0000</pubDate>
	<author>cornelius.howl@gmail.com (c9s)</author>
</item>
<item>
	<title>Cornelius: Vim - TreeMenu.vim</title>
	<guid>tag:blogger.com,1999:blog-3147036244016021082.post-2041987392516630354</guid>
	<link>http://c9s.blogspot.com/2010/02/vim-treemenuvim.html</link>
	<description>This is a TreeMenu class for VimL. so that you can render a tree menu in a buffer.&lt;br /&gt;&lt;br /&gt;Synopsis:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;and you can also hook a method to after_render when each time the menu buffer is updated , just like what i do in hypergit.vim - I need to redraw git help message when the buffer is updated by tree menu.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Menu Source:&lt;br /&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/3147036244016021082-2041987392516630354?l=c9s.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Mon, 01 Feb 2010 09:43:37 +0000</pubDate>
	<author>cornelius.howl@gmail.com (c9s)</author>
</item>
<item>
	<title>tsung: Windows 免費燒錄軟體 - 燒錄 MDF、NRG、ISO、CDI 檔</title>
	<guid>http://plog.longwin.com.tw/news-application/2010/02/01/windows-freeware-record-cdrw-2010</guid>
	<link>http://feedproxy.google.com/~r/tsungblog/~3/IxkP887VDxk/windows-freeware-record-cdrw-2010</link>
	<description>&lt;p&gt;
前幾天要燒片子, 要用 &lt;q&gt;&lt;a href=&quot;http://plog.longwin.com.tw/news-windows/2008/10/14/windows-freeware-software-record-cdburnerxp-2008&quot; target=&quot;_blank&quot; title=&quot;Windows 免費燒錄軟體 - CDBurnerXP&quot;&gt;Windows 免費燒錄軟體 - CDBurnerXP&lt;/a&gt;&lt;/q&gt; 正好網站掛了, 只好重新再替代品, 順便做做紀錄.
&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;
	註1: 我要燒錄的類型主要是MDF、NRG、ISO、CDI&lt;/li&gt;
	&lt;li&gt;註2: CDI 是 毒蛇(DiscJuggler) 的映像檔, 可用 DiscJuggler、酒精燒錄, 或用 IsoBuster 解壓縮 到硬碟. &lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
NRG、MDF、ISO 的燒錄軟體
&lt;/h4&gt;
&lt;ul&gt;
	&lt;li&gt;
	買光碟機通常都會附 Nero, 就可以輕鬆解決燒錄 NRG 的問題. 
	&lt;/li&gt;
	&lt;li&gt;
	另外要燒 MDF, 目前找到的免費軟體是 &lt;a href=&quot;http://www.imgburn.com/&quot; target=&quot;_blank&quot; title=&quot;The Official ImgBurn Website&quot;&gt;ImgBurn&lt;/a&gt; (可燒錄: BIN, DI, DVD, GI, IMG, ISO, MDS, NRG 和 PDI 檔).
	&lt;/li&gt;
	&lt;li&gt;
	所以灌 Nero + ImgBurn, 就可以解決大多數問題囉~
	&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;
相關網頁
&lt;/h4&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://briian.com/?p=2255&quot; target=&quot;_blank&quot; title=&quot;[下載] ImgBurn v2.5.0.0 繁體中文版，免費燒錄軟體（Wii ISO檔燒錄教學） &quot;&gt;[下載] ImgBurn v2.5.0.0 繁體中文版，免費燒錄軟體（Wii ISO檔燒錄教學） &lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/tsungblog/~4/IxkP887VDxk&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;</description>
	<pubDate>Sun, 31 Jan 2010 21:35:45 +0000</pubDate>
</item>
<item>
	<title>Asho(阿信): 2010/01/31練車後記</title>
	<guid>tag:blogger.com,1999:blog-3562335153267203512.post-7936694006958571689</guid>
	<link>http://ashotw.blogspot.com/2010/01/20100131.html</link>
	<description>&amp;nbsp;&amp;nbsp;&amp;nbsp; 寄來了適合小一的杯架，所以我也迫不及待地學著拓海把水裝到2/3的位置這樣開車。試試看如何不讓水溢出來。&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; 我選擇的路線是半天岩附近的路，不是很長，但有一些高低差的U型彎，而且這裡也是我十年前練手排車的地方，頗讓人回味。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a name=&quot;more&quot;&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 我以速限再加10~20的速度進行上下坡，上坡時，由於小一只有75馬力(March引擎)，所以上山其實滿慢的，加上杯子的水只有2/3(裝太少了)，所以根本沒有溢出來。&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 接下來就是換下坡了，下坡其實有點小危險，但內心卻是很刺激！！！速度大約控制在40~60的速度+OD off的狀態，入彎依照Out-In-Out的規則切入，看好剎車點後再點剎入彎，之後車頭出彎後再加速，放在後車廂的東西跑來跑去的，聽起來怪有趣的...&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 只不過在U型彎上，能感受到小一的不順，必須降到很慢才好轉，不然車子就有點推頭的現象，大概是我的技術還不到家...&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 開這一段路時，會很明顯地感覺到以前開手排1800cc時和自排1300cc的差異，以引擎反應上，手排似乎能馬上依照我的想法去動，降檔、過彎、出彎和油門控制，手排反應比較明顯。但開小一時，就是有一種不順的感覺說不上來，尤其是過彎的穩定度。&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 我想可能是我方向盤的轉向控制還不夠好，我開車時習慣單手開，這樣我能更細緻地去感受方向盤和油門踩踏的配合，高低差不大時，我還可以反應過來。高低差一大，另一隻手就要幫忙轉向，但這樣子就會忽略油門細膩的控制，還必須多練習。神之手果然不是蓋的...&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; 開了一陣子後，遇到前面有一台Lancer，我似乎靠太近了，所以就停下來讓對方走一陣子再開，也想一下過彎的感覺...&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; 經過這一次的練習，我覺得除了轉向+剎車的穩定度外，行車線也很重要，行車線對了，G力也會小一點，坐在車上也比較舒服。下一次我就要再挑戰一次，水要加到4/5以上這樣開看看... &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;題外話一：&lt;br /&gt;&amp;nbsp; &amp;nbsp; 這一次開車出去，也發現了自已開自排會出現的問題，在倒車時，我的腳習慣在油門，有時候就會把油門當成剎車踩...Orz...這可能跟我以前開手排的關係...&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; 知道這個問題後，以後開自排時，一切到R檔，我就改成腳在剎車上待機，就不會出現這個問題了。&lt;br /&gt;&lt;br /&gt;題外話二：&lt;br /&gt;&amp;nbsp; &amp;nbsp; 這樣開山路，雖然只有短短的三十公里，油卻耗了不少...Orz......&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/3562335153267203512-7936694006958571689?l=ashotw.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Sun, 31 Jan 2010 19:23:37 +0000</pubDate>
	<author>noreply@blogger.com (阿信)</author>
</item>
<item>
	<title>jouston: 在韓國首爾(Seoul)暢行無阻的CarryMe</title>
	<guid>tag:blogger.com,1999:blog-4227440140881202536.post-5691036489965383572</guid>
	<link>http://jouston.blogspot.com/2010/01/seoulcarryme.html</link>
	<description>昨天凌晨，被老闆要求星期一要到韓國支援某個客戶。

大家看過&quot;Who wants to be Millionaire?&quot;嗎？這就是我的真實生活。

我立刻開始想辦法訂飛機票，喔，從今天開始到2月6日全部客滿(訂機票當日為Jan 30th)，很好。EzTravel，這次不能靠你了。接下來，衝到EVA Air網站，憑藉著我是銀卡會員，先登入來碰碰運氣。啊哈，只有今晚才有班機... XD

花了一點時間訂票之後，才發現，靠腰，原來是MD90小飛機... 好吧，就算了，就算搭船也好，能把我星期一前送到都是好的。

接下來，接著訂飯店，印象中上次去韓國出差，距離公司最近的就是InterContinental，Hotel.com看看(我是想賺那個十晚送一晚的Package啦)，啥？完全沒有List... 然後逛逛其他網站之後，馬上決定，就試試看InterContinental網站吧。

沒有想到，</description>
	<pubDate>Sun, 31 Jan 2010 14:08:00 +0000</pubDate>
	<author>noreply@blogger.com (Jouston Huang)</author>
</item>
<item>
	<title>FourDollars: 在 Debian GNU/Linux 5.0.3 (Lenny) 上面安裝 Drupal 6.15</title>
	<guid>tag:blogger.com,1999:blog-14489808.post-7791095552607746325</guid>
	<link>http://fourdollars.blogspot.com/2010/01/debian-gnulinux-503-lenny-drupal-615.html</link>
	<description>&lt;div&gt;首先要準備一個 Debian GNU/Linux 5.0.3 (Lenny) 的系統環境，這邊是選擇使用 debian-503-i386-netinst.iso 並透過網路安裝，&lt;br /&gt;在安裝過程當中語系選擇英文並且在 Software selection 時只選擇安裝 Web server 以及 SQL database 來安裝，盡量維持系統精簡，&lt;br /&gt;&lt;img src=&quot;http://lh5.ggpht.com/_cYaJquZOLiw/S2T4zh66fiI/AAAAAAAACmA/hdysH2sqYZg/%5BUNSET%5D.png?imgmax=800&quot; /&gt;&lt;br /&gt;接下來應該只要再抓 59 個套件安裝，在 2M/256K ADSL 正常情況的網路環境下五分鐘以內就可以裝好了，&lt;br /&gt;&lt;img src=&quot;http://lh4.ggpht.com/_cYaJquZOLiw/S2UI-Ohqt8I/AAAAAAAACmE/Mjy0I7ynW3o/%5BUNSET%5D.png?imgmax=800&quot; /&gt;&lt;br /&gt;到這邊為止應該已經裝好所需要的 Apache 跟 PostgreSQL 了，重新啟動系統後再安裝 drupal6 跟 php5-pgsql 套件，&lt;br /&gt;&lt;blockquote&gt;# apt-get install drupal6 php5-pgsql&lt;br /&gt;&lt;/blockquote&gt;在設定 drupal6 的畫面中記得要輸入密碼，不然系統會改使用 ident 機制，安裝完後需要重新啟動 Apache&lt;br /&gt;&lt;blockquote&gt;# /etc/init.d/apache2 restart&lt;br /&gt;&lt;/blockquote&gt;就可以在 http://XXX.XXX.XXX.XXX/drupal6/install.php 看到 Drupal6 接下來的安裝程序&lt;br /&gt;&lt;img src=&quot;http://lh5.ggpht.com/_cYaJquZOLiw/S2UQd944s4I/AAAAAAAACmM/z9EwxD-lvz4/%5BUNSET%5D.png?imgmax=800&quot; /&gt;&lt;br /&gt;不過此時只有英文介面，如果需要安裝繁體中文介面就要執行接下來的動作，&lt;br /&gt;&lt;blockquote&gt;# wget http://ftp.drupal.org/files/projects/zh-hant-6.x-1.5.tar.gz -O - | tar xz -C /usr/share/drupal6&lt;br /&gt;&lt;/blockquote&gt;然後重新載入網頁就可以看到繁體中文介面，&lt;br /&gt;&lt;img src=&quot;http://lh3.ggpht.com/_cYaJquZOLiw/S2UTmUzYXpI/AAAAAAAACmQ/PNM5gHBPWsw/%5BUNSET%5D.png?imgmax=800&quot; /&gt;&lt;br /&gt;Drupal6 初始設定完成之後馬上就會發現到目前的 Drupal6 版本並不安全，&lt;br /&gt;&lt;img src=&quot;http://lh3.ggpht.com/_cYaJquZOLiw/S2UVUsCvAVI/AAAAAAAACmU/0M8TVBNFTEw/%5BUNSET%5D.png?imgmax=800&quot; /&gt;&lt;br /&gt;因為 Debian GNU/Linux 5.0.3 (Lenny) 上面的 Drupal 版本只有到 6.6 版，&lt;br /&gt;所以現在要去升級到目前最新穩定版本 6.15&lt;br /&gt;&lt;blockquote&gt;# wget http://ftp.drupal.org/files/projects/drupal-6.15.tar.gz -O - | tar xz -C /usr/share&lt;br /&gt;# wget http://ftp.drupal.org/files/projects/zh-hant-6.x-1.5.tar.gz -O - | tar xz -C /usr/share/drupal-6.15&lt;br /&gt;# cd /usr/share&lt;br /&gt;# chown -R root.root drupal-6.15&lt;br /&gt;# mv -v drupal6 drupal-6.6&lt;br /&gt;# ln -s drupal-6.15 drupal6&lt;br /&gt;# cd drupal-6.15&lt;br /&gt;# rm -fr profiles sites&lt;br /&gt;# ln -s /etc/drupal/6/profiles&lt;br /&gt;# ln -s /etc/drupal/6/sites&lt;br /&gt;&lt;/blockquote&gt;然後在網頁瀏灠器裡面訪問 http://XXX.XXX.XXX.XXX/drupal6/update.php 來更新資料庫&lt;br /&gt;&lt;img src=&quot;http://lh4.ggpht.com/_cYaJquZOLiw/S2UaedIFSmI/AAAAAAAACmk/c6A-tR12u-8/%5BUNSET%5D.png?imgmax=800&quot; /&gt;&lt;br /&gt;更新完後回到 [狀態報告] 就可以看到&lt;br /&gt;&lt;img src=&quot;http://lh5.ggpht.com/_cYaJquZOLiw/S2UaU3lcdHI/AAAAAAAACmg/b-nhQiznxps/%5BUNSET%5D.png?imgmax=800&quot; /&gt;&lt;br /&gt;此時算是才把 Drupal 6.15 在 Debian GNU/Linux 5.0.3 (Lenny) 上面安裝好，&lt;br /&gt;不過目前都只有框架沒有內容也沒有安裝任何模組也沒有客製化的 Theme&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/14489808-7791095552607746325?l=fourdollars.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Sun, 31 Jan 2010 06:30:14 +0000</pubDate>
	<author>fourdollars@gmail.com (FourDollars)</author>
</item>
<item>
	<title>FourDollars: 在 Ubuntu 9.04 上面使用 hg view</title>
	<guid>tag:blogger.com,1999:blog-14489808.post-9137742559510021893</guid>
	<link>http://fourdollars.blogspot.com/2010/01/ubuntu-904-hg-view.html</link>
	<description>&lt;div&gt;之前寫過一篇 &lt;a href=&quot;http://fourdollars.blogspot.com/2009/10/ubuntu-904-hgview_17.html&quot;&gt;在 Ubuntu 9.04 上面手動安裝 hgview&lt;/a&gt;&lt;br /&gt;剛剛發現原來在 ~/.hgrc 裡面加上&lt;br /&gt;&lt;blockquote&gt;[extensions]&lt;br /&gt;hgk=&lt;br /&gt;&lt;/blockquote&gt;這樣就可以使用 hg view 了~&lt;br /&gt;在 &lt;a href=&quot;http://mercurial.selenic.com/wiki/HgkExtension&quot;&gt;http://mercurial.selenic.com/wiki/HgkExtension&lt;/a&gt; 找到的資訊&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/14489808-9137742559510021893?l=fourdollars.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Thu, 28 Jan 2010 22:05:14 +0000</pubDate>
	<author>fourdollars@gmail.com (FourDollars)</author>
</item>
<item>
	<title>fred: Apple iPad 所帶來的省思</title>
	<guid>tag:blogger.com,1999:blog-4389461234607418203.post-1616902843568670818</guid>
	<link>http://fred-zone.blogspot.com/2010/01/apple-ipad.html</link>
	<description>就在睡夢中，地球另一端的 Apple 推出了新產品『&lt;a href=&quot;http://www.apple.com/ipad/&quot;&gt;iPad&lt;/a&gt;』，傳說中的平板電腦終於亮相，乍看之下 iPhone/iPod 的放大版誕生了，似乎沒什麼特別之處。不過一旦到了這種尺寸，許多人不免會拿 iPad 和國內近來炒翻天的電子書（ebook）相比較。確實，用電腦的思維去看這產品是不太恰當的，會缺少許多電腦狂熱族群要的功能，但若單以電子書的角度來看，這次 Apple 賞了我們一個大巴掌。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;國內廠商依然趕不上的 UI 設計&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;以前電子產品的設計，因為技術限制，只求達到目的，不注重人們的使用經驗。但是，這樣的概念已經慢慢不適用於現在，許多電腦廠商卻仍抱著做出功能即可的心態，才導致功能不斷增加，價格不斷跌落的惡性循環。科幻電影和小說的一切是人們共同忡景，缺少改善使用經驗的努力，就等於跟千千萬萬人們作對一樣。&lt;br /&gt;&lt;br /&gt;不可否認，就算 iPhone 第一代發表至今少說也有三年之久，但仍然沒有第二家廠商能做出能與之相敵的界面。就算單單是將 iPhone 的界面直接放大製成 iPad 而不做任何變動，不論流暢度和使用觀感，依然領先群雄。&lt;br /&gt;&lt;br /&gt;在 iPad 宣傳影片中，展示了幾幕電子書的應用，Apple 嘗試將書本的感覺和閱讀習慣做到冰冷的玻璃裡面去，翻頁操作也好、翻頁過場效果也好，讓人感到不突兀、不陌生、不多餘，令人感受到有其細膩的設計。雖然並不是全部都很完美，但某些部份確實讓人能感受到友善。&lt;br /&gt;&lt;br /&gt;我們可以試想，同樣的硬體，若是交給國內的廠商來設計 UI&amp;nbsp;，最後產品會變得多麼可笑？我們是不是該花點心思在使用者經驗上？難到就連照抄都抄不出來？&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;廠商的藉口：特效不重要！&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;講到 UI&amp;nbsp;、使用者經驗，許多廠商往往會說特效不重要，試圖運用詭辯，一刀將 Apple 的優點通通斬殺。撇開今天的產品，回想第一代 iPod，當時也沒什麼動畫和特效，一個簡單的圓形觸控，就已滿足了許多人的使用經驗，至今回頭來看，我們依然能感受到其 UI 的友善。&lt;br /&gt;&lt;br /&gt;那麼，特效不重要是廠商們做不到的藉口？還是因未深思熟慮 UI 設計的無知之言？&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;專注內容格式的綁定好無聊&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;有鑒於 Microsoft DOC/PPT 和 Adobe PDF/Flash 的成功，全天下的人都妄想製作自家的專利格式，甚至在電子書市場，想要透過格式通殺產業。雖然格式是最後成功和賺錢的關鍵，但尚未被使用者接受前，可是一無是處，與其整天想抽格式費用，還不如先把產品做好。&lt;br /&gt;&lt;br /&gt;我們看到 Apple Store 的成功，格式的綁定成功，不是在於他格式訂的好，而是他產品品質做的好，以致有眾多路人甲接受。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;後記&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;或許很多人覺得 Apple iPad 是騙錢的東西，但事實上，的確沒有其他產品可與之相競爭，就算只是換個包裝就上市，同業眾廠也只能眼紅看著它搶錢。&lt;br /&gt;&lt;br /&gt;話說回來，因為最近案子太忙，根本沒空將 MTK 接著完成，心中想要做的 Multi-touch UI Toolkits，到現在都沒辦法好好坐下來寫呀！雖有很多自我反省，卻缺少時間和金錢完成，遺憾！&lt;br /&gt;&lt;br /&gt;此外，若有廠商想要做和 iPad 一樣的產品，可以來找 ULLab 呀！身為研發人員，也妄想可以設計些特別又前衛的產品！只可惜總苦無機會！！&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/4389461234607418203-1616902843568670818?l=fred-zone.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Thu, 28 Jan 2010 08:44:00 +0000</pubDate>
	<author>cfsghost@gmail.com (Fred Chien(錢逢祥))</author>
</item>
<item>
	<title>tsung: Linux 透過 SSH SOCKS 連線 來 使用 Firefox / Pidgin(MSN, GTalk..)</title>
	<guid>http://plog.longwin.com.tw/my_note-unix/2010/01/28/linux-ssh-socks-firefox-pidgin-2010</guid>
	<link>http://feedproxy.google.com/~r/tsungblog/~3/Q_LgBpjfAHI/linux-ssh-socks-firefox-pidgin-2010</link>
	<description>&lt;p&gt;
現在不少醫院都有無線網路, 但是使用後, 體驗被限制只有開 80, 443 Port 的感覺.
&lt;/p&gt;
&lt;p&gt;
但是我在這邊最少要待三天, 陪產(n天) + 生產完(3~7天), 至少要讓 SSH、MSN 能通才行.
&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;
	註1: 於 Ubuntu Linux, Windows 可以利用 Putty 來達成.
	&lt;/li&gt;
	&lt;li&gt;註2: 此篇重點 &lt;strong&gt;sudo ssh -D 80 user@example.com -p 443&lt;/strong&gt;&lt;/li&gt;
	&lt;li&gt;註3: 在醫院連國外網站(ex: YouTube 被擋掉的話),透過自己的 Server 當 Proxy 會快很多. XD &lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
基礎環境
&lt;/h4&gt;
&lt;p&gt;
首先, 要先找好朋友, 幫忙弄台 Server, 讓 ssh port 加開 80 或 443 Port. (沒有這個, 後續就不用玩了. XD)
&lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;vim /etc/ssh/sshd_config
	&lt;blockquote&gt;
		Port 22 # 於這下面加上下述即可.&lt;br /&gt;
		Port 443
	&lt;/blockquote&gt;
	&lt;/li&gt;
	&lt;li&gt;/etc/init.d/ssh restart # 22, 443 就都可以連進此 Server. (可同時開兩個 Port)&lt;/li&gt;
&lt;/ol&gt;
&lt;h4&gt;使用 ssh -D 來建立 SOCKS&lt;/h4&gt;
&lt;p&gt;
於 Localhost 開啟 80 Port, 與遠端(example.com)的 443 Port 串起來.
&lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;netstat -tln | grep 80 # 先看看 localhost 有沒有佔用 80 Port, 若有佔用, 需要停掉.&lt;/li&gt;
	&lt;li&gt;&lt;strong&gt;sudo ssh -D 80 user@example.com -p 443&lt;/strong&gt; # 80 Port 需要 root 權限.&lt;/li&gt;
	&lt;li&gt;連線進去後, 只要將此連線留著, 不要關掉即可.&lt;/li&gt;
&lt;/ol&gt;
&lt;h4&gt;
Firefox 透過 SOCKS 連線
&lt;/h4&gt;
&lt;ol&gt;
	&lt;li&gt;編輯 -&amp;gt; 偏好設定&lt;/li&gt;
	&lt;li&gt;進階 -&amp;gt; 網路 -&amp;gt; 設定(連線, 設定 Firefox 要如何連到網路)&lt;/li&gt;
	&lt;li&gt;手動設定 Proxy -&amp;gt; SOCKS 主機
	&lt;ul&gt;
		&lt;li&gt;127.0.0.1&lt;/li&gt;
		&lt;li&gt;80 # 看 localhost 設得 Port&lt;/li&gt;
		&lt;li&gt;確定 # 測試是否可以連線, 若可以正常瀏覽網頁, 代表透過 SSH 是通得.&lt;/li&gt;
	&lt;/ul&gt;
	&lt;/li&gt;
&lt;/ol&gt;
&lt;h4&gt;
Pidgin 透過 SOCKS5 連線
&lt;/h4&gt;
&lt;ol&gt;
	&lt;li&gt;帳號 -&amp;gt; 編輯帳號 # MSN / Gtalk 都一樣設定法.&lt;/li&gt;
	&lt;li&gt;代理伺服器
	&lt;ul&gt;
		&lt;li&gt;SOCKS 5&lt;/li&gt;
		&lt;li&gt;127.0.0.1&lt;/li&gt;
		&lt;li&gt;80 # 看 localhost 設得 Port&lt;/li&gt;
		&lt;li&gt;儲存 # 即可連線&lt;/li&gt;
	&lt;/ul&gt;
	&lt;/li&gt;
&lt;/ol&gt;
&lt;h4&gt;相關網頁&lt;/h4&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://twntwn.info/blog/ajer001/archives/1617&quot; target=&quot;_blank&quot; title=&quot;透過 SSH 來安全連線&quot;&gt;透過 SSH 來安全連線&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;http://twntwn.info/blog/ajer001/archives/1525&quot; target=&quot;_blank&quot; title=&quot;[GAIM] 編譯 與 解決 學術網路不能連線&quot;&gt;[GAIM] 編譯 與 解決 學術網路不能連線&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;http://marlboromoo.blogspot.com/2009/10/ssh-tunnel-with-proxychains-in-ubuntu.html&quot; target=&quot;_blank&quot; title=&quot;ssh tunnel with proxychains in ubuntu 9.04&quot;&gt;ssh tunnel with proxychains in ubuntu 9.04&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;http://ubuntuforums.org/showthread.php?t=560665&quot; target=&quot;_blank&quot; title=&quot;[SOLVED] Can not bind a port on SSH&quot;&gt;[SOLVED] Can not bind a port on SSH&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/tsungblog/~4/Q_LgBpjfAHI&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;</description>
	<pubDate>Wed, 27 Jan 2010 21:30:13 +0000</pubDate>
</item>
<item>
	<title>Tetralet: Luna's Debian/Ubuntu Archiver 開張！（10/01/27 更新）</title>
	<guid>http://tetralet.luna.com.tw/index.php?op=ViewArticle&amp;articleId=213&amp;blogId=1</guid>
	<link>http://tetralet.luna.com.tw/index.php?op=ViewArticle&amp;articleId=213&amp;blogId=1</link>
	<description>&lt;p&gt;
雖然說 Debain 的套件包山包海，但總有一些遺珠之憾，唯一的辨法也只有自己動手包。還有最近又卡在 Debian Lenny
的釋出，一堆套件凍在 experimental 裡連 unstable 都進不去，有時有什麼新版軟體想嘗鮮時也只好自己動手了。還有一些
upstream 不收的 patch，想要套用的唯一方式也只有自己動手了。因此，長久以來敝人的硬碟裡總會躺著一些自己包的 deb
檔，於是就興起了架一個 Debian Archiver，讓自己能方便取用。就這樣，Luna's Debian Archiver 開張了！
&lt;/p&gt;
&lt;p&gt;

&lt;/p&gt;
&lt;p&gt;
以下為 Luna's Debian Archiver 所提供的套件列表：&lt;span&gt;（粉紅色底色為有所更新
者）&lt;/span&gt;&lt;br /&gt;
&lt;/p&gt;
&lt;blockquote&gt;
	&lt;table border=&quot;1&quot; cellpadding=&quot;2&quot; cellspacing=&quot;0&quot;&gt;
		&lt;tbody&gt;
			&lt;tr&gt;
				&lt;td align=&quot;center&quot; valign=&quot;top&quot;&gt;套件名稱&lt;br /&gt;
				&lt;/td&gt;
				&lt;td align=&quot;center&quot; valign=&quot;top&quot;&gt;說明 (未特別註明者僅提供
				Debian Lenny 版)&lt;br /&gt;
				&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
				&lt;td valign=&quot;top&quot;&gt;fceu&lt;/td&gt;
				&lt;td valign=&quot;top&quot;&gt;任天堂模擬器。請參考：&lt;a href=&quot;http://tetralet.luna.com.tw/index.php?op=ViewArticle&amp;amp;articleId=162&amp;amp;blogId=1&quot;&gt;任
				天堂模擬器 FCE Ultra&lt;/a&gt;。&lt;br /&gt;
				版本為 0.98.15。&lt;br /&gt;
				&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
				&lt;td valign=&quot;top&quot;&gt;fceux&lt;/td&gt;
				&lt;td valign=&quot;top&quot;&gt;任天堂模擬器 fceu
				的後續版本。但對遊戲的支援度似乎變差了。&lt;br /&gt;
				有包含一個 GUI 版的前端 gfceux。&lt;br /&gt;
				版本為 2.1.2。&lt;br /&gt;
				&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
				&lt;td valign=&quot;top&quot;&gt;gens&lt;/td&gt;
				&lt;td valign=&quot;top&quot;&gt;Sega 模擬器。請參考：&lt;a href=&quot;http://tetralet.luna.com.tw/index.php?op=ViewArticle&amp;amp;articleId=163&amp;amp;blogId=1&quot;&gt;SEGA
				Mega
				Drive
				模擬器 Gens&lt;/a&gt;。&lt;br /&gt;
				版本為 2.16.7，包含了 GUI。&lt;br /&gt;
				&lt;span&gt;僅提供 Debian Squeeze 版。&lt;/span&gt;&lt;br /&gt;
				&lt;span&gt;以及 &lt;/span&gt;&lt;span&gt;Ubuntu
				Intrepid、Ubuntu Jaunty、&lt;/span&gt;&lt;span&gt;Ubuntu Karmic&lt;/span&gt;&lt;span&gt; 版。&lt;/span&gt;&lt;br /&gt;
				&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
				&lt;td valign=&quot;top&quot;&gt;zsnes&lt;br /&gt;
				&lt;/td&gt;
				&lt;td valign=&quot;top&quot;&gt;超級任天模擬器。請參考：&lt;a href=&quot;http://tetralet.luna.com.tw/index.php?op=ViewArticle&amp;amp;articleId=164&amp;amp;blogId=1&quot;&gt;超
				任模擬器 Zsnes&lt;/a&gt;。&lt;br /&gt;
				就算在 Eee PC 上跑也是遊刃有餘呦～&lt;br /&gt;
				建議安裝 &lt;tt&gt;libsdl1.2debian-oss&lt;/tt&gt; 套件以取得較佳的音效效果。&lt;br /&gt;
				版本為 1.51b。&lt;br /&gt;
				&lt;span&gt;提供 Debian Lenny、&lt;/span&gt;&lt;span&gt;Debian Squeeze&lt;/span&gt;&lt;span&gt; 版。&lt;/span&gt;&lt;br /&gt;
				&lt;span&gt;以及 &lt;/span&gt;&lt;span&gt;Ubuntu
				Intrepid、Ubuntu Jaunty 版。&lt;/span&gt;&lt;br /&gt;
				&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
				&lt;td valign=&quot;top&quot;&gt;vbam&lt;/td&gt;
				&lt;td valign=&quot;top&quot;&gt;GBA 模擬器。&lt;br /&gt;
				版本為 1.8.0~svn928，包含了 GUI 版的 gvbam。&lt;br /&gt;
				&lt;span&gt;僅提供 Debian Squeeze 版。&lt;br /&gt;
				以及 &lt;/span&gt;&lt;span&gt;Ubuntu Intrepid、Ubuntu Jaunty、&lt;/span&gt;&lt;span&gt;Ubuntu Karmic&lt;/span&gt;&lt;span&gt; 版。&lt;/span&gt; &lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
				&lt;td valign=&quot;top&quot;&gt;icewm&lt;br /&gt;
				&lt;/td&gt;
				&lt;td valign=&quot;top&quot;&gt;很不錯的 Window Manager。請參考：&lt;a href=&quot;http://tetralet.luna.com.tw/index.php?op=ViewArticle&amp;amp;articleId=68&amp;amp;blogId=1&quot;&gt;功
				能強悍的 Window Manager - IceWM！&lt;/a&gt;。&lt;br /&gt;
				因為近期 testing 版本的 winoptions 有問題，因此在此提供的是 stable 版。&lt;br /&gt;
				版本為 1.2.38~pre2，&lt;span&gt;並提供 amd64&amp;nbsp;
				(Lenny) 的 deb 套件。&lt;/span&gt;&lt;br /&gt;
				&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
				&lt;td valign=&quot;top&quot;&gt;libtrash&lt;/td&gt;
				&lt;td valign=&quot;top&quot;&gt;一個用來避免誤刪檔案的超實用工具。&lt;br /&gt;
				舊的 2.4 版不知為何無法攔截 rm 操作，因此在此提供了最新版本。&lt;br /&gt;
				版本為 3.2。&lt;span&gt;並提供 amd64&amp;nbsp; (Lenny) 的
				deb 套件。&lt;/span&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
				&lt;td valign=&quot;top&quot;&gt;shaperd&lt;br /&gt;
				&lt;/td&gt;
				&lt;td valign=&quot;top&quot;&gt;本機頻寬控管。請參考：&lt;a href=&quot;http://tetralet.luna.com.tw/index.php?op=ViewArticle&amp;amp;articleId=116&amp;amp;blogId=1&quot;&gt;使
				用 Shaperd 來限制本機頻寬！&lt;/a&gt;。&lt;br /&gt;
				去掉了無義意且會佔滿 /var/log/messages 的 &amp;quot;invalid packet... &amp;quot; 錯誤訊息。&lt;br /&gt;
				版本為 0.2.1。&lt;br /&gt;
				&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
				&lt;td valign=&quot;top&quot;&gt;fontconfig&lt;/td&gt;
				&lt;td valign=&quot;top&quot;&gt;已套用 Firefly 允許字型漏字 1% 的 &lt;a href=&quot;http://debian.luna.com.tw/patches/fontconfig-2.2.3-miss_1_percent-20041128.patch&quot;&gt;patch&lt;/a&gt;。&lt;br /&gt;
				如果您還在用王漢宗教授的字型，建議安裝。&lt;br /&gt;
				版本為 2.8.0。&lt;br /&gt;
				&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
				&lt;td valign=&quot;top&quot;&gt;gcin&lt;br /&gt;
				&lt;/td&gt;
				&lt;td valign=&quot;top&quot;&gt;極度推薦的中文輸入法。請參考：&lt;a href=&quot;http://tetralet.luna.com.tw/index.php?op=ViewArticle&amp;amp;articleId=120&amp;amp;blogId=1&quot;&gt;GCIN
				中文輸入法簡介&lt;/a&gt;。&lt;br /&gt;
				&lt;br /&gt;
				&lt;span&gt;感謝 caleb 的 patch 檔！&lt;br /&gt;
				關閉了 &lt;tt&gt;new_gtk_im&lt;/tt&gt;，如此 GCIN 在 Firefox 裡應該不再會亂搶 focus 了。&lt;br /&gt;
				因為 gcin-qt3-immodule 及 gcin-qt4-immodule 套件已不再相依於 libqt，將其併入 GCIN 套件之中。&lt;br /&gt;
				&lt;/span&gt;&lt;br /&gt;
				版本為 1.4.6 及 &lt;strong&gt;1.4.7~pre3&lt;/strong&gt;。&lt;span&gt;（在新的 Debian
				Package Maintainer
				正式接手前，本站將會持續提供最新版的 deb）&lt;/span&gt;&lt;br /&gt;
				&lt;span&gt;提供 Debian Lenny、&lt;/span&gt;&lt;span&gt;Debian Squeeze&lt;/span&gt;&lt;span&gt; 版。&lt;/span&gt;&lt;br /&gt;
				&lt;span&gt;以及 &lt;/span&gt;&lt;span&gt;Ubuntu
				Intrepid、Ubuntu Jaunty、&lt;/span&gt;&lt;span&gt;Ubuntu Karmic &lt;/span&gt;&lt;span&gt;版。&lt;/span&gt;&lt;br /&gt;
				&lt;strong&gt;&lt;span&gt;並提供 amd64&amp;nbsp; (Sqeeze 及 Karmic) 的
				deb 套件。&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;
				&lt;span&gt; &lt;/span&gt; &lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
				&lt;td valign=&quot;top&quot;&gt;libvte9&lt;/td&gt;
				&lt;td valign=&quot;top&quot;&gt;加上了防止它吃掉一些輸入法快速鍵的 &lt;a href=&quot;http://lilyterm.luna.com.tw/patch/vte_input_method.patch&quot;&gt;patch&lt;/a&gt;，建議
				GCIN 使用者安裝。&lt;br /&gt;
				&lt;span&gt;提供 Debian Lenny &lt;/span&gt;(版本為 0.16.14)&lt;span&gt;、&lt;/span&gt;&lt;span&gt;Debian Squeeze&lt;/span&gt;&lt;span&gt; 版 &lt;/span&gt;(版本為 0.22.5)&lt;span&gt;。&lt;/span&gt;&lt;br /&gt;
				&lt;span&gt;以及 &lt;/span&gt;&lt;span&gt;Ubuntu
				Intrepid &lt;/span&gt;(版本為 0.17.4)&lt;span&gt;、Ubuntu Jaunty 版 &lt;/span&gt;(版
				本為 0.20.1)&lt;span&gt;、&lt;/span&gt;&lt;span&gt;Ubuntu
				Karmic&amp;nbsp;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;(版本為 0.22.2)&lt;span&gt;。&lt;/span&gt;&lt;br /&gt;
				&lt;strong&gt;&lt;span&gt;並提供 amd64&amp;nbsp; (Sqeeze&lt;/span&gt;&lt;span&gt;及 Karmic&lt;/span&gt;&lt;span&gt;) 的 deb 套件。&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;
				&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
				&lt;td valign=&quot;top&quot;&gt;lilyterm&lt;/td&gt;
				&lt;td valign=&quot;top&quot;&gt;請參考：&lt;a href=&quot;http://lilyterm.luna.com.tw/index.html&quot;&gt;LilyTerm - 輕巧人性化的 libvte
				based X Terminal Emulator&lt;/a&gt;。&lt;br /&gt;
				版本為 0.9.8。&lt;br /&gt;
				&lt;span&gt;提供 Debian Lenny、&lt;/span&gt;&lt;span&gt;Debian Squeeze&lt;/span&gt;&lt;span&gt; 版。&lt;/span&gt;&lt;br /&gt;
				&lt;span&gt;以及 &lt;/span&gt;&lt;span&gt;Ubuntu
				Intrepid、Ubuntu Jaunty 版、&lt;/span&gt;&lt;span&gt;Ubuntu Karmic 版&lt;/span&gt;&lt;span&gt;。&lt;/span&gt;&lt;br /&gt;
				&lt;strong&gt;&lt;span&gt;並提供 amd64&amp;nbsp; (Sqeeze&lt;/span&gt;&lt;span&gt;及 Karmic&lt;/span&gt;&lt;span&gt;) 的 deb 套件。&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;
				&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
				&lt;td valign=&quot;top&quot;&gt;madedit&lt;br /&gt;
				&lt;/td&gt;
				&lt;td valign=&quot;top&quot;&gt;基於 wxWidget 函式庫，支援 Hex、非常不錯的文字編輯器。&lt;br /&gt;
				版本為 &lt;strong&gt;0.2.9-1&lt;/strong&gt;。&lt;br /&gt;
				&lt;span&gt;提供 &lt;/span&gt;&lt;span&gt;Debian Squeeze&lt;/span&gt;&lt;span&gt; 版的 i386 及 amd64 的 deb 套件。&lt;/span&gt;&lt;br /&gt;
				&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
				&lt;td valign=&quot;top&quot;&gt;libtorrent&lt;/td&gt;
				&lt;td valign=&quot;top&quot;&gt;CLI 下最好用的 torrent
				函式庫。新增了非官方的 magnet link 支援。&lt;br /&gt;
				版本為 0.12.6。&lt;br /&gt;
				&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
				&lt;td valign=&quot;top&quot;&gt;rtorrent&lt;/td&gt;
				&lt;td valign=&quot;top&quot;&gt;CLI 下最好用的 torrent
				用戶端。新增了非官方的 magnet link 支援及支援彩色文字。&lt;br /&gt;
				版本為 0.8.6。&lt;br /&gt;
				&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
				&lt;td valign=&quot;top&quot;&gt;tree&lt;br /&gt;
				&lt;/td&gt;
				&lt;td valign=&quot;top&quot;&gt;修正在 zh_TW.UTF-8 下無法顯示中文檔名的問題。&lt;br /&gt;
				由於 upstream 從 1.5.3 開始，會以雙字元顯示目錄樹，這在很多 X Terminal Emulator
				下會出現問題，因此停留在 1.5.2 版。&lt;br /&gt;
				&lt;span&gt;並提供 amd64&amp;nbsp; (Sqeeze) 的 deb 套件。&lt;/span&gt;&lt;br /&gt;
				&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
				&lt;td valign=&quot;top&quot;&gt;gtkperf&lt;/td&gt;
				&lt;td valign=&quot;top&quot;&gt;可用來測試 GTK 元件描繪速度，加上了會重覆跑 10 次後會自動結算的功能。&lt;span&gt;&lt;br /&gt;
				&lt;/span&gt;版本為 0.40。&lt;br /&gt;
				&lt;span&gt;同時提供了 Ubuntu Intrepid 版！&lt;/span&gt;&lt;br /&gt;
				&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
				&lt;td valign=&quot;top&quot;&gt;wm-torture&lt;/td&gt;
				&lt;td valign=&quot;top&quot;&gt;可用來測試 Window Manager 的描繪速度。&lt;span&gt;&lt;br /&gt;
				&lt;/span&gt;版本為 0.1。&lt;br /&gt;
				&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
				&lt;td valign=&quot;top&quot;&gt;xengine&lt;/td&gt;
				&lt;td valign=&quot;top&quot;&gt;可用來測試 X Window System 的描繪速度，加上了會自動結算的功能。&lt;span&gt;&lt;br /&gt;
				&lt;/span&gt;版本為 1.11。&lt;br /&gt;
				&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
				&lt;td valign=&quot;top&quot;&gt;xrenderbenchmark&lt;/td&gt;
				&lt;td valign=&quot;top&quot;&gt;一個 QT based，可用來測試 X Window System 的描繪速度。&lt;span&gt;&lt;br /&gt;
				&lt;/span&gt;版本為 0.10。&lt;br /&gt;
				&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
				&lt;td valign=&quot;top&quot;&gt;xmms&lt;/td&gt;
				&lt;td valign=&quot;top&quot;&gt;著名的音樂播放程式。但 Debian Lenny 已經不收了。&lt;br /&gt;
				重新編譯讓它能在 Debian Lenny 下運作。&lt;br /&gt;
				若要解決 XMMS 在 UTF-8 環境下亂碼的問題，請下載正確的 &lt;a href=&quot;http://debian.luna.com.tw/config/zh_TW.UTF-8_XLC_LOCALE&quot;&gt;XLC_LOCALE&lt;/a&gt;
				檔案，並蓋過 /usr/share/X11/locale/zh_TW.UTF-8/XLC_LOCALE 即可。請參考：&lt;a href=&quot;http://tetralet.luna.com.tw/index.php?op=ViewArticle&amp;amp;articleId=124&amp;amp;blogId=1&quot;&gt;在
				GNU/Linux
				上設定字型 (中) - 安裝與設定 X11 字型&lt;/a&gt;。&lt;span&gt;&lt;br /&gt;
				&lt;/span&gt;版本為 1.2.11。&lt;br /&gt;
				&lt;span&gt;並提供 amd64&amp;nbsp; (Lenny) 的 deb 套件。&lt;/span&gt;&lt;br /&gt;
				&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
				&lt;td valign=&quot;top&quot;&gt;xmms-status-plugin&lt;/td&gt;
				&lt;td valign=&quot;top&quot;&gt;XMMS 的 System Tray 外掛。&lt;br /&gt;
				重新編譯讓它能在 Debian Lenny 下運作。&lt;br /&gt;
				版本為 1.0.0。&lt;br /&gt;
				&lt;span&gt;並提供 amd64&amp;nbsp; (Lenny) 的 deb 套件。&lt;/span&gt;&lt;br /&gt;
				&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
				&lt;td valign=&quot;top&quot;&gt;xmms-wma&lt;/td&gt;
				&lt;td valign=&quot;top&quot;&gt;讓 XMMS 支援 WMA 的外掛。&lt;br /&gt;
				重新編譯讓它能在 Debian Lenny 下運作。&lt;br /&gt;
				請記得在編譯時，要使用 Debian Etch 版的 libavformat-dev
				libavcodec-dev，否則即使編譯成功也無法正確運作。&lt;br /&gt;
				版本為 1.0.5。&lt;br /&gt;
				&lt;span&gt;並提供 amd64&amp;nbsp; (Lenny) 的 deb 套件。&lt;/span&gt;&lt;br /&gt;
				&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
				&lt;td valign=&quot;top&quot;&gt;btrfs-progs&lt;br /&gt;
				&lt;/td&gt;
				&lt;td valign=&quot;top&quot;&gt;傳說中的 Linux 終極 File System 的工具程式。想試試 btrfs
				威力的人可以試玩一下。&lt;br /&gt;
				版本為 0.17。&lt;br /&gt;
				&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
				&lt;td valign=&quot;top&quot;&gt;zfs-fuse&lt;br /&gt;
				&lt;/td&gt;
				&lt;td valign=&quot;top&quot;&gt;傳說中的終極 File System － zfs 的 fuse 版。想試試 zfs
				威力的人可以試玩一下。&lt;br /&gt;
				版本為 0.5.1。&lt;br /&gt;
				&lt;/td&gt;
			&lt;/tr&gt;
		&lt;/tbody&gt;
	&lt;/table&gt;
&lt;/blockquote&gt;
&lt;p&gt;
如果您也想使用這些套件，請在 &lt;span&gt;&lt;tt&gt;/etc/apt/sources.list&lt;/tt&gt;&lt;/span&gt;
中加入：&lt;br /&gt;
&lt;/p&gt;
&lt;blockquote&gt;
	Debian Lenny：&lt;br /&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
	&lt;blockquote&gt;
		&lt;table border=&quot;1&quot; cellpadding=&quot;2&quot; cellspacing=&quot;0&quot; width=&quot;100%&quot;&gt;
			&lt;tbody&gt;
				&lt;tr&gt;
					&lt;td valign=&quot;top&quot;&gt;&lt;tt&gt;deb http://debian.luna.com.tw/lenny ./&lt;br /&gt;
					deb-src http://debian.luna.com.tw/lenny ./&lt;/tt&gt;&lt;br /&gt;
					&lt;/td&gt;
				&lt;/tr&gt;
			&lt;/tbody&gt;
		&lt;/table&gt;
	&lt;/blockquote&gt;
	Debian Squeeze/Sid 的使用者可再加上：&lt;br /&gt;
	&lt;blockquote&gt;
		&lt;table border=&quot;1&quot; cellpadding=&quot;2&quot; cellspacing=&quot;0&quot; width=&quot;100%&quot;&gt;
			&lt;tbody&gt;
				&lt;tr&gt;
					&lt;td valign=&quot;top&quot;&gt;&lt;tt&gt;deb http://debian.luna.com.tw/squeeze ./&lt;br /&gt;
					deb-src http://debian.luna.com.tw/squeeze ./&lt;/tt&gt;&lt;/td&gt;
				&lt;/tr&gt;
			&lt;/tbody&gt;
		&lt;/table&gt;
	&lt;/blockquote&gt;
	而 Ubuntu Intrepid 則為：（將在 Ubuntu 9.10 推出後中止）&lt;br /&gt;
	&lt;blockquote&gt;
		&lt;table border=&quot;1&quot; cellpadding=&quot;2&quot; cellspacing=&quot;0&quot; width=&quot;100%&quot;&gt;
			&lt;tbody&gt;
				&lt;tr&gt;
					&lt;td valign=&quot;top&quot;&gt;&lt;tt&gt;deb http://debian.luna.com.tw/intrepid&lt;/tt&gt;&lt;tt&gt;
					./&lt;br /&gt;
					deb-src http://debian.luna.com.tw/intrepid ./&lt;/tt&gt;&lt;/td&gt;
				&lt;/tr&gt;
			&lt;/tbody&gt;
		&lt;/table&gt;
	&lt;/blockquote&gt;
	若是 Ubuntu Jaunty 的則為：
	&lt;blockquote&gt;
		&lt;table border=&quot;1&quot; cellpadding=&quot;2&quot; cellspacing=&quot;0&quot; width=&quot;100%&quot;&gt;
			&lt;tbody&gt;
				&lt;tr&gt;
					&lt;td valign=&quot;top&quot;&gt;&lt;tt&gt;deb http://debian.luna.com.tw/jaunty ./&lt;br /&gt;
					deb-src http://debian.luna.com.tw/jaunty ./&lt;br /&gt;
					&lt;/tt&gt;&lt;/td&gt;
				&lt;/tr&gt;
			&lt;/tbody&gt;
		&lt;/table&gt;
	&lt;/blockquote&gt;
	若是 Ubuntu Karmic 的則為：
	&lt;blockquote&gt;
		&lt;table border=&quot;1&quot; cellpadding=&quot;2&quot; cellspacing=&quot;0&quot; width=&quot;100%&quot;&gt;
			&lt;tbody&gt;
				&lt;tr&gt;
					&lt;td valign=&quot;top&quot;&gt;&lt;tt&gt;deb http://debian.luna.com.tw/karmic ./&lt;br /&gt;
					deb-src http://debian.luna.com.tw/&lt;/tt&gt;&lt;tt&gt;karmic&lt;/tt&gt;&lt;tt&gt; ./&lt;br /&gt;
					&lt;/tt&gt;&lt;/td&gt;
				&lt;/tr&gt;
			&lt;/tbody&gt;
		&lt;/table&gt;
	&lt;/blockquote&gt;
&lt;/blockquote&gt;
然後執行 &lt;span&gt;&lt;tt&gt;apt-get update&lt;/tt&gt;&lt;/span&gt; 後就能用 &lt;span&gt;&lt;tt&gt;apt-get&lt;/tt&gt;&lt;/span&gt;
安裝了。請注意，套件內的 Package Maintainer 資訊敝人並沒未更新為本人的名字。若造成任何困擾敝人深感抱歉。&lt;br /&gt;
&lt;br /&gt;
如果使用 &lt;span&gt;&lt;tt&gt;apt-get&lt;/tt&gt;&lt;/span&gt; 來安裝時卻發現仍然安裝的是
Debian/Ubuntu 所提供的舊版本的話，請先利用 &lt;span&gt;&lt;tt&gt;apt-cache&lt;/tt&gt;&lt;/span&gt;
來確認您可安裝的版本。例：&lt;br /&gt;
&lt;blockquote&gt;
	&lt;table border=&quot;1&quot; cellpadding=&quot;2&quot; cellspacing=&quot;0&quot; width=&quot;100%&quot;&gt;
		&lt;tbody&gt;
			&lt;tr&gt;
				&lt;td valign=&quot;top&quot;&gt;&lt;tt&gt;# apt-cache policy gcin&lt;br /&gt;
				gcin:&lt;br /&gt;
				&amp;nbsp; 已安裝：1.4.5-1.1&lt;br /&gt;
				&amp;nbsp; 候選：1.4.5-1.1&lt;br /&gt;
				&amp;nbsp; 版本列表：&lt;br /&gt;
				&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span&gt;1.4.7~pre3-0~1.oldgtk&lt;/span&gt;
				0&lt;br /&gt;
				&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 500
				http://debian.luna.com.tw ./ Packages&lt;br /&gt;
				&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1.4.6-0~1.oldgtk 0&lt;br /&gt;
				&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 500
				http://debian.luna.com.tw ./ Packages&lt;br /&gt;
				&amp;nbsp;*** 1.4.5-1.1 0&lt;br /&gt;
				&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 990 http://ftp.tw.debian.org
				testing/main Packages&lt;br /&gt;
				&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 500 http://ftp.tw.debian.org
				unstable/main Packages&lt;br /&gt;
				&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 100 /var/lib/dpkg/status&lt;br /&gt;
				&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1.4.0-1 0&lt;br /&gt;
				&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 500 http://ftp.tw.debian.org
				stable/main Packages&lt;/tt&gt;&lt;br /&gt;
				&lt;/td&gt;
			&lt;/tr&gt;
		&lt;/tbody&gt;
	&lt;/table&gt;
&lt;/blockquote&gt;
然後，用 &lt;span&gt;&lt;tt&gt;apt-get&lt;/tt&gt;&lt;/span&gt; 來強制安裝新的版本：&lt;br /&gt;
&lt;blockquote&gt;
	&lt;table border=&quot;1&quot; cellpadding=&quot;2&quot; cellspacing=&quot;0&quot; width=&quot;100%&quot;&gt;
		&lt;tbody&gt;
			&lt;tr&gt;
				&lt;td valign=&quot;top&quot;&gt;&lt;tt&gt;apt-get install gcin=&lt;span&gt;1.4.7~pre3-0~1.oldgtk&lt;/span&gt;&lt;/tt&gt;&lt;br /&gt;
				&lt;/td&gt;
			&lt;/tr&gt;
		&lt;/tbody&gt;
	&lt;/table&gt;
&lt;/blockquote&gt;
如果在使用上發現什麼問題想把它降回其它版本的話，可以用 &lt;span&gt;&lt;tt&gt;apt-get&lt;/tt&gt;&lt;/span&gt;
來降級回特定的版本：&lt;br /&gt;
&lt;blockquote&gt;
	&lt;table border=&quot;1&quot; cellpadding=&quot;2&quot; cellspacing=&quot;0&quot; width=&quot;100%&quot;&gt;
		&lt;tbody&gt;
			&lt;tr&gt;
				&lt;td valign=&quot;top&quot;&gt;&lt;tt&gt;apt-get install gcin=&lt;/tt&gt;&lt;span&gt;&lt;tt&gt;1.4.6-0~1.oldgtk&lt;/tt&gt;&lt;/span&gt;
				&lt;/td&gt;
			&lt;/tr&gt;
		&lt;/tbody&gt;
	&lt;/table&gt;
&lt;/blockquote&gt;
或是安裝 Debian 官方所提供的版本：&lt;br /&gt;
&lt;blockquote&gt;
	&lt;table border=&quot;1&quot; cellpadding=&quot;2&quot; cellspacing=&quot;0&quot; width=&quot;100%&quot;&gt;
		&lt;tbody&gt;
			&lt;tr&gt;
				&lt;td valign=&quot;top&quot;&gt;&lt;tt&gt;apt-get install gcin/&lt;span&gt;testing&lt;/span&gt;&lt;/tt&gt;
				&lt;/td&gt;
			&lt;/tr&gt;
		&lt;/tbody&gt;
	&lt;/table&gt;
&lt;/blockquote&gt;
如果您在使用上有遇到任何問題，或是套件未能即時更新，請向敝人反應。謝謝！</description>
	<pubDate>Wed, 27 Jan 2010 13:27:20 +0000</pubDate>
</item>
<item>
	<title>tsung: Crontab 不會自動執行 修復、處理步驟</title>
	<guid>http://plog.longwin.com.tw/my_note-unix/2010/01/27/crontab-can-not-execute-fix-2010</guid>
	<link>http://feedproxy.google.com/~r/tsungblog/~3/TWjtjEwkvZA/crontab-can-not-execute-fix-2010</link>
	<description>&lt;p&gt;
發現 Crontab 已經好幾天都不會執行, 有點詭異.
&lt;/p&gt;
&lt;p&gt;
直接 crontab -e 再去 新增 / 修改 也都不會動, 手動執行都是正常.
&lt;/p&gt;
&lt;p&gt;
註: crontab 寫法都是正確的.
&lt;/p&gt;

&lt;h4&gt;
檢查、更新 Crontab&lt;/h4&gt;
&lt;p&gt;
做下述的檢查、重新設定的動作看看.
&lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;ls /var/spool/cron/crontab # 看權限是某正確, 資料是否正確.&lt;/li&gt;
	&lt;li&gt;若有使用 flock, 然後有存 tmp file 的, 把那些 tmp file 都砍了.&lt;/li&gt;
	&lt;li&gt;crontab -l &amp;gt; cron_backup; crontab -r; crontab cron_backup # 把 crontab 砍掉重新匯入&lt;/li&gt;
	&lt;li&gt;以上都做過, Crontab 還是都不會動.&lt;/li&gt;
&lt;/ol&gt;
&lt;h4&gt;
解法&lt;/h4&gt;
&lt;p&gt;
上述做法都沒有用, 最後試試 重新啟動 cron, 結果就可以動了, 重新啟動步驟如下:
&lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;ps aux | grep cron
	&lt;blockquote&gt;
		root&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 15082&amp;nbsp; 0.0&amp;nbsp; 0.0&amp;nbsp; 18708&amp;nbsp; 1068 ?&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Ss&amp;nbsp;&amp;nbsp; 13:23&amp;nbsp;&amp;nbsp; 0:00 cron
	&lt;/blockquote&gt;
	&lt;/li&gt;
	&lt;li&gt;kill 15082&lt;/li&gt;
	&lt;li&gt;ps aux | grep cron # 若已經自動跑起來, 就不需要下面的步驟&lt;/li&gt;
	&lt;li&gt;/usr/sbin/cron &amp;amp; &lt;/li&gt;
&lt;/ol&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/tsungblog/~4/TWjtjEwkvZA&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;</description>
	<pubDate>Tue, 26 Jan 2010 20:56:43 +0000</pubDate>
</item>
<item>
	<title>tsung: Git .gitignore 設定 與 注意事項 - 以 Zim 操作為範例</title>
	<guid>http://plog.longwin.com.tw/my_note-app-setting/2010/01/26/git-ignore-howto-set-zim-2010</guid>
	<link>http://feedproxy.google.com/~r/tsungblog/~3/H-ED9y6zZps/git-ignore-howto-set-zim-2010</link>
	<description>&lt;p&gt;
Git 設定 .gitignore, 設定完成就都直接生效, 在測試時都很正常, 但是實際使用 卻沒有生效, 有點軌異.
&lt;/p&gt;

&lt;h4&gt;
環境
&lt;/h4&gt;
&lt;ul&gt;
	&lt;li&gt;
	Git 所管理的專案名稱、位置: /home/user/doc
	&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
下述範例是以 &lt;a href=&quot;http://zim-wiki.org/&quot; target=&quot;_blank&quot; title=&quot;Zim&quot;&gt;Zim&lt;/a&gt; 為主, Zim 是一套桌面的 Wiki 編輯器, 裡面寫的內容都會存成 txt 檔, .zim 的目錄下會存 &amp;quot;*.cache&amp;quot; 和 &amp;quot;zim 本身自己的設定值&amp;quot;.
&lt;/p&gt;
&lt;p&gt;
Zim 在剛開始建立完成後, 就使用下述步驟:
&lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;cd /home/user/doc&lt;/li&gt;
	&lt;li&gt;git init&lt;/li&gt;
	&lt;li&gt;git commit -a&lt;/li&gt;
	&lt;li&gt;git push #一開始沒有設定 .gitignore, 所以會將 .zim/* 都 commit 進去&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
於每次開啟 Zim 後, 都會出現
&lt;/p&gt;
&lt;blockquote&gt;
	modified:&amp;nbsp;&amp;nbsp; .zim/history.cache&lt;br /&gt;
	modified:&amp;nbsp;&amp;nbsp; .zim/index.cache
&lt;/blockquote&gt;
&lt;p&gt;
造成 git commit -a 的麻煩 (因為多台電腦要同步時, index.cache / history.cache 都會出現需要 merge 的狀況), 所以想設定 .gitignore 來把它拿掉. (方便 git commit -a)
&lt;/p&gt;
&lt;h4&gt;
設定 .gitignore 位置、方法
&lt;/h4&gt;
&lt;p&gt;
設定 Git ignore 的方式都一樣, 有下面幾個地方可以設定, 依自己喜好 / 需求來設定即可.(設定位置)
&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;strong&gt;vim ~/.gitignore&lt;/strong&gt; # 對所有 Git 的專案生效 (自己的 home 目錄下)&lt;/li&gt;
	&lt;li&gt;&lt;strong&gt;vim doc/.gitignore&lt;/strong&gt; # doc 是專案名稱, 用這個的好處是, 將 .gitignore commit 進去, 此 .gitignore 可以隨著專案到處走. (Git 管理的 Project 目錄下) &lt;/li&gt;
	&lt;li&gt;&lt;strong&gt;vim doc/.git/info/exclude&lt;/strong&gt; # 只有單獨於此處 .git 生效 (Project 的 .git/info/exclude 檔案)&lt;/li&gt;
	&lt;li&gt;這幾個地方都可以設定, 可以使用 * 等符號. 詳可見: &lt;a href=&quot;http://www.kernel.org/pub/software/scm/git/docs/gitignore.html&quot; target=&quot;_blank&quot; title=&quot;gitignore(5) Manual Page&quot;&gt;gitignore(5) Manual Page&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
於 .zim 的狀況, 可以設定下述: (設定方法)
&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;strong&gt;所有 . 開頭的目錄 / 檔案都不 commit&lt;/strong&gt;
	&lt;blockquote&gt;
		.*
	&lt;/blockquote&gt;
	&lt;/li&gt;
	&lt;li&gt;&lt;strong&gt;.zim 目錄內 的 所有 *.cache 都不 commit&lt;/strong&gt;
	&lt;blockquote&gt;
		.zim/*.cache
	&lt;/blockquote&gt;
	&lt;/li&gt;
	&lt;li&gt;&lt;strong&gt;只有 .zim/history.cache, .zim/index.cache 不 commit&lt;/strong&gt;
	&lt;blockquote&gt;
		.zim/history.cache&lt;br /&gt;
		.zim/index.cache
	&lt;/blockquote&gt;
	&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;
.gitignore 無法生效 的 問題修復
&lt;/h4&gt;
&lt;p&gt;
在測試狀況都是正常, 但是在 Zim 實際使用就有問題, 每次都出現 modified 的解法.
&lt;/p&gt;
&lt;h5&gt;
解法
&lt;/h5&gt;
&lt;ol&gt;
	&lt;li&gt;因為第一次 commit 已經將 .zim/*.cache commit 進去了, 所以每次它都會去檢查, 造成都出現 modified 的狀況.&lt;/li&gt;
	&lt;li&gt;git rm -f .zim/history.cache&lt;/li&gt;
	&lt;li&gt;git rm -f .zim/index.cache&lt;/li&gt;
	&lt;li&gt;git commit # 即可&lt;/li&gt;
	&lt;li&gt;再將 .gitignore 設定好, 就可以避免掉這些狀況囉~ :)&lt;/li&gt;
&lt;/ol&gt;
&lt;h4&gt;
範例 -我的 Zim 設定方式 
&lt;/h4&gt;
&lt;ol&gt;
	&lt;li&gt;cd /home/user/doc&lt;/li&gt;
	&lt;li&gt;vim .gitignore
	&lt;blockquote&gt;
		.zim/*.cache
	&lt;/blockquote&gt;
	&lt;/li&gt;
	&lt;li&gt;git add .gitignore&lt;/li&gt;
	&lt;li&gt;git commit&lt;/li&gt;
	&lt;li&gt;git push&lt;/li&gt;
&lt;/ol&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/tsungblog/~4/H-ED9y6zZps&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;</description>
	<pubDate>Mon, 25 Jan 2010 21:39:08 +0000</pubDate>
</item>
<item>
	<title>tsung: 為 Debian Linux Kernel 2.6.32 補上 e100 Firmware library</title>
	<guid>http://plog.longwin.com.tw/my_note-unix/2010/01/25/debian-linux-kernel-firmware-2010</guid>
	<link>http://feedproxy.google.com/~r/tsungblog/~3/nFJWmDpkxAI/debian-linux-kernel-firmware-2010</link>
	<description>&lt;p&gt;
Debian Linux 做 apt-get dist-upgrade 時, kernel 居然直接升到 Debian GNU/Linux, with Linux 2.6.32-trunk-amd64, 再來似乎有不少的慘劇要處理.
&lt;/p&gt;
&lt;p&gt;
出現 Possible missing firmware /lib/firmware/ 等訊息, 詳細如下: 
&lt;/p&gt;
&lt;blockquote&gt;
	update-initramfs: Generating /boot/initrd.img-2.6.32-trunk-amd64&lt;br /&gt;
	W: Possible missing firmware /lib/firmware/e100/d102e_ucode.bin for module e100&lt;br /&gt;
	W: Possible missing firmware /lib/firmware/e100/d101s_ucode.bin for module e100&lt;br /&gt;
	W: Possible missing firmware /lib/firmware/e100/d101m_ucode.bin for module e100&lt;br /&gt;
	W: Possible missing firmware /lib/firmware/rtl8168d-2.fw for module r8169&lt;br /&gt;
	W: Possible missing firmware /lib/firmware/rtl8168d-1.fw for module r8169
&lt;/blockquote&gt;
&lt;p&gt;
於 linux-image-2.6.32-trunk-amd64 缺少下述: (為何移出 Kernel? 可見最下面的相關網頁)
&lt;/p&gt;
&lt;blockquote&gt;
	e100: e100/d102e_ucode.bin, e100/d101s_ucode.bin, e100/d101m_ucode.bin&lt;br /&gt;
	r8169: rtl8168d-2.fw, rtl8168d-1.fw
&lt;/blockquote&gt;

&lt;h4&gt;
補上 e100 Firmware
&lt;/h4&gt;
&lt;ul&gt;
	&lt;li&gt;vim /etc/apt/sources.list # 增加 non-free
	&lt;blockquote&gt;
		deb http://ftp.us.debian.org/debian/ testing main non-free contrib&lt;br /&gt;
		deb-src http://ftp.us.debian.org/debian/ testing main non-free contrib
	&lt;/blockquote&gt;
	&lt;/li&gt;
&lt;/ul&gt;
&lt;h5&gt;
尋找所需 Package
&lt;/h5&gt;
&lt;ol&gt;
	&lt;li&gt;apt-get install apt-file&lt;/li&gt;
	&lt;li&gt;apt-file update&lt;/li&gt;
	&lt;li&gt;apt-file search /lib/firmware/e100/
	&lt;blockquote&gt;
		firmware-linux: /lib/firmware/e100/d101m_ucode.bin&lt;br /&gt;
		firmware-linux: /lib/firmware/e100/d101s_ucode.bin&lt;br /&gt;
		firmware-linux: /lib/firmware/e100/d102e_ucode.bin
	&lt;/blockquote&gt;
	&lt;/li&gt;
&lt;/ol&gt;
&lt;h5&gt;
安裝 firmware-linux
&lt;/h5&gt;
&lt;ol&gt;
	&lt;li&gt;apt-get update&lt;/li&gt;
	&lt;li&gt;apt-get install firmware-linux # 會安裝 firmware-linux firmware-linux-nonfree&lt;/li&gt;
	&lt;li&gt;ls /lib/firmware/ # e100 出現囉~&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
註: r8169 還沒找到該怎麼補.
&lt;/p&gt;
&lt;h4&gt;
相關網頁
&lt;/h4&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://blogs.koolwal.net/2009/05/11/tip-debian-linux-kernel-firmware-issues-ethernet-drivers-missing/&quot; target=&quot;_blank&quot; title=&quot;TIP: Debian Linux Kernel Firmware issues &amp;ndash; Ethernet drivers missing&quot;&gt;TIP: Debian Linux Kernel Firmware issues &amp;ndash; Ethernet drivers missing&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;http://lists.debian.org/debian-devel/2008/10/msg00368.html&quot; target=&quot;_blank&quot; title=&quot;Bug reports of DFSG violations are tagged &amp;lsquo;lenny-ignore&amp;rsquo;?&quot;&gt;Bug reports of DFSG violations are tagged &amp;lsquo;lenny-ignore&amp;rsquo;?&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/tsungblog/~4/nFJWmDpkxAI&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;</description>
	<pubDate>Sun, 24 Jan 2010 21:28:22 +0000</pubDate>
</item>
<item>
	<title>Cornelius: Vimana - new feature.</title>
	<guid>tag:blogger.com,1999:blog-3147036244016021082.post-2952210460665390079</guid>
	<link>http://c9s.blogspot.com/2010/01/vimana-new-feature.html</link>
	<description>Vimana 的移除功能總算是找時間弄好了，兩個新的 Feature:&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;1. Customizable Runtime Path:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;$ vimana install [plugin] --runtime-path [path]&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;可以指定要安裝的 Runtime Path , 可在 .vimrc 內加上 set runtimepath+=[your/path] 。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;2. To uninstall Plugin:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;$ vimana remove [plugin] &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;即可移除安裝&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;或者強迫移除安裝:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;$ vimana remove [plugin] --force&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;基本上 Installation 的 Record 都是以 JSON 格式置放在 ~/.vim/record 內，所以若有其他的 implementation 也可以很輕易的讀取，VimL 則可以直接 eval 該 record 來取得資料。&lt;/div&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/3147036244016021082-2952210460665390079?l=c9s.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Sun, 24 Jan 2010 21:08:55 +0000</pubDate>
	<author>cornelius.howl@gmail.com (c9s)</author>
</item>
<item>
	<title>jouston: Skoda Superb TDi 2.0 主觀試車報告</title>
	<guid>tag:blogger.com,1999:blog-4227440140881202536.post-3052483941827344840</guid>
	<link>http://jouston.blogspot.com/2010/01/skoda-superb-tdi-20.html</link>
	<description>各位還記得2009年底的台北車展嗎？



這裡還有一些照片可看

展中最吸引我目光的就是三台車，Porsche Panemera, Skoda Superb 2.0 TDi和Hyundai i30CW 1.6柴油款三台車。第一台問了大致報價就直接放棄試車的念頭，第二台大致在勉強可以接受的範圍，第三台車只有4速自排。






上圖引用自快車報，他們的圖集還有更多好看的照片。 


在本文開始之前，先講一下我作為試車手的個人背景，平日我用來通勤的娃娃車是Toyota Tercel 1.5CL手排，避震器換成TRD加上APEX短彈簧，腳上踩的是Michellin Pilot Exalto PE2 155/50/15規格的胎。最近加裝了AOE 21mm的防傾桿。平日開車並不會把轉速用盡，不過偶而開得比較快的時候，也是有檔檔一拜的機會。

簡言之，我是個比較熱血的駕駛者。</description>
	<pubDate>Sat, 23 Jan 2010 05:42:00 +0000</pubDate>
	<author>noreply@blogger.com (Jouston Huang)</author>
</item>
<item>
	<title>FourDollars: 在 Linux 系統上面手動安裝 Firefox 3.6</title>
	<guid>tag:blogger.com,1999:blog-14489808.post-206683493798379663</guid>
	<link>http://fourdollars.blogspot.com/2010/01/linux-firefox-36.html</link>
	<description>&lt;div&gt;首先到 &lt;a href=&quot;http://www.mozilla.com/&quot;&gt;http://www.mozilla.com/&lt;/a&gt; 下載 firefox-3.6.tar.bz2 回來&lt;br /&gt;然後解壓縮到 /usr/local/lib/firefox-3.6 底下&lt;br /&gt;&lt;blockquote&gt;$ mkdir -p /usr/local/lib&lt;br /&gt;$ tar xf firefox-3.6.tar.bz2 -C /usr/local/lib&lt;br /&gt;$ mv /usr/local/lib/firefox /usr/local/lib/firefox-3.6&lt;br /&gt;&lt;/blockquote&gt;然後建立一個啟動圖示&lt;br /&gt;&lt;blockquote&gt;$ mkdir -p .local/share/applications/&lt;br /&gt;$ cat &amp;gt; .local/share/applications/firefox-3.6.desktop &amp;lt;&amp;lt;ENDLINE&lt;br /&gt;[Desktop Entry]&lt;br /&gt;Version=3.6&lt;br /&gt;Name=Firefox 3.6 網頁瀏灠器&lt;br /&gt;Comment=瀏灠網頁&lt;br /&gt;GenericName=網頁瀏灠器&lt;br /&gt;Exec=/usr/local/lib/firefox-3.6/firefox %u&lt;br /&gt;Terminal=false&lt;br /&gt;X-MultipleArgs=false&lt;br /&gt;Type=Application&lt;br /&gt;Icon=/usr/local/lib/firefox-3.6/chrome/icons/default/default48.png&lt;br /&gt;Categories=Application;Network;&lt;br /&gt;MimeType=text/html;text/xml;application/xhtml+xml;application/xml;application/vnd.mozilla.xul+xml;application/rss+xml;application/rdf+xml;image/gif;image/jpeg;image/png;&lt;br /&gt;StartupWMClass=Firefox&lt;br /&gt;StartupNotify=true                                                                                                                                                                                               &lt;br /&gt;ENDLINE&lt;br /&gt;&lt;/blockquote&gt;這樣就可以了~ :D&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/14489808-206683493798379663?l=fourdollars.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Fri, 22 Jan 2010 12:56:08 +0000</pubDate>
	<author>fourdollars@gmail.com (FourDollars)</author>
</item>
<item>
	<title>tsung: mlterm 使用 ssh 連外部機器, 無法使用 screen 的問題修復</title>
	<guid>http://plog.longwin.com.tw/my_note-unix/2010/01/22/mlterm-ssh-screen-terminfo-error-2010</guid>
	<link>http://feedproxy.google.com/~r/tsungblog/~3/PAocW6EM2IA/mlterm-ssh-screen-terminfo-error-2010</link>
	<description>&lt;p&gt;
使用 mlterm ssh 連到其它機器, 使用 screen 出現下述訊息:
&lt;/p&gt;
&lt;blockquote&gt;
	Cannot find terminfo entry for 'mlterm'.
&lt;/blockquote&gt;
&lt;p&gt;
於是就 無法使用 screen.
&lt;/p&gt;

&lt;h4&gt;
解法1
&lt;/h4&gt;
&lt;ol&gt;
	&lt;li&gt;於本機&lt;/li&gt;
	&lt;li&gt;export TERM=vt100 # 或可將此寫入 .bashrc&lt;/li&gt;
	&lt;li&gt;ssh xx.xx.xx.xx&lt;/li&gt;
	&lt;li&gt;screen # 即可正常使用.&lt;/li&gt;
&lt;/ol&gt;
&lt;h4&gt;
解法2
&lt;/h4&gt;
&lt;ol&gt;
	&lt;li&gt;mlterm -y vt100&lt;/li&gt;
	&lt;li&gt;ssh xx.xx.xx.xx&lt;/li&gt;
	&lt;li&gt;screen # 即可正常使用.&lt;/li&gt;
&lt;/ol&gt;
&lt;h4&gt;
相關參數
&lt;/h4&gt;
&lt;ul&gt;
	&lt;li&gt;alias mlterm='mlterm -fg=white -bg=black -r 60 -A -w 20 -O right&amp;nbsp; -y vt100'&lt;/li&gt;
	&lt;li&gt;alias mlterm='mlterm -fg=white -bg=black -r 60 -A -w 20 -O none -t true -y vt100'&lt;/li&gt;
&lt;/ul&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/tsungblog/~4/PAocW6EM2IA&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;</description>
	<pubDate>Thu, 21 Jan 2010 22:00:36 +0000</pubDate>
</item>
<item>
	<title>tsung: PHP 將 UTF-8 的 字串 依 指定長度 切割成陣列(str_split 的 UTF-8版)</title>
	<guid>http://plog.longwin.com.tw/programming/2010/01/21/php-utf8-str-split-word-2010</guid>
	<link>http://feedproxy.google.com/~r/tsungblog/~3/m5nvwdfa-To/php-utf8-str-split-word-2010</link>
	<description>&lt;p&gt;
PHP 的 &lt;a href=&quot;http://php.net/manual/en/function.str-split.php&quot; target=&quot;_blank&quot; title=&quot;PHP: str_split()&quot;&gt;str_split()&lt;/a&gt; 的功能、使用方式 如下:
&lt;/p&gt;
&lt;blockquote&gt;
	&lt;code&gt;
	&amp;lt;?php&lt;br /&gt;
	$str = 'Hello';&lt;br /&gt;
	print_r(str_split($str)); // array('H', 'e', 'l', 'l', 'o')&lt;br /&gt;
	print_r(str_split($str, 3)); // array('Hel', 'lo')&lt;br /&gt;
	?&amp;gt;
	&lt;/code&gt;
&lt;/blockquote&gt;
&lt;p&gt;
str_split() 可以將 字串 依 需要的長度 做分割, 但是對 UTF-8 的中文, 就無法切依需要的長度來做切割, 要自己另外處理.
&lt;/p&gt;
&lt;p&gt;
註: 下述程式 使用方法 都跟 str_split() 一樣.
&lt;/p&gt;

&lt;h4&gt;
str2_split(): mb_strlen() + mb_substr() 
&lt;/h4&gt;
&lt;p&gt;
直覺的使用 mb_strlen() + mb_substr() 來寫 UTF-8 版, 對於文字短的狀況, 速度都還夠快.
&lt;/p&gt;
&lt;blockquote&gt;
	&lt;code&gt;
	&amp;lt;?php&lt;br /&gt;
	function str2_split($string, $split_len = 1)&lt;br /&gt;
	{&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; $len = mb_strlen($string, 'UTF-8');&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; if ($len &amp;gt; $split_len || !$split_len) {&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for ($i = 0; $i &amp;lt; $len; $i++) {&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $parts[] = mb_substr($string, 0, $split_len, 'UTF-8');&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $string&amp;nbsp; = mb_substr($string, $split_len, $len, 'UTF-8');&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; } else {&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $parts = array($string);&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
	&amp;nbsp;&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; return $parts;&lt;br /&gt;
	}&lt;br /&gt;
	?&amp;gt;
	&lt;/code&gt;
&lt;/blockquote&gt;
&lt;h4&gt;
utf8_str_split() - 取自 Joomla - pasamio 
&lt;/h4&gt;
&lt;p&gt;
後來想想, 這個應該早就有人寫過, 而且一定比上面的好又快, 於是找找 &lt;q&gt;str_split utf-8&lt;/q&gt;, 第一筆就找到 Joomla 的 utf8_str_split(). XD
&lt;/p&gt;
&lt;p&gt;
下述轉載自: &lt;a href=&quot;http://api.joomla.org/__filesource/fsource_utf8_strings_phputf8str_split.php.html&quot; target=&quot;_blank&quot; title=&quot;File source for str_split.php&quot;&gt;File source for str_split.php&lt;/a&gt; 
&lt;/p&gt;
&lt;blockquote&gt;
	&lt;code&gt;
	&amp;lt;?php&lt;br /&gt;
	/**&lt;br /&gt;
	* @version $Id: str_split.php 10381 2008-06-01 03:35:53Z pasamio $&lt;br /&gt;
	* @package utf8&lt;br /&gt;
	* @subpackage strings&lt;br /&gt;
	*/&lt;br /&gt;
	function utf8_str_split($str, $split_len = 1)&lt;br /&gt;
	{&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; if (!preg_match('/^[0-9]+$/', $split_len) || $split_len &amp;lt; 1)&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return FALSE;&lt;br /&gt;
	&amp;nbsp;&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; $len = mb_strlen($str, 'UTF-8');&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; if ($len &amp;lt;= $split_len)&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return array($str);&lt;br /&gt;
	&amp;nbsp;&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; preg_match_all('/.{'.$split_len.'}|[^\x00]{1,'.$split_len.'}$/us', $str, $ar);&lt;br /&gt;
	&amp;nbsp;&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; return $ar[0];&lt;br /&gt;
	}&lt;br /&gt;
	?&amp;gt;
	&lt;/code&gt;
&lt;/blockquote&gt;
&lt;h4&gt;
速度測試
&lt;/h4&gt;
&lt;ul&gt;
	&lt;li&gt;將這兩個 function 各跑 10000次, 看看所使用的時間, 很明顯 utf8_str_split() 比 str2_split() 快了 3倍多~ :)
	&lt;ul&gt;
		&lt;li&gt;utf8_str_split .. (0.225438117981 secs).&lt;/li&gt;
		&lt;li&gt;str2_split ...... (0.738878965378 secs).&amp;nbsp;&lt;/li&gt;
	&lt;/ul&gt;
	&lt;/li&gt;
&lt;/ul&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/tsungblog/~4/m5nvwdfa-To&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;</description>
	<pubDate>Wed, 20 Jan 2010 21:38:55 +0000</pubDate>
</item>
<item>
	<title>tsung: ADSL PPPoE 出現 unrecognize option '/dev/modem' 修復(Linux)</title>
	<guid>http://plog.longwin.com.tw/my_note-unix/2010/01/20/adsl-pppoe-fix-dev-modem-error-2010</guid>
	<link>http://feedproxy.google.com/~r/tsungblog/~3/ZixI61vseGg/adsl-pppoe-fix-dev-modem-error-2010</link>
	<description>&lt;p&gt;
於 Ubuntu Linux 9.10 剛重灌完, 要設定斷線自動重新撥接的 Script.(&lt;a href=&quot;http://plog.longwin.com.tw/programming/2007/08/24/adsl_repppoe_script_2007&quot; title=&quot;Debian Linux: ADSL PPPoE 自動重撥 Script&quot;&gt;Debian Linux: ADSL PPPoE 自動重撥 Script&lt;/a&gt;)
&lt;/p&gt;
&lt;p&gt;
但是 repppoe 的 pon 出現下述訊息: (使用 &lt;q&gt;pon&lt;/q&gt; 或 &lt;q&gt;pon -q&lt;/q&gt; 都出現下述訊息, 而無法撥接.)
&lt;/p&gt;
&lt;blockquote&gt;
	/etc/ppp/peers/provider: unrecognize option '/dev/modem'
&lt;/blockquote&gt;

&lt;h4&gt;
修復方式
&lt;/h4&gt;
&lt;ul&gt;
	&lt;li&gt;用 &lt;strong&gt;&lt;q&gt;pon dsl-provider&lt;/q&gt;&lt;/strong&gt; 就不會出現那個錯誤訊息, 而能正常撥接.&lt;/li&gt;
	&lt;li&gt;註1: repppoe 的 Script 有把這段語法寫在裡面, 不過已經忘的一乾二淨, 還是寫起來紀錄比較實在.&lt;/li&gt;
	&lt;li&gt;註2: 相關參考可見 &lt;q&gt;/etc/ppp/pppoe_on_boot&lt;/q&gt; 的 Script&lt;/li&gt;
&lt;/ul&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/tsungblog/~4/ZixI61vseGg&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;</description>
	<pubDate>Tue, 19 Jan 2010 21:22:30 +0000</pubDate>
</item>
<item>
	<title>Asho(阿信): PHP5的::、-&gt;、self、$this的區別</title>
	<guid>tag:blogger.com,1999:blog-3562335153267203512.post-69188330595928669</guid>
	<link>http://ashotw.blogspot.com/2010/01/php5-selfthis.html</link>
	<description>&lt;ul&gt;&lt;li&gt;如果被引用的變數或者方法被宣告為 const 或者 static，那麼就必須使用運算子::。&lt;/li&gt;&lt;li&gt;如果被引用的變數或者方法&lt;span&gt;沒有被宣告為 const 或者 static&lt;/span&gt;，那麼就必須使用運算子-&amp;gt;。&lt;/li&gt;&lt;li&gt;如果從類別內部存取 const 或者 static 變數或者方法，那麼就必須使用自引用的 self。&lt;/li&gt;&lt;li&gt;如果從類別內部存取&lt;span&gt;不為 const 或者 static 變數或者方法&lt;/span&gt;，那麼就必須使用自引用的 $this。&lt;/li&gt;&lt;/ul&gt;純筆記... &lt;br /&gt;&lt;ul&gt;&lt;/ul&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/3562335153267203512-69188330595928669?l=ashotw.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Tue, 19 Jan 2010 19:32:24 +0000</pubDate>
	<author>noreply@blogger.com (阿信)</author>
</item>
<item>
	<title>tsung: Linux 網路介面 一直啟動、關閉 的 問題排除</title>
	<guid>http://plog.longwin.com.tw/my_note-unix/2010/01/19/linux-eth-up-down-fix-2010</guid>
	<link>http://feedproxy.google.com/~r/tsungblog/~3/5eCi5osNJQU/linux-eth-up-down-fix-2010</link>
	<description>&lt;p&gt;
在重灌 Ubuntu Linux 後, 網路異常的慢, dmesg 看到一連串的 eth1 up / down 的訊息, 訊息如下:
&lt;/p&gt;
&lt;blockquote&gt;
	[442.008556] eth1: link down&lt;br /&gt;
	[446.051536] eth1: link up, 10Mbps, half-duplex, lpa 0x0000&lt;br /&gt;
	[462.499119] eth1: link down&lt;br /&gt;
	[463.352299] eth1: link up, 10Mbps, half-duplex, lpa 0x0000&lt;br /&gt;
	..... 一直跑不停. 
&lt;/blockquote&gt;

&lt;h4&gt;
mii-tool 訊息
&lt;/h4&gt;
&lt;ol&gt;
	&lt;li&gt;sudo mii-tool # 出現下述訊息
	&lt;blockquote&gt;
		eth1: autonegotiation failed, link ok
	&lt;/blockquote&gt;
	&lt;/li&gt;
	&lt;li&gt;sudo mii-tool eth1 -F 100baseTx-FD #強迫指定 eth1 為 100bastTx-FD&lt;/li&gt;
	&lt;li&gt;sudo mii-tool # 再查看
	&lt;blockquote&gt;
		eth1: 100 Mbit, full duplex, link ok
	&lt;/blockquote&gt;
	&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
這樣子網路稍微可以動, 但是速度很慢, 小檔案可以傳輸, 大檔案會從 每秒 2M 一直降速到 0kb. (ping 的封包 lost 率很高.)
&lt;/p&gt;
&lt;p&gt;
重開機後, 網路狀況時好時壞, 換 Hub 的 Port, 狀況也是一樣.
&lt;/p&gt;
&lt;h4&gt;
問題列舉 + 錯誤排除
&lt;/h4&gt;
&lt;p&gt;
&lt;strong&gt;
解決問題, 要先列問題清單, 把會發生問題的項目都一一列出來, 於是先整理一份列表.&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
一開始以為是網卡壞了, 一直 up / down. 但是手邊沒有網卡, 而且要拆機器, 就列在最後的排除項目上, 所以 &amp;quot;排除項目列表 + 順序&amp;quot; 如下:
&lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;網路線&lt;/li&gt;
	&lt;li&gt;Hub Port&lt;/li&gt;
	&lt;li&gt;Hub&lt;/li&gt;
	&lt;li&gt;網路卡、Driver&lt;/li&gt;
&lt;/ol&gt;
&lt;h5&gt;
測試 網路線、Hub Port
&lt;/h5&gt;
&lt;p&gt;
網路線、Hub Port 都換過, 狀況都一樣. (網路線: 換網路線、Hub Port: 交換測試.) 
&lt;/p&gt;
&lt;h5&gt;
測試 Hub (使用 Seednet AP 的測試方式)
&lt;/h5&gt;
&lt;p&gt;
手上正好有台 Seednet 附的 AP, 有四個網路孔可以用, 所以就拿來測試是否是 Hub 問題, 測試方式:
&lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;直接試 Seednet 附的 AP(有四個孔), 網路連線就可以正常使用 (不過 Seednet AP 應該是 10M 的, 速度還是有點慢).&lt;/li&gt;
	&lt;li&gt;將 NAT (Gateway) 的網路線 與 電腦的網路線接在同一台 Hub.&lt;/li&gt;
	&lt;li&gt;電腦那台的 IP 寫死連到 NAT, 看是否可正常連線, ping 不會有封包 lost 即可.&lt;/li&gt;
	&lt;li&gt;於是確認是 Hub, 問題, 買新的 Hub 來換, 看到每秒 11M+ 的感覺真好~ :)&lt;/li&gt;
&lt;/ol&gt;
&lt;h4&gt;
相關網頁
&lt;/h4&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://www.cyberciti.biz/faq/howto-setup-linux-lan-card-find-out-full-duplex-half-speed-or-mode/&quot; target=&quot;_blank&quot; title=&quot;Linux LAN card: Find out full duplex / half speed or mode&quot;&gt;Linux LAN card: Find out full duplex / half speed or mode&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/tsungblog/~4/5eCi5osNJQU&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;</description>
	<pubDate>Mon, 18 Jan 2010 21:23:27 +0000</pubDate>
</item>
<item>
	<title>FourDollars: Google Chrome Extension: Taiwan Radio Tuner</title>
	<guid>tag:blogger.com,1999:blog-14489808.post-1391917206687836613</guid>
	<link>http://fourdollars.blogspot.com/2010/01/google-chrome-extension-taiwan-radio.html</link>
	<description>&lt;div&gt;這個 Google Chrome Extension 算是 &lt;a href=&quot;http://code.google.com/p/betaradio/&quot;&gt;BetaRadio&lt;/a&gt; 開發過程中的一個副產品&lt;br /&gt;下載的網址在 &lt;a href=&quot;https://chrome.google.com/extensions/detail/hacebidkncpkfenhpapdbkcefalehepa&quot;&gt;https://chrome.google.com/extensions/detail/hacebidkncpkfenhpapdbkcefalehepa&lt;/a&gt;&lt;br /&gt;使用說明整理在 &lt;a href=&quot;http://code.google.com/p/betaradio/wiki/GoogleChromeExtension&quot;&gt;http://code.google.com/p/betaradio/wiki/GoogleChromeExtension&lt;/a&gt;&lt;br /&gt;希望大家會喜歡使用~ ;)&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/14489808-1391917206687836613?l=fourdollars.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Sun, 17 Jan 2010 23:33:07 +0000</pubDate>
	<author>fourdollars@gmail.com (FourDollars)</author>
</item>
<item>
	<title>tsung: PHP 可連接多個 &quot;-&amp;gt;&quot; 來連續處理、執行 的 物件寫法</title>
	<guid>http://plog.longwin.com.tw/my_note-programming/2010/01/18/php-class-object-new-tips-2010</guid>
	<link>http://feedproxy.google.com/~r/tsungblog/~3/nPiG6sYTB3A/php-class-object-new-tips-2010</link>
	<description>&lt;p&gt;
物件(Object) 在撰寫時, 會希望 於使用、操作上, 可以更直覺化(擴充性... 等等, 不是此篇重點.), 下述的寫法就很常見.
&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;$db-&amp;gt;select('*')-&amp;gt;limit(10)-&amp;gt;begin(0) ... 等等. (在操作上(Method), 可以一直 &amp;quot;-&amp;gt;&amp;quot; 的操作下去.)&lt;/li&gt;
	&lt;li&gt;執行順序:
	&lt;ol&gt;
		&lt;li&gt;select('*')&lt;/li&gt;
		&lt;li&gt;limit(10)&lt;/li&gt;
		&lt;li&gt;begin(0)&lt;/li&gt;
	&lt;/ol&gt;
	&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
但是一般物件(Class)教學的寫法, 都只能 $db-&amp;gt;select('*') 就結束了, 要再串接多個 &lt;q&gt;-&amp;gt;&lt;/q&gt;, 就會直接出現錯誤訊息.
&lt;/p&gt;

&lt;h4&gt;
PHP Class - 標準物件的寫法
&lt;/h4&gt;
&lt;h5&gt;
範例1
&lt;/h5&gt;
&lt;blockquote&gt;
	&lt;code&gt;
	&amp;lt;?php&lt;br /&gt;
	class Test&lt;br /&gt;
	{&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; protected $str;&lt;br /&gt;
	&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; public function __construct()&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
	&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; public function a()&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $this-&amp;gt;str .= 'a';&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
	&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; public function b()&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $this-&amp;gt;str .= 'b';&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
	&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; public function display()&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return $this-&amp;gt;str . &amp;quot;\n&amp;quot;;&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	/* 測試 */&lt;br /&gt;
	$a = new Test();&lt;br /&gt;
	$a-&amp;gt;a(); // a&lt;br /&gt;
	$a-&amp;gt;b(); // b&lt;br /&gt;
	// $a-&amp;gt;a()-&amp;gt;b(); // error&lt;br /&gt;
	echo $a-&amp;gt;display(); // ab&lt;br /&gt;
	?&amp;gt;
	&lt;/code&gt;
&lt;/blockquote&gt;
&lt;h4&gt;
PHP Class - 串接多個 &amp;quot;-&amp;gt;&amp;quot; 的寫法
&lt;/h4&gt;
&lt;p&gt;
要串接多個 &amp;quot;-&amp;gt;&amp;quot;, 只要在 Function (Method) 的 回傳值(return value), 回傳 $this (物件本身) 即可. (將物件本身回傳, 即可繼續操作下去.)
&lt;/p&gt;
&lt;h5&gt;
範例2
&lt;/h5&gt;
&lt;blockquote&gt;
	&lt;code&gt;
	&amp;lt;?php&lt;br /&gt;
	class Test&lt;br /&gt;
	{&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; protected $str;&lt;br /&gt;
	&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; public function __construct()&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
	&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; public function a()&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $this-&amp;gt;str .= 'a';&lt;br /&gt;
	&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return $this;&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
	&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; public function b()&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $this-&amp;gt;str .= 'b';&lt;br /&gt;
	&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return $this;&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
	&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; public function display()&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return $this-&amp;gt;str . &amp;quot;\n&amp;quot;;&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	&lt;/code&gt;&lt;code&gt;/* 測試 */&lt;/code&gt;&lt;br /&gt;
	&lt;code&gt;
	$a = new Test();&lt;br /&gt;
	$a-&amp;gt;a(); // a&lt;br /&gt;
	$a-&amp;gt;b(); // ab =&amp;gt; a + b&lt;br /&gt;
	$a-&amp;gt;a()-&amp;gt;b(); // abab =&amp;gt; ab + a + b&lt;br /&gt;
	echo $a-&amp;gt;display(); // abab&lt;br /&gt;
	?&amp;gt;
	&lt;/code&gt;
&lt;/blockquote&gt;
&lt;h4&gt;
範例說明
&lt;/h4&gt;
&lt;ul&gt;
	&lt;li&gt;範例1 的值就是每個執行完, 都是單獨的程序&lt;/li&gt;
	&lt;li&gt;範例2 的值, 會一直不斷的被累加起來(註: 字串一直接起來).&lt;/li&gt;
	&lt;li&gt;註: 其它程式語言也是相同作法.&lt;/li&gt;
&lt;/ul&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/tsungblog/~4/nPiG6sYTB3A&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;</description>
	<pubDate>Sun, 17 Jan 2010 21:06:02 +0000</pubDate>
</item>
<item>
	<title>fred: 入門級 Mouse Linux Kernel Driver</title>
	<guid>tag:blogger.com,1999:blog-4389461234607418203.post-5718326350700720233</guid>
	<link>http://fred-zone.blogspot.com/2010/01/mouse-linux-kernel-driver.html</link>
	<description>每當說起 Linux Kernel Driver 入門，就不免提到如何寫個&amp;nbsp;Hello World 級的 Module，這樣的第一支程式，除了可供 Linux Kernel 動態載入和卸載，似乎是一點用處也沒有。與一般應用程式不同，開發&amp;nbsp;Linux Driver 最大的門檻不在於如何撰寫出 Module，而是如何設計系統架構與硬體兩者間的橋樑。其中懂得如何控制和結合 Kernel 內各種機制更是重點，最複雜的莫過於此。&lt;br /&gt;&lt;br /&gt;這邊有個 Mouse Kernel Driver，會在 Kernel 上新增一個虛擬滑鼠裝置，然後使用者可從&amp;nbsp;sysfs 控制該虛擬滑鼠（virmouse.c）：&lt;br /&gt;&lt;div&gt;&lt;pre&gt;/*&lt;br /&gt;&amp;nbsp;* A Virtual Mouse Driver to send fake events from userspace.&lt;br /&gt;&amp;nbsp;*&lt;br /&gt;&amp;nbsp;* Written by Fred Chien &amp;lt;fred@ullab.org&amp;gt;&lt;br /&gt;&amp;nbsp;*&lt;br /&gt;&amp;nbsp;*/&lt;br /&gt;#include &amp;lt;linux/fs.h&amp;gt;&lt;br /&gt;#include &amp;lt;asm/uaccess.h&amp;gt;&lt;br /&gt;#include &amp;lt;linux/pci.h&amp;gt;&lt;br /&gt;#include &amp;lt;linux/input.h&amp;gt;&lt;br /&gt;#include &amp;lt;linux/platform_device.h&amp;gt;&lt;br /&gt;&lt;br /&gt;struct input_dev *virmouse_input_dev;&lt;br /&gt;static struct platform_device *virmouse_dev; /* Device structure */&lt;br /&gt;&lt;br /&gt;/* Sysfs method to input simulated coordinates */&lt;br /&gt;static ssize_t write_virmouse(struct device *dev,&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;struct device_attribute *attr,&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;const char *buffer, size_t count)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;int x, y, key;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/* parsing input data */&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sscanf(buffer, &quot;%d%d%d&quot;, &amp;amp;x, &amp;amp;y, &amp;amp;key);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/* Report relative coordinates */&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;input_report_rel(virmouse_input_dev, REL_X, x);&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;input_report_rel(virmouse_input_dev, REL_Y, y);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;printk (&quot;virmouse_event: X:%d Y:%d %d\n&quot;, x, y, key);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/* Report key event */&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (key&amp;gt;0) {&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (key==1)&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;input_report_key(virmouse_input_dev, BTN_LEFT, 1);&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else if (key==2)&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;input_report_key(virmouse_input_dev, BTN_MIDDLE, 1);&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;input_report_key(virmouse_input_dev, BTN_RIGHT, 1);&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;input_sync(virmouse_input_dev);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return count;&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;/* Attach the sysfs write method */&lt;br /&gt;DEVICE_ATTR(vmevent, 0644, NULL, write_virmouse);&lt;br /&gt;&lt;br /&gt;/* Attribute Descriptor */&lt;br /&gt;static struct attribute *virmouse_attrs[] = {&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;amp;dev_attr_vmevent.attr,&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;NULL&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;/* Attribute group */&lt;br /&gt;static struct attribute_group virmouse_attr_group = {&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;.attrs = virmouse_attrs,&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;/* Driver Initializing */&lt;br /&gt;int __init virmouse_init(void)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/* Register a platform device */&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;virmouse_dev = platform_device_register_simple(&quot;virmouse&quot;, -1, NULL, 0);&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (IS_ERR(virmouse_dev)){&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;printk (&quot;virmouse_init: error\n&quot;);&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return PTR_ERR(virmouse_dev);&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/* Create a sysfs node to read simulated coordinates */&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sysfs_create_group(&amp;amp;virmouse_dev-&amp;gt;dev.kobj, &amp;amp;virmouse_attr_group);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/* Allocate an input device data structure */&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;virmouse_input_dev = input_allocate_device();&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (!virmouse_input_dev) {&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;printk(&quot;Bad input_allocate_device()\n&quot;);&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return -ENOMEM;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/* Announce that the virtual mouse will generate relative coordinates */&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;set_bit(EV_REL, virmouse_input_dev-&amp;gt;evbit);&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;set_bit(REL_X, virmouse_input_dev-&amp;gt;relbit);&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;set_bit(REL_Y, virmouse_input_dev-&amp;gt;relbit);&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;set_bit(REL_WHEEL, virmouse_input_dev-&amp;gt;relbit);&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/* Announce key event */&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;set_bit(EV_KEY, virmouse_input_dev-&amp;gt;evbit);&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;set_bit(BTN_LEFT, virmouse_input_dev-&amp;gt;keybit);&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;set_bit(BTN_MIDDLE, virmouse_input_dev-&amp;gt;keybit);&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;set_bit(BTN_RIGHT, virmouse_input_dev-&amp;gt;keybit);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/* Register with the input subsystem */&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;input_register_device(virmouse_input_dev);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/* print messages in the dmesg */&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;printk(&quot;Virtual Mouse Driver Initialized.\n&quot;);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return 0;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;/* Driver Uninitializing */&lt;br /&gt;void virmouse_uninit(void)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/* Unregister from the input subsystem */&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;input_unregister_device(virmouse_input_dev);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/* Remove sysfs node */&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sysfs_remove_group(&amp;amp;virmouse_dev-&amp;gt;dev.kobj, &amp;amp;virmouse_attr_group);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/* Unregister driver */&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;platform_device_unregister(virmouse_dev);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;module_init(virmouse_init);&lt;br /&gt;module_exit(virmouse_uninit);&lt;br /&gt;&lt;br /&gt;MODULE_AUTHOR(&quot;Fred Chien &amp;lt;fred@ullab.org&amp;gt;&quot;);&lt;br /&gt;MODULE_DESCRIPTION(&quot;Virtual Mouse Driver&quot;);&lt;br /&gt;MODULE_LICENSE(&quot;GPL&quot;);&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;然後建立 Makefile：&lt;br /&gt;&lt;div&gt;&lt;pre&gt;obj-m += virmouse.o&lt;br /&gt;&lt;br /&gt;KERNELDIR ?= /lib/modules/$(shell uname -r)/build&lt;br /&gt;PWD  := $(shell pwd)&lt;br /&gt;&lt;br /&gt;default:&lt;br /&gt;        $(MAKE) -C $(KERNELDIR) M=$(PWD) modules&lt;br /&gt;clean:&lt;br /&gt;        @rm -fr *.ko *.o&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;編譯（需要安裝 Kernel header）：&lt;br /&gt;&lt;div&gt;&lt;pre&gt;$ make&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;載入：&lt;br /&gt;&lt;div&gt;&lt;pre&gt;$ sudo insmod virmouse.ko&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;測試：&lt;br /&gt;&lt;div&gt;&lt;pre&gt;# 先切換成 root&lt;br /&gt;$ sudo su -&lt;br /&gt;# 滑鼠 X軸移動&amp;nbsp;168，Y軸移動 68，0 代表純移動不點擊&lt;br /&gt;$ echo &quot;168 68 0&quot; &amp;gt;&amp;nbsp;/sys/devices/platform/virmouse/vmevent&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;此 Driver 會先註冊成 evdev input 的滑鼠裝置，然後在 sysfs 並建立 group 和 vmevent 檔，Userspace 下的應用程式可以發送命令到&amp;nbsp;vmevent&amp;nbsp;使滑鼠移動或點擊左右中鍵。&lt;br /&gt;&lt;br /&gt;&lt;b&gt;後記：&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;此程式極為簡單，因此省略程式碼的說明，讀者直接看 source code 應該就能明瞭。&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/4389461234607418203-5718326350700720233?l=fred-zone.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Fri, 15 Jan 2010 08:50:00 +0000</pubDate>
	<author>cfsghost@gmail.com (Fred Chien(錢逢祥))</author>
</item>
<item>
	<title>tsung: Firefox 服務應用 - 歷史紀錄瀏覽、RSS閱讀 外掛</title>
	<guid>http://plog.longwin.com.tw/news-application/2010/01/15/browser-app-history-rss-2010</guid>
	<link>http://feedproxy.google.com/~r/tsungblog/~3/76Pb0994gqY/browser-app-history-rss-2010</link>
	<description>&lt;p&gt;
有很多網站的服務, ex: Gmail、Google Reader .. 等, 使用者都拿 &lt;a href=&quot;https://addons.mozilla.org/zh-TW/firefox/addon/748&quot; target=&quot;_blank&quot; title=&quot;Greasemonkey :: Firefox 附加元件&quot;&gt;Greasemonkey&lt;/a&gt; 來調整這些服務, 以符合自己使用.
&lt;/p&gt;
&lt;p&gt;
最近看到幾個創新的方式, 直接做成 Firefox 外掛(附加元件、Extension、Add-on), 然後用全新的樣貌出現, 不需要登入原始網站, 但是資料一樣是與原始網站同步(sync).
&lt;/p&gt;
&lt;p&gt;
註: 將 瀏覽器、網站 原有的資料, 以不同的方式來呈現, 有全新的使用者經驗~ :)
&lt;/p&gt;

&lt;h4&gt;
Feedly - 與 Google Reader 同步
&lt;/h4&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://feedly.com/&quot; target=&quot;_blank&quot; title=&quot;feedly: a magazine-like start page&quot;&gt;Feedly&lt;/a&gt; - 與 Google Reader 同步, 瀏覽網頁時右下角會有可以分享到 Facebook / Twitter 等連結.&lt;/li&gt;
	&lt;li&gt;相關介紹: &lt;a href=&quot;http://brownywalking.blogspot.com/2009/12/rss-feedly.html&quot; target=&quot;_blank&quot; title=&quot;質感兼具效率的 RSS 閱讀 - feedly&quot;&gt;質感兼具效率的 RSS 閱讀 - feedly&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;
Voyage - 圖像化 Firefox 歷史瀏覽紀錄 
&lt;/h4&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;https://addons.mozilla.org/en-US/firefox/addon/14650&quot; target=&quot;_blank&quot; title=&quot;Voyage&quot;&gt;Voyage&lt;/a&gt; - &lt;a href=&quot;http://docs.google.com/View?id=ajh4wzf7vhph_12c6cs5cc4&quot; target=&quot;_blank&quot; title=&quot;Voyage 說明文件&quot;&gt;Voyage 說明文件&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;相關介紹: &lt;a href=&quot;http://playpcesor.blogspot.com/2009/12/voyage-firefox.html&quot; target=&quot;_blank&quot; title=&quot;Voyage 用噗浪時間軸模式圖像化查詢 Firefox 歷史瀏覽紀錄&quot;&gt;Voyage 用噗浪時間軸模式圖像化查詢 Firefox 歷史瀏覽紀錄&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/tsungblog/~4/76Pb0994gqY&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;</description>
	<pubDate>Thu, 14 Jan 2010 21:49:56 +0000</pubDate>
</item>
<item>
	<title>Cornelius: Vim - [[ and ]]</title>
	<guid>tag:blogger.com,1999:blog-3147036244016021082.post-9151588543776896975</guid>
	<link>http://c9s.blogspot.com/2010/01/vim-and.html</link>
	<description>一般來說 [[ , ]] 預設可在 c , java 裡頭跳躍函式，不過沒有 support Perl code , 所以為了方便在 Perl 裡頭的函式跳躍，我寫了這樣的 search mapping:&lt;div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;如此就可以在 sub 函式間跳躍，如果使用 Moose 的 method ，可自己將 'method' 加上。&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/3147036244016021082-9151588543776896975?l=c9s.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Thu, 14 Jan 2010 15:19:26 +0000</pubDate>
	<author>cornelius.howl@gmail.com (c9s)</author>
</item>
<item>
	<title>tsung: JavaScript 的 encodeURIComponent() 會將字串轉換成 UTF-8 編碼</title>
	<guid>http://plog.longwin.com.tw/my_note-programming/2010/01/14/javascript-encodeuri-component-utf-8-2010</guid>
	<link>http://feedproxy.google.com/~r/tsungblog/~3/4_CG5sFIzQk/javascript-encodeuri-component-utf-8-2010</link>
	<description>&lt;p&gt;
之前遇到的狀況, 頁面編碼是 Big5, 於 JavaScript 端傳送的資料, 於後端收到的居然是 UTF-8.(註: 程式沒有做任何的轉碼動作.)
&lt;/p&gt;

&lt;p&gt;
查了許久才知道是使用 JavaScript 的 encodeURIComponent() 的 Function 造成的. (註: encodeURIComponent() 就類同於 PHP 的 urlencode())
&lt;/p&gt;
&lt;p&gt;
於 呂瑞麟老師 的 這篇 &lt;q&gt;&lt;a href=&quot;http://web.nchu.edu.tw/~jlu/classes/xml/ajax/urlencoding4.shtml&quot; target=&quot;_blank&quot; title=&quot;細談 URL 編碼 (Part IV)&quot;&gt;細談 URL 編碼 (Part IV)&lt;/a&gt;&lt;/q&gt; 有寫到: &lt;strong&gt;&lt;q&gt;Javascript 的 encodeURIComponent() 方法會將傳入的字串轉換成 UTF-8 編碼的字元&lt;/q&gt;&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
原來 &lt;a href=&quot;http://www.w3schools.com/jsref/jsref_encodeURIComponent.asp&quot; target=&quot;_blank&quot; title=&quot;JavaScript encodeURIComponent() Function&quot;&gt;encodeURIComponent()&lt;/a&gt; 會自動把字串都轉成 UTF-8, 順便學習關於 encodeURIComponent() 的使用方式與差異~ :)
&lt;/p&gt;
&lt;h4&gt;
encodeURIComponent() 使用方法
&lt;/h4&gt;
&lt;blockquote&gt;
	&lt;code&gt;
	url = url + &amp;quot;?name=&amp;quot; + encodeURIComponent(&amp;quot;中文&amp;quot;);
	&lt;/code&gt;
&lt;/blockquote&gt;
&lt;h4&gt;
escape、encodeURI、encodeURIComponent 的差異 
&lt;/h4&gt;
&lt;p&gt;
同樣都是對 URL 做編碼的動作, JavaScript 有三個方法可以用(escape、encodeURI、encodeURIComponent), 差異在哪呢?
&lt;/p&gt;
&lt;p&gt;
下述摘錄自: &lt;a href=&quot;http://diary.tw/march/tag/encodeURIComponent&quot; target=&quot;_blank&quot; title=&quot;escape、encodeURI 與 encodeURIComponent 的比較&quot;&gt;escape、encodeURI 與 encodeURIComponent 的比較&lt;/a&gt;
&lt;/p&gt;
&lt;blockquote&gt;
	一般情況下, 最好選擇 encodeURIComponent()。&lt;br /&gt;
	&lt;br /&gt;
	以下就簡單說一下差異點:&lt;br /&gt;
	&lt;ol&gt;
		&lt;li&gt;escape()
		&lt;ul&gt;
			&lt;li&gt;
			不編碼的符號包括: &lt;strong&gt;@*/+&lt;/strong&gt;&lt;/li&gt;
			&lt;li&gt;
			escape 不編碼 + (加號), 將使表單欄位資料中有空白的處理(用 + 連結字串)造成問題。且 escape 在處理非 ASCII 語系的字元會有問題。所以, 除非特例, 應盡量避免使用 escape()。&lt;/li&gt;
		&lt;/ul&gt;
		&lt;/li&gt;
		&lt;li&gt;encodeURI()
		&lt;ul&gt;
			&lt;li&gt;
			不編碼符號包括: &lt;strong&gt;~!@#$&amp;amp;*()=:/,;?+'&lt;/strong&gt;&lt;/li&gt;
			&lt;li&gt;
			用 encodeURI() 會比使用 escape() 轉換 URI 正確。比較要注意的是這個方法不處理 ' (單引號)。&lt;/li&gt;
		&lt;/ul&gt;
		&lt;/li&gt;
		&lt;li&gt;encodeURIComponent()
		&lt;ul&gt;
			&lt;li&gt;
			不編碼符號包括: &lt;strong&gt;~!*()'&lt;/strong&gt;&lt;/li&gt;
			&lt;li&gt;
			encodeURIComponent() 是適合大部分單一 URI 的編碼方法。這個方法通常可以正確的編出正確的編碼, 例如要編碼一段有 flash 的 html(參數有 &amp;amp; 符號), 如果用其他的方法, 大概解碼後 flash 也不能看了。比較要注意的是這個方法也不處理 ' (單引號)。 
			&lt;/li&gt;
		&lt;/ul&gt;
		&lt;/li&gt;
	&lt;/ol&gt;
&lt;/blockquote&gt;
&lt;h4&gt;
資訊更新
&lt;/h4&gt;
&lt;p&gt;
感謝 &lt;a href=&quot;http://heaven.branda.to/~thinker/GinGin_CGI.py&quot; target=&quot;_blank&quot; title=&quot;Thinker&quot;&gt;Thinker&lt;/a&gt; 的指正: 
&lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;Javascript 本就是用 unicode 做處理，你可以試著把字串存檔試試&lt;/li&gt;
	&lt;li&gt;encodeURIComponent 在 firefox 早期的版本並不是永遠會轉成 utf8&lt;/li&gt;
&lt;/ol&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/tsungblog/~4/4_CG5sFIzQk&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;</description>
	<pubDate>Wed, 13 Jan 2010 22:00:52 +0000</pubDate>
</item>
<item>
	<title>fred: 親手打造 HD 多媒體播放器（上）</title>
	<guid>tag:blogger.com,1999:blog-4389461234607418203.post-7006823451840282206</guid>
	<link>http://fred-zone.blogspot.com/2010/01/hd.html</link>
	<description>本月 1/23（六）、1/24（日）兩天，小弟將於台中的『靜宜大學應數系』開設嵌入式系統課程。一如課程名稱『&lt;a href=&quot;http://www.excellent.pu.edu.tw/news_detail.php?sid=0&amp;amp;id=1366&quot;&gt;親手打造 HD 多媒體播放器（上）&lt;/a&gt;』，將試圖發揮 TI OMAP 353x 的威力，打造多媒體播放器。近年來『&lt;a href=&quot;http://beagleboard.org/&quot;&gt;Beagleboard&lt;/a&gt;』面世，其低廉的價格及強大的硬體效能，在嵌入式系統領域造成不小的影響，使許多人可輕易入手開發板，並在上面做各式各樣的應用。在網路社群中，beagleboard 也因此廣為受歡迎，相關文件齊全，各種技術支援都能輕易取得。&lt;br /&gt;&lt;br /&gt;我們將選用&amp;nbsp;Beagleboard 的複製品『&lt;a href=&quot;http://elinux.org/DevKit8000&quot;&gt;Devkit8000&lt;/a&gt;』做為硬體平台，硬體規格和設計幾乎完全與 Beagleboard 相同。之所以選用 Devkit8000，除了因為硬體設計和 Beagleboard 一樣之外，其各種接頭支援相當完整，不用再自行焊接，對於軟體開發人員來說，比 Beagleboard 來的方便許多。&lt;br /&gt;&lt;br /&gt;此課程總共分上、下兩部份，上半部從嵌入式系統基礎和認識講起，將談及嵌入式系統現況與未來展望、開發環境架設、嵌入式 Linux 基礎架構，適合入門者參加。由於嵌入式系統以實作經驗為重，課程將以實作為主進行，如題『親手打造』一詞，藉自己動手做以增加實務經驗。&lt;br /&gt;&lt;br /&gt;註：靜宜大學將提供學生開發板使用，只需帶著玩樂的心前來即可。&lt;br /&gt;&lt;br /&gt;&lt;b&gt;活動詳細訊息&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;活動名稱：嵌入式系統short courses&lt;br /&gt;活動網址：&lt;a href=&quot;http://www.excellent.pu.edu.tw/news_detail.php?sid=0&amp;amp;id=1366&quot;&gt;http://www.excellent.pu.edu.tw/news_detail.php?sid=0&amp;amp;id=1366&lt;/a&gt;&lt;br /&gt;活動目標：&lt;br /&gt;&lt;ol&gt;&lt;li&gt;嵌入式系統開發系統介紹，了解嵌入式系統的現況與未來展望&lt;/li&gt;&lt;li&gt;做中學--學習嵌入式系統的開發環境佈署與建置&lt;/li&gt;&lt;/ol&gt;活動日期：1/23　09:00-16:00&lt;br /&gt;演講者：于昌永老師、錢逢祥工程師&lt;br /&gt;地點：靜安425&lt;br /&gt;對象：全校師生、育成培育廠商&lt;br /&gt;人數：30人&lt;br /&gt;承辦單位：應用數學系&lt;br /&gt;參考資料：&lt;br /&gt;&lt;br /&gt;Devkit8000：&lt;br /&gt;&lt;a href=&quot;http://elinux.org/DevKit8000&quot;&gt;http://elinux.org/DevKit8000&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://fred-zone.blogspot.com/2009/12/android-eclair-porting-for-devkit8000.html&quot;&gt;http://fred-zone.blogspot.com/2009/12/android-eclair-porting-for-devkit8000.html&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://fred-zone.blogspot.com/2009/12/enable-ads7846-touchscreen-in-android.html&quot;&gt;http://fred-zone.blogspot.com/2009/12/enable-ads7846-touchscreen-in-android.html&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://fred-zone.blogspot.com/2009/12/add-gpio-keys-support-for-devkit8000.html&quot;&gt;http://fred-zone.blogspot.com/2009/12/add-gpio-keys-support-for-devkit8000.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Beagleboard:&lt;br /&gt;&lt;a href=&quot;http://beagleboard.org/&quot;&gt;http://beagleboard.org/&lt;/a&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/4389461234607418203-7006823451840282206?l=fred-zone.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Tue, 12 Jan 2010 23:35:00 +0000</pubDate>
	<author>cfsghost@gmail.com (Fred Chien(錢逢祥))</author>
</item>
<item>
	<title>tsung: Android 2.1 SDK 釋出 與 Google Nexus One 資料蒐集</title>
	<guid>http://plog.longwin.com.tw/news-google-yahoo/2010/01/13/android-sdk-release-google-nexus-2010</guid>
	<link>http://feedproxy.google.com/~r/tsungblog/~3/hPbeJIXB5jk/android-sdk-release-google-nexus-2010</link>
	<description>&lt;p&gt;
一直想要可以使用 3.5G 上網的手機, iPhone、Hero 這些都列入考量, 本來已經準備要買 Hero, 卻突然跑出 Motorola Droid, 再來又是 Google Nexus One, Nexus One 都還沒看到手機在哪, Nexus Two 的新聞已經出來了...
&lt;/p&gt;
&lt;p&gt;
..... 手機的戰爭真是超激烈~ 
&lt;/p&gt;

&lt;p&gt;
不過, 現在暫時先鎖定 Google Nexus One, 不然這輩子應該沒機會換手機了. XD
&lt;/p&gt;
&lt;h4&gt;
Google Nexus One 資料蒐集
&lt;/h4&gt;
&lt;ul&gt;
	&lt;li&gt;關於 Google Nexus One 的資料搜集: &lt;a href=&quot;http://wowtree.com/tree.php?aid=884&quot; target=&quot;_blank&quot; title=&quot;Google Nexus One資訊收集-2010 &quot;&gt;Google Nexus One資訊收集-2010&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;開發時需要的 SDK: &lt;a href=&quot;http://android-developers.blogspot.com/2010/01/android-21-sdk.html&quot; target=&quot;_blank&quot; title=&quot;Android 2.1 SDK&quot;&gt;Android 2.1 SDK&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
再來就是看看台灣進貨後的價位來決定了~&lt;br /&gt;
&lt;h4&gt;
相關網頁
&lt;/h4&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://www.ithome.com.tw/itadm/article.php?c=59060&quot; target=&quot;_blank&quot; title=&quot;Google終於釋出Android 2.1 SDK！&quot;&gt;Google終於釋出Android 2.1 SDK！&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;http://chinese.engadget.com/2010/01/12/google-nexus-two-maybe-qwerty-keyboard/&quot; target=&quot;_blank&quot; title=&quot;Google Nexus Two 有可能配備實體鍵盤&quot;&gt;Google Nexus Two 有可能配備實體鍵盤&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/tsungblog/~4/hPbeJIXB5jk&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;</description>
	<pubDate>Tue, 12 Jan 2010 21:51:33 +0000</pubDate>
</item>
<item>
	<title>tsung: rtorrent 遇到 found bad chunks, consider using &quot;safe_sync&quot; 修復</title>
	<guid>http://plog.longwin.com.tw/my_note-unix/2010/01/12/rtorrent-bad-safe-sync-fix-2010</guid>
	<link>http://feedproxy.google.com/~r/tsungblog/~3/dohoPhzWXx8/rtorrent-bad-safe-sync-fix-2010</link>
	<description>&lt;p&gt;
於 rtorrent 下載 100%, 但是一直沒有出現完成訊息, 於檔案列表出現下述錯誤:
&lt;/p&gt;
&lt;blockquote&gt;
	Hash check on download completion found bad chunks, consider using &amp;quot;safe_sync&amp;quot;
&lt;/blockquote&gt;

&lt;h4&gt;
修復方式
&lt;/h4&gt;
&lt;ol&gt;
	&lt;li&gt;vim ~/.rtorrent.rc
	&lt;blockquote&gt;
		safe_sync = yes
	&lt;/blockquote&gt;
	&lt;/li&gt;
	&lt;li&gt;離開 rtorrent (Ctrl + q)&lt;/li&gt;
	&lt;li&gt;再開啟 rtorrent 即可, 檔案將自動會修復完成.&lt;/li&gt;
&lt;/ol&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/tsungblog/~4/dohoPhzWXx8&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;</description>
	<pubDate>Mon, 11 Jan 2010 21:03:55 +0000</pubDate>
</item>
<item>
	<title>tsung: 杜拜塔 開幕煙火(2010年)</title>
	<guid>http://plog.longwin.com.tw/news-life-joke/2010/01/11/dubai-start-show-sparkler-2010</guid>
	<link>http://feedproxy.google.com/~r/tsungblog/~3/tkpmKtAmV3g/dubai-start-show-sparkler-2010</link>
	<description>&lt;p&gt;
原來 &lt;a href=&quot;http://zh.wikipedia.org/wiki/%E6%9D%9C%E6%8B%9C%E5%A1%94&quot; target=&quot;_blank&quot; title=&quot;杜拜塔&quot;&gt;杜拜塔&lt;/a&gt; 前幾天正式啟用了, 創了不少紀錄, 來做做筆記.
&lt;/p&gt;

&lt;h4&gt;
杜拜塔新聞、紀錄
&lt;/h4&gt;
&lt;p&gt;
台灣時間 2010年1月5日凌晨 杜拜塔開幕, 高度 828公尺的超級摩天樓正式啟用 (台北 101 高度 508公尺)
&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;
	註1: 杜拜塔改名為「哈利發塔」
	&lt;/li&gt;
	&lt;li&gt;
	註2: 杜拜在11月陷入財務危機, 靠阿布達比伸出援手才渡過難關, 因此杜拜親王將杜拜塔改名為「哈里發塔」, 也就是向阿拉伯聯合大公國總統 - 阿布達比邦長「哈利發」致意.
	&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;
杜拜塔創的世界紀錄 與 相關資訊
&lt;/h4&gt;
&lt;ul&gt;
	&lt;li&gt;
	2004年開始興建: 花費 6年打造&lt;/li&gt;
	&lt;li&gt;
	層數: 超過 169層&lt;/li&gt;
	&lt;li&gt;
	造價: 15億美元&lt;/li&gt;
	&lt;li&gt;
	總面積: 567萬平方英尺&lt;/li&gt;
	&lt;li&gt;
	房間: 1044間&lt;/li&gt;
	&lt;li&gt;
	商業辦公室: 有 49個樓層&lt;/li&gt;
	&lt;li&gt;
	世界最高的夜總會: 143樓&lt;/li&gt;
	&lt;li&gt;
	世界最高的清真寺: 158樓&lt;/li&gt;
	&lt;li&gt;
	全世界最高的游泳池: 76樓&lt;/li&gt;
	&lt;li&gt;
	電梯: 57部&lt;/li&gt;
	&lt;li&gt;
	觀景台: 124樓&lt;/li&gt;
	&lt;li&gt;
	最上面的樓層 跟 地面 的 溫度: 相差10度
	&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;
杜拜塔 煙火影片
&lt;/h4&gt;
&lt;p&gt;
杜拜塔的煙火, 規模和等級不是 台北101 可以比擬的, 非常壯觀~  :)
&lt;/p&gt;
&lt;h5&gt;煙火&lt;/h5&gt;
&lt;p&gt;

	
	
	
	
	
	

&lt;/p&gt;
&lt;p&gt;

	
	
	
	
	
	

&lt;/p&gt;
&lt;h5&gt;
煙火 + 新聞說明
&lt;/h5&gt;
&lt;p&gt;

	
	
	
	
	
	

&lt;/p&gt;
&lt;h4&gt;
相關網頁
&lt;/h4&gt;
&lt;ul&gt;
	&lt;li&gt;杜拜煙火照片可見: &lt;a href=&quot;http://travel20.blogspot.com/2007/10/blog-post_20.html&quot; target=&quot;_blank&quot; title=&quot;杜拜煙火-這種水準的煙火難得一見 ~~&quot;&gt;杜拜煙火-這種水準的煙火難得一見 ~~&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;http://kaiak.tw/?p=33694&quot; target=&quot;_blank&quot; title=&quot;世界最高建築-Burj Dubai&quot;&gt;世界最高建築-Burj Dubai&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/tsungblog/~4/tkpmKtAmV3g&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;</description>
	<pubDate>Sun, 10 Jan 2010 22:45:26 +0000</pubDate>
</item>
<item>
	<title>Cornelius: vimomni.vim</title>
	<guid>tag:blogger.com,1999:blog-3147036244016021082.post-1515040640212293195</guid>
	<link>http://c9s.blogspot.com/2010/01/vimomnivim.html</link>
	<description>&lt;a href=&quot;http://2.bp.blogspot.com/_i3PNCkrh-3k/S0nXox_bKfI/AAAAAAAAJKg/CqIaqQVH3l0/s1600-h/Screen+shot+2010-01-10+at+10.44.30+AM.png&quot;&gt;&lt;img src=&quot;http://2.bp.blogspot.com/_i3PNCkrh-3k/S0nXox_bKfI/AAAAAAAAJKg/CqIaqQVH3l0/s320/Screen+shot+2010-01-10+at+10.44.30+AM.png&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5425104321758570994&quot; /&gt;&lt;/a&gt;&lt;div&gt;&lt;a href=&quot;http://2.bp.blogspot.com/_i3PNCkrh-3k/S0nXox_bKfI/AAAAAAAAJKg/CqIaqQVH3l0/s1600-h/Screen+shot+2010-01-10+at+10.44.30+AM.png&quot;&gt;&lt;/a&gt;&lt;br /&gt;雖然 vim 本身有 C-x C-v 來做 command 的 completion ，不過在寫的時候還是會覺得相當不夠用。於是 &lt;a href=&quot;http://github.com/c9s/vimomni.vim&quot;&gt;vimomni.vim&lt;/a&gt; 這個 completion plugin 就是為了寫 VimL (Vim script) 而昨天在車上突然寫好的。&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;基本上 vimomni.vim 本身支援了 runtime 所有 variable name , command name , function name 的 completion，當然也會自動 parse 目前檔案所定義的 Function , Variable 以及 Command 等等，同時也針對不同的 context 來補齊。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;另外一個好用的是 option name 的 completion，輸入 &quot;set &quot; 後， C-x C-o 叫用 OmniCompletion 即可自動補齊 option 。&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;將 ftplugin/vim/omni.vim 放置到自己的 ~/.vim/ftplugin/vim/ 底下，開啟 .vim 檔時便會生效。若要手動載入，可輸入 :setf vim 。&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/3147036244016021082-1515040640212293195?l=c9s.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Sun, 10 Jan 2010 21:35:56 +0000</pubDate>
	<author>cornelius.howl@gmail.com (c9s)</author>
</item>
<item>
	<title>Cornelius: git-sync</title>
	<guid>tag:blogger.com,1999:blog-3147036244016021082.post-142620280600219453</guid>
	<link>http://c9s.blogspot.com/2010/01/git-sync.html</link>
	<description>當你的 Git Repository 越來越多的時候，git-sync 是一個幫你同步的好工具，就不需要一個一個慢慢 pull 或是自己寫 script 去 pull 了。太苦。&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;git-sync 支援三類型的 sync 機制，local , github 以及 remote ，local 是指到你指定的目錄底下幫你同步所有的 git repository ，如果是 svn clone 的 repository ，也會幫你做好 git svn fetch , git svn rebase 的動作。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;github 則可幫你同步 github 上所有的 repository , remote 則是你可指定自己的 git repository host 來做同步。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;譬如說我的 .gitconfig 這樣設定:&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;那麼只要下&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;$ git sync local &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;或&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;$ git sync github &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;其中 local 以及 github 只是 category 的名稱，可以隨意自訂。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;即可同步所有的 repository。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;或是如下設定:&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;See Also:&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;http://github.com/bestpractical/git-sync&quot;&gt;http://github.com/bestpractical/git-sync&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/3147036244016021082-142620280600219453?l=c9s.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Sun, 10 Jan 2010 17:41:37 +0000</pubDate>
	<author>cornelius.howl@gmail.com (c9s)</author>
</item>
<item>
	<title>FourDollars: 在 Ubuntu 8.04.3 可以使用 Google Chrome 瀏灠器來聽網路廣播~ ;)</title>
	<guid>tag:blogger.com,1999:blog-14489808.post-2774017823956205435</guid>
	<link>http://fourdollars.blogspot.com/2010/01/ubuntu-8043-google-chrome.html</link>
	<description>&lt;div&gt;延續上一篇文章 &lt;a href=&quot;http://fourdollars.blogspot.com/2010/01/ubuntu-8043-firefox-d.html&quot;&gt;在 Ubuntu 8.04.3 用 Firefox 瀏灠器就可以聽網路廣播了~ :D&lt;/a&gt;&lt;br /&gt;如果是想要在 Ubuntu 8.04.3 上面使用 Google Chrome 來收聽網路廣播的話&lt;br /&gt;就要另外安裝 mozilla-mplayer 這個套件才行&lt;br /&gt;然後連到 &lt;a href=&quot;http://fd.idv.tw/radio/player.html&quot;&gt;http://fd.idv.tw/radio/player.html&lt;/a&gt;&lt;br /&gt;或者是直接安裝使用 Google Chrome Extension&lt;br /&gt;&lt;a href=&quot;http://fd.idv.tw/radio/hichannel.crx&quot;&gt;http://fd.idv.tw/radio/hichannel.crx&lt;/a&gt;&lt;br /&gt;又或者是增加一個檔案 ~/.local/share/applications/hichannel.desktop&lt;br /&gt;內容填上&lt;br /&gt;&lt;blockquote&gt;[Desktop Entry]&lt;br /&gt;Name=hiChannel 網路廣播&lt;br /&gt;Exec=google-chrome --app=http://fd.idv.tw/radio/player.html&lt;br /&gt;Icon=google-chrome&lt;br /&gt;Type=Application&lt;br /&gt;Categories=GTK;Application;AudioVideo;Audio;Player;&lt;br /&gt;&lt;/blockquote&gt;這樣就是一個(偽)不用開網頁瀏灠器也可以聽網路廣播的應用程式了~ :P&lt;br /&gt;&lt;img src=&quot;http://lh4.ggpht.com/_cYaJquZOLiw/S0h2_ENX2XI/AAAAAAAAClY/PkiF_-LiH1Q/%5BUNSET%5D.png?imgmax=800&quot; /&gt;&lt;br /&gt;&lt;h3 class=&quot;post-title&quot;&gt;&lt;/h3&gt;&lt;/div&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/14489808-2774017823956205435?l=fourdollars.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Sat, 09 Jan 2010 20:33:21 +0000</pubDate>
	<author>fourdollars@gmail.com (FourDollars)</author>
</item>
<item>
	<title>kanru: Back to Debian from the Arch Linux World</title>
	<guid>http://blog.kanru.info/?p=666</guid>
	<link>http://blog.kanru.info/archives/666</link>
	<description>&lt;p&gt;在退伍後買了新電腦，裝的不是 Debian 而是 Arch Linux，主要是因為在當兵期間參與 Debian 的活動少了，並看看這個新興的 distro 有什麼有趣的地方，讓我在網路上總是遇上 Arch 的使用者。結果一用之下竟能快速上手，還加了幾個套件到 AUR 中，用著用著有些不想換了。以下寫寫我在用 Arch 時最想念 Debian 的地方，還有希望 Debian 也有的特色。&lt;/p&gt;

&lt;h4&gt;最想念 Debian 的：&lt;/h4&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;廣大的使用者與開發者社群：&lt;/p&gt;

&lt;p&gt;Arch 的使用者也許不少，但開發者就不多了。看看 devel 的 mailing list，上面活躍的只有幾位，所謂的 TU 也是不多。再加上我所知道的 hacker，或是同 project 的 developer，很多都是 Debian 的使用者或是開發者&amp;#8230;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;行之有年的社群管理制度：&lt;/p&gt;

&lt;p&gt;Arch 除了 TU 和幾位 core developer&amp;#8230; 其他都是渾沌不明的狀態&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;好用的 Bug Report 系統：&lt;/p&gt;

&lt;p&gt;debbugs 太好用了，flyspray 的介面我還是很不習慣&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;社群契約：&lt;/p&gt;

&lt;p&gt;這很重要，定出了 Debian Project 的目標，是一種信念&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;支援的 architecture 衆多：&lt;/p&gt;

&lt;p&gt;名為 Arch 的只支援 2 種 arh..&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h4&gt;希望 Debian 有的：&lt;/h4&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;快速的套件管理系統：&lt;/p&gt;

&lt;p&gt;這其實包含很多層面；Arch 只用 &lt;code&gt;pacman&lt;/code&gt; 與 &lt;code&gt;makepkg&lt;/code&gt; 就可以打理一切，反觀 Debian，套件管理分成 &lt;code&gt;dpkg-*&lt;/code&gt;, &lt;code&gt;dselect&lt;/code&gt;, &lt;code&gt;apt-*&lt;/code&gt;, &lt;code&gt;aptitude&lt;/code&gt;，建構套件又有 &lt;code&gt;dpkg-buildpackage&lt;/code&gt;, &lt;code&gt;debuild&lt;/code&gt;, &lt;code&gt;*build&lt;/code&gt;, &lt;code&gt;*-buildpackage&lt;/code&gt;。&lt;/p&gt;

&lt;p&gt;Arch 的使用者雖說 pacman 的 db 沒效率，可在我來看己是飛快了， Debian 的 dpkg, apt 在套件多起來時真是慢的可以&amp;#8230;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;極新的 userspace：&lt;/p&gt;

&lt;p&gt;Debian 的也是更新很快，但會有週期性的 slowdown，到現在 python 2.6 還在 experimental&amp;#8230;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Artworks：&lt;/p&gt;

&lt;p&gt;Arch 的使用者很會打造網站，桌面，Logo，Icon 等，非常用心，Debian 似乎就弱了點&amp;#8230;&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;在使用 Arch 的這段時間，我體驗到的 DIY 的樂趣，發現原來 Debian 的套件做了這多事。比起 Arch 要自己去 /boot, /etc, /usr/bin 下東改西改，Debian 會用各種 script 如 &lt;code&gt;update-*&lt;/code&gt; 來幫你。用久了 Debian 真的變成只會用的 script&amp;#8230; 戒之戒之。&lt;/p&gt;

&lt;p&gt;得知申請己久的 DD 資格終於有進展，我決定回到 Debian，並把在 Arch 學到的優點在 Debian 實現，打造我的 Debian &lt;img src=&quot;http://blog.kanru.info/wp-includes/images/smilies/icon_smile.gif&quot; alt=&quot;:-)&quot; class=&quot;wp-smiley&quot; /&gt; &lt;/p&gt;</description>
	<pubDate>Sat, 09 Jan 2010 13:18:37 +0000</pubDate>
</item>
<item>
	<title>fred: 長大吧！台客實驗室(ULLab)</title>
	<guid>tag:blogger.com,1999:blog-4389461234607418203.post-2494347982796212040</guid>
	<link>http://fred-zone.blogspot.com/2010/01/ullab.html</link>
	<description>回顧數個月前『&lt;a href=&quot;http://fred-zone.blogspot.com/2009/10/ullab.html&quot;&gt;專做有趣玩夜兒的台客實驗室 - ULLAB&lt;/a&gt;』，幾個朋友因臭味相投而成立了&amp;nbsp;『&lt;a href=&quot;http://ullab.org/&quot;&gt;ULLab&lt;/a&gt;』。這是個非營利性質的自發性組織，參與者都希望藉由致力於自由軟體開發，多多少少改變這世界，並以『宅宅發卡給正妹』為目標而努力前進。慶幸，經過數個月的努力，有一些小成果，陸陸續續也有愈來愈多人注意到我們的有趣玩夜兒。&lt;br /&gt;&lt;br /&gt;由於 ULLab 成員似乎人人都有著不為外人而知的經濟壓力，悲慘的背景彷彿已成為必要的履歷項目。過去這些時間，大家總是私下各自尋找賺錢活命的機會，有人接案，有人上班又兼職，更有人大學研究所念不完，欲哭無淚。絕大數時候，每個人都過著自己的忙錄人生，只在空閒時才投入自由軟體的開發。&lt;br /&gt;&lt;br /&gt;當初完全沒有料想到，在近幾個月的社群經營以及國內外活動曝光後（&lt;a href=&quot;http://coscup.org/&quot;&gt;COSCUP&lt;/a&gt;、&lt;a href=&quot;http://gnome.asia/&quot;&gt;GNOME.Asia Summit&lt;/a&gt;、&lt;a href=&quot;http://www.oss.org.tw/contest/index.html&quot;&gt;Open Source Contest 2009&lt;/a&gt;），開始有人想委託 ULLab，其中有一些零星的外包，也有進一步的合作研發，甚至是長期的顧問交流。對於我們這些負有沉重壓力的人來說，未嘗不是一件好事。許多好心的廠商藉由合作和外包，資助我們繼續走下去，替我們免去了不少負擔。也感謝一些學校單位，對我們的 Open Source Project 的贊助，無論是設備還是人力。&lt;br /&gt;&lt;br /&gt;說來慚愧，也許是因為成員們普遍缺錢，人人趕工搶糧，所以讓合作廠商都覺得效率不算差，願意給予更多機會，讓我們貢獻微薄意見，有時甚至讓我們領導其產品發展。而有些廠商常口頭上過於抬舉，其實，我們只是因為過去挫敗的比別人多，現在比其他人更注意什麼應該避免，什麼應該著重而已。&lt;br /&gt;&lt;br /&gt;不過這樣的經歷，使 ULLab 幾乎無所不碰，從 Linux Distribution、Performance Tunning、Application Design、Driver Porting、Customization、Embedded System&amp;nbsp;甚至是 Google Android，除了可以玩到很多『怪產品』之外，更吸收了不少來自世界各地的第一線資訊，大開了眼界，也對許多產品有了重新省思的眼光。真的很開心，因為能接觸到很多特別的新東西，是身為不起眼的宅宅敲鍵盤工人所夢寐以求。&lt;br /&gt;&lt;br /&gt;這兩個月，因為許多的合作計劃和關係成長，其收入已經慢慢的能支持 ULLab 成員們大部份開銷。再者，十二月份天外飛來一筆比賽獎金，促使伙伴們想進一步成為真正攜手努力的團隊，以全心投入初衷。此決定讓 ULLab 開始籌備公司成立，一方面藉由公司提供自由軟體各種服務，讓成員們養家活口，另一方面，也持續經營原先非營利的自由軟體開發，朝『改變世界』之遠大目標前進。&lt;br /&gt;&lt;br /&gt;有幸，隨著 2010 年的煙火綻放，開始了 ULLab 的創始元年，又如年份『2，010』所示，從 ULLab 最早的雙人搭擋演變到今天這番局面，相當值得紀念。&lt;br /&gt;&lt;br /&gt;&lt;b&gt;後記&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;ULLab 目前的事情相當多，大家都忙到不可開交，我們首先歡迎家境有困難和經濟壓力沉重的伙伴加入，此外，無論你是在學學生或是有志者，甚至是有心創業者亦歡迎加入創意軟體開發的行列。&lt;br /&gt;&lt;br /&gt;當然，ULLab 仍會持續開發自由軟體，歡迎各界加入一同努力。&lt;br /&gt;&lt;br /&gt;再補充一點，基於宅宅們的希望，更期待美女們的加入。:-P&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/4389461234607418203-2494347982796212040?l=fred-zone.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Fri, 08 Jan 2010 15:21:00 +0000</pubDate>
	<author>cfsghost@gmail.com (Fred Chien(錢逢祥))</author>
</item>
<item>
	<title>FourDollars: 在 Ubuntu 8.04.3 用 Firefox 瀏灠器就可以聽網路廣播了~ :D</title>
	<guid>tag:blogger.com,1999:blog-14489808.post-7542212761083870734</guid>
	<link>http://fourdollars.blogspot.com/2010/01/ubuntu-8043-firefox-d.html</link>
	<description>&lt;div&gt;要在 Ubuntu 8.04.3 底下的 Firefox 3.0.17 聽網路廣播&lt;br /&gt;只安裝好 gstreamer0.10-plugins-bad, gstreamer0.10-plugins-ugly, gstreamer0.10-ffmpeg 這幾個套件&lt;br /&gt;然後連到 &lt;a href=&quot;http://fd.idv.tw/radio/player.html&quot;&gt;http://fd.idv.tw/radio/player.html&lt;/a&gt; 就可以聽了~&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;plurk_content&quot;&gt;Mac OS X 10.4+ 上面要裝 &lt;a href=&quot;http://www.microsoft.com/windows/windowsmedia/player/wmcomponents.mspx&quot;&gt;Flip4Mac WMV Components for QuickTime&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;然後用 Safari 就可以聽了~&lt;br /&gt;&lt;br /&gt;在 Windows 上面開 IE7/IE8/Safari/Opera/Firefox/Google Chrome 都可以聽~&lt;br /&gt;&lt;br /&gt;另外寫了一個給 Google Chrome 用的 Extension&lt;br /&gt;&lt;a href=&quot;http://fd.idv.tw/radio/hichannel.crx&quot;&gt;http://fd.idv.tw/radio/hichannel.crx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Have Fun~ ^o^&lt;br /&gt;&lt;br /&gt;P.S. 誠徵 Icon 設計師幫小弟做出 Google Chrome Extension 要使用的 Icon 尺寸分別是 19x19/32x32/48x48/128x128 的 PNG&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/14489808-7542212761083870734?l=fourdollars.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Fri, 08 Jan 2010 13:04:58 +0000</pubDate>
	<author>fourdollars@gmail.com (FourDollars)</author>
</item>
<item>
	<title>tsung: Linux ssh 選端登入訊息 查看、修改</title>
	<guid>http://plog.longwin.com.tw/my_note-unix/2010/01/08/linux-ssh-login-info-motd-modify-2010</guid>
	<link>http://feedproxy.google.com/~r/tsungblog/~3/JIp-AqkBR30/linux-ssh-login-info-motd-modify-2010</link>
	<description>&lt;p&gt;
Ubuntu Linux (Server版)在 ssh 登入後, 會秀出下述訊息: (cat /etc/motd # 亦可看到)
&lt;/p&gt;
&lt;blockquote&gt;
	Linux desktop 2.6.28-14-server #47-Ubuntu SMP Sat Jul 25 02:03:55 UTC 2009 x86_64&lt;br /&gt;
	&lt;br /&gt;
	To access official Ubuntu documentation, please visit:&lt;br /&gt;
	http://help.ubuntu.com/&lt;br /&gt;
	&lt;br /&gt;
	&amp;nbsp; System information as of 二&amp;nbsp; 1月&amp;nbsp; 5 23:00:48 CST 2010&lt;br /&gt;
	&lt;br /&gt;
	&amp;nbsp; System load: 0.02&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Memory usage: 30%&amp;nbsp;&amp;nbsp; Processes:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 152&lt;br /&gt;
	&amp;nbsp; Usage of /:&amp;nbsp; 9.4% of 732.45GB&amp;nbsp;&amp;nbsp; Swap usage:&amp;nbsp;&amp;nbsp; 26%&amp;nbsp;&amp;nbsp; Users logged in: 0&lt;br /&gt;
	&lt;br /&gt;
	&amp;nbsp; =&amp;gt; There is 1 zombie process.&lt;br /&gt;
	&lt;br /&gt;
	&amp;nbsp; Graph this data and manage this system at https://landscape.canonical.com/&lt;br /&gt;
	&lt;br /&gt;
	*** System restart required ***&lt;br /&gt;
	No mail.&lt;br /&gt;
	Last login: Tue Jan&amp;nbsp; 5 11:49:45 2010 from user-desktop.local
&lt;/blockquote&gt;
&lt;p&gt;
但是在 Debian Linux 或 一般Ubuntu Desktop 都沒看到這些訊息, 於是來找找是怎麼產生的.
&lt;/p&gt;
&lt;p&gt;
註: /etc/motd 是已經產生好的文字內容, 由此看不出任何東西.
&lt;/p&gt;

&lt;h4&gt;
ssh 遠端登入訊息
&lt;/h4&gt;
&lt;ul&gt;
	&lt;li&gt;
	ssh 遠端登入的訊息內容, 是由 /etc/motd 呈現的.
	&lt;/li&gt;
	&lt;li&gt;
	於每次登入時, /etc/motd 這個檔案就會被修改一次.(由此可見不是由 crontab 修改, 而是於每次登入時, 自動修改此檔案)
	&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;
ssh 遠端登入 執行步驟
&lt;/h4&gt;
&lt;p&gt;
由於是每次登入時, 自動修改 /etc/motd, 於是找到下述:
&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;vim /etc/pam.d/sshd
	&lt;blockquote&gt;
		# Print the message of the day upon successful login.&lt;br /&gt;
		session&amp;nbsp;&amp;nbsp;&amp;nbsp; optional&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pam_motd.so # [1]
	&lt;/blockquote&gt;
	&lt;/li&gt;
	&lt;li&gt;看起來是 &lt;a href=&quot;http://www.kernel.org/pub/linux/libs/pam/Linux-PAM-html/Linux-PAM_SAG.html&quot; target=&quot;_blank&quot; title=&quot;The Linux-PAM System Administrators' Guide&quot;&gt;PAM&lt;/a&gt; 做的, 詳見: &lt;a href=&quot;http://www.kernel.org/pub/linux/libs/pam/Linux-PAM-html/sag-pam_motd.html&quot; target=&quot;_blank&quot; title=&quot;pam_motd - display the motd file&quot;&gt;pam_motd - display the motd file&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;
pam_motd.so 執行程式
&lt;/h4&gt;
&lt;p&gt;
pam_motd.so 會執行哪些程式就沒去追了, 由 motd 倒是直接找到產生 /etc/motd 的程式、執行順序.&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
於 /etc/update-motd.d/ 的目錄, 找到 00 ~ 99 開頭的檔案, 於是試著執行看看(從 00-header 執行到 99-reboot-required), 就會看到 /etc/motd 的資訊了.
&lt;/p&gt;
&lt;p&gt;
註: 從 00 執行到 99, /etc/motd 就產生出來了. :)
&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;ls /etc/update-motd.d/
	&lt;blockquote&gt;
		00-header&lt;br /&gt;
		50-landscape-sysinfo&lt;br /&gt;
		90-updates-available&lt;br /&gt;
		91-release_upgrade&lt;br /&gt;
		99-reboot-required
	&lt;/blockquote&gt;
	&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;
關於 update-motd 的筆記
&lt;/h4&gt;
&lt;ol&gt;
	&lt;li&gt;00-header - 此程式會執行 &amp;quot;uname -snrvm&amp;quot; 取得 CPU、與系統資訊 等.&lt;/li&gt;
	&lt;li&gt;/usr/share/landscape/landscape-sysinfo.wrapper # 取得系統資源狀態、zombile 等訊息.&lt;/li&gt;
	&lt;li&gt;/etc/motd.tail # 結尾補上 ubuntu 的廣告資訊. XD&lt;/li&gt;
	&lt;li&gt;註1: /usr/share/landscape/landscape-sysinfo.wrapper 的內容主要是 由此 &lt;q&gt;&lt;strong&gt;/usr/bin/landscape-sysinfo&lt;/strong&gt;&lt;/q&gt; 的 python script 產生的.&lt;/li&gt;
	&lt;li&gt;註2: /usr/bin/landscape-sysinfo 需安裝 landscape-common 的套件 (&lt;strong&gt;apt-get install landscape-common&lt;/strong&gt;) &lt;/li&gt;
&lt;/ol&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/tsungblog/~4/JIp-AqkBR30&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;</description>
	<pubDate>Thu, 07 Jan 2010 22:55:19 +0000</pubDate>
</item>
<item>
	<title>tsung: Linux 列出系統 Zombie 狀態的程式資源 與 計算 CPU 總使用量</title>
	<guid>http://plog.longwin.com.tw/my_note-unix/2010/01/07/linux-zombie-process-pid-cpu-2010</guid>
	<link>http://feedproxy.google.com/~r/tsungblog/~3/K2Jws6aAro8/linux-zombie-process-pid-cpu-2010</link>
	<description>&lt;p&gt;
Zombie 就是已經呈現 殭屍狀態(Z) 的 Process, 平常的系統裡面不應該看到這種狀態才對.
&lt;/p&gt;
&lt;p&gt;
註: 我的 Desktop 似乎蠻常看到. XD
&lt;/p&gt;

&lt;h4&gt;
使用 top 查看程式資源統計資訊
&lt;/h4&gt;
&lt;p&gt;
由 top 可以知道目前系統有多少個 zombie 程式 的 統計資訊.
&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;strong&gt;/usr/bin/top -b -i -n 1&lt;/strong&gt; # 由下述可見有 1個zombie (殭屍)
	&lt;blockquote&gt;
		top - 22:42:44 up&amp;nbsp; 1:37,&amp;nbsp; 4 users,&amp;nbsp; load average: 0.57, 0.61, 0.93&lt;br /&gt;
		Tasks: 157 total,&amp;nbsp;&amp;nbsp; 1 running, 155 sleeping,&amp;nbsp;&amp;nbsp; 0 stopped,&amp;nbsp;&amp;nbsp; 1 zombie&lt;br /&gt;
		Cpu(s): 49.5%us,&amp;nbsp; 4.3%sy,&amp;nbsp; 1.6%ni, 42.0%id,&amp;nbsp; 2.5%wa,&amp;nbsp; 0.1%hi,&amp;nbsp; 0.1%si,&amp;nbsp; 0.0%st&lt;br /&gt;
		Mem:&amp;nbsp;&amp;nbsp; 1026116k total,&amp;nbsp;&amp;nbsp; 927496k used,&amp;nbsp;&amp;nbsp;&amp;nbsp; 98620k free,&amp;nbsp;&amp;nbsp;&amp;nbsp; 81600k buffers&lt;br /&gt;
		Swap:&amp;nbsp; 1012084k total,&amp;nbsp;&amp;nbsp;&amp;nbsp; 16456k used,&amp;nbsp;&amp;nbsp; 995628k free,&amp;nbsp;&amp;nbsp; 343236k cached&lt;br /&gt;
		&lt;br /&gt;
		&amp;nbsp; PID USER&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PR&amp;nbsp; NI&amp;nbsp; VIRT&amp;nbsp; RES&amp;nbsp; SHR S %CPU %MEM&amp;nbsp;&amp;nbsp;&amp;nbsp; TIME+&amp;nbsp; COMMAND&lt;br /&gt;
		&amp;nbsp;6869 user&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 20&amp;nbsp;&amp;nbsp; 0&amp;nbsp; 2464 1060&amp;nbsp; 776 R&amp;nbsp; 0.0&amp;nbsp; 0.1&amp;nbsp;&amp;nbsp; 0:00.00 top
	&lt;/blockquote&gt;
	&lt;/li&gt;
	&lt;li&gt;TOP 參數說明
	&lt;ul&gt;
		&lt;li&gt;-b - Batch mode&lt;/li&gt;
		&lt;li&gt;-n - how many itterations (-n number)&lt;/li&gt;
		&lt;li&gt;-i : Idle Processes toggle&lt;/li&gt;
	&lt;/ul&gt;
	&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;
使用 ps 取得 程式狀態 與 PID
&lt;/h4&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;strong&gt;ps aux | grep -w Z&lt;/strong&gt; # 列出整個 pid 的 process 資訊
	&lt;blockquote&gt;
		user&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2192&amp;nbsp; 0.0&amp;nbsp; 0.0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0 ?&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Z&amp;nbsp;&amp;nbsp;&amp;nbsp; 21:05&amp;nbsp;&amp;nbsp; 0:00 [scim] &amp;lt;defunct&amp;gt;
	&lt;/blockquote&gt;
	&lt;/li&gt;
	&lt;li&gt;&lt;strong&gt;ps aux | awk '{print $8 &amp;quot; &amp;quot; $2}' | grep -w Z&lt;/strong&gt; # 列出 Z + pid
	&lt;blockquote&gt;
		Z 2192
	&lt;/blockquote&gt;
	&lt;/li&gt;
	&lt;li&gt;&lt;strong&gt;ps aux | awk '$8==&amp;quot;Z&amp;quot; {print $2}'&lt;/strong&gt; # 只抓出 pid
	&lt;blockquote&gt;
		2192
	&lt;/blockquote&gt;
	&lt;/li&gt;
	&lt;li&gt;抓到此 PID, 再看情況要不要 kill 掉囉~&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;
計算某程式吃的總 CPU 資源
&lt;/h4&gt;
&lt;p&gt;
下述為計算 Apache 全部使用掉多少 CPU 資源加總. 
&lt;/p&gt;
&lt;h5&gt;使用 TOP 計算&lt;/h5&gt;
&lt;ul&gt;
	&lt;li&gt;$ /usr/bin/top -d 2 -n 1 | awk '/apache/{count += $9;}; END&amp;nbsp; {print count};' # 可以知道 CPU 總使用量
	&lt;blockquote&gt;
		45%
	&lt;/blockquote&gt;
	&lt;/li&gt;
&lt;/ul&gt;
&lt;h5&gt;使用 ps aux 計算&lt;/h5&gt;
&lt;ul&gt;
	&lt;li&gt;$ ps aux | awk '/apache/{count += $3;}; END&amp;nbsp; {print count};'  # 這個會比較準.
	&lt;blockquote&gt;
		45.6%
	&lt;/blockquote&gt;
	&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;
相關網頁
&lt;/h4&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://www.computerhope.com/unix/top.htm&quot; target=&quot;_blank&quot; title=&quot;Linux / Unix top command&quot;&gt;Linux / Unix top command&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/tsungblog/~4/K2Jws6aAro8&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;</description>
	<pubDate>Wed, 06 Jan 2010 21:05:08 +0000</pubDate>
</item>
<item>
	<title>Cornelius: Vim - eval command.</title>
	<guid>tag:blogger.com,1999:blog-3147036244016021082.post-2976472927682300514</guid>
	<link>http://c9s.blogspot.com/2010/01/vim-eval-command.html</link>
	<description>為了快速的驗證一段 VimL 或是測試、更新 VimL 的 function , option ，我有一個 function 是這樣寫的:&lt;div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;如此當我寫了一個 VimL 的 Function define 的時候，只需要使用  visual line-wise mode 選取起來之後，利用 e vmap 來 eval 這個 region。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;就不需重新 re-source .vimrc 或是重新開啟 Vim 。&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/3147036244016021082-2976472927682300514?l=c9s.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Wed, 06 Jan 2010 18:49:13 +0000</pubDate>
	<author>cornelius.howl@gmail.com (c9s)</author>
</item>
<item>
	<title>fred: Debian Sid nfs-kernel-server 1.2.1-1 重大問題</title>
	<guid>tag:blogger.com,1999:blog-4389461234607418203.post-7092769264522559471</guid>
	<link>http://fred-zone.blogspot.com/2010/01/debian-sid-nfs-kernel-server-121-1.html</link>
	<description>對於長期開發 Embedded System 的人，Debian 真的是太方便了，可以毫不費力的開發多種平台，又可隨自己高興而輕鬆升級該平台上的各種套件，不再只能死板板停留在該平台的官方 BSP 和 Toolchian（有些 Toolchain 充滿了 Bugs，常讓人求生不得求死不能），完全跳出過去 Embedded System 軟體版本總是太老舊的框框。無論缺什麼東西，輕鬆的幾行 apt-cross 指令，就可以確保 corss-compile 的順利，甚至，新版的 GCC compiler 都任君選用。&lt;br /&gt;&lt;br /&gt;開發 Embedded System，最常用到的就是 NFS，在最近的 Debian Sid 中，套件『&amp;nbsp;nfs-kernel-server 1.2.1-1&amp;nbsp;』有重大問題（Grave Bug），會讓 NFS 無法順利啟動：&lt;br /&gt;&lt;div&gt;&lt;pre&gt;$ /etc/init.d/nfs-kernel-server start&lt;br /&gt;Exporting directories for NFS kernel daemon....&lt;br /&gt;Starting NFS kernel daemon: nfsd mountd failed!&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;目前已有人回報此 Bug 至官方（可參閱：&lt;a href=&quot;http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=562910&quot;&gt;http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=562910&lt;/a&gt;），在尚無解的情況下，可先 Downgrade 先恢復 NFS 的功能，畢竟工作可不能停：&lt;br /&gt;&lt;div&gt;&lt;pre&gt;$ wget http://ftp.tw.debian.org/debian/pool/main/n/nfs-utils/nfs-kernel-server_1.2.0-4.1_i386.deb&lt;br /&gt;$ dpkg -i&amp;nbsp;nfs-kernel-server_1.2.0-4.1_i386.deb&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;該版本是從 Debian Testing 抓回來的舊版套件，在替換後 NFS 就可恢復正常運作。&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/4389461234607418203-7092769264522559471?l=fred-zone.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Wed, 06 Jan 2010 02:33:00 +0000</pubDate>
	<author>cfsghost@gmail.com (Fred Chien(錢逢祥))</author>
</item>
<item>
	<title>tsung: NTPDATE - no server suitable for synchronization found 修復</title>
	<guid>http://plog.longwin.com.tw/my_note-unix/2010/01/06/linux-ntpdate-suitable-sync-found-fix-2010</guid>
	<link>http://feedproxy.google.com/~r/tsungblog/~3/sF_J7m24Xn0/linux-ntpdate-suitable-sync-found-fix-2010</link>
	<description>&lt;p&gt;
執行 &lt;q&gt;/usr/sbin/ntpdate time.stdtime.gov.tw&lt;/q&gt; 出現下述錯誤:
&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;28 Dec 10:44:25 ntpdate[20348]: no server suitable for synchronization found&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
註: 於 Ubuntu / Debian Linux / FreeBSD 都有看到類似狀況.
&lt;/p&gt;

&lt;h4&gt;
NTPDate Debug
&lt;/h4&gt;
&lt;ul&gt;
	&lt;li&gt;sudo /usr/sbin/ntpdate -d time.stdtime.gov.tw
	&lt;blockquote&gt;
		28 Dec 10:44:20 ntpdate[20348]: ntpdate 4.2.4p8@1.1612-o Tue Dec&amp;nbsp; 8 22:21:54 UTC 2009 (1)&lt;br /&gt;
		transmit(11.11.11.11)&lt;br /&gt;
		transmit(11.11.11.11)&lt;br /&gt;
		transmit(11.11.11.11)&lt;br /&gt;
		transmit(11.11.11.11)&lt;br /&gt;
		transmit(11.11.11.11)&lt;br /&gt;
		11.11.11.11: Server dropped: no data&lt;br /&gt;
		server 11.11.11.11, port 123&lt;br /&gt;
		stratum 0, precision 0, leap 00, trust 000&lt;br /&gt;
		refid [11.11.11.11], delay 0.00000, dispersion 64.00000&lt;br /&gt;
		transmitted 4, in filter 4&lt;br /&gt;
		reference time:&amp;nbsp;&amp;nbsp;&amp;nbsp; 00000000.00000000&amp;nbsp; Thu, Feb&amp;nbsp; 7 2036 14:28:16.000&lt;br /&gt;
		originate timestamp: 00000000.00000000&amp;nbsp; Thu, Feb&amp;nbsp; 7 2036 14:28:16.000&lt;br /&gt;
		transmit timestamp:&amp;nbsp; cee29a08.b7863bee&amp;nbsp; Mon, Dec 28 2009 10:44:24.716&lt;br /&gt;
		filter delay:&amp;nbsp; 0.00000&amp;nbsp; 0.00000&amp;nbsp; 0.00000&amp;nbsp; 0.00000&lt;br /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.00000&amp;nbsp; 0.00000&amp;nbsp; 0.00000&amp;nbsp; 0.00000&lt;br /&gt;
		filter offset: 0.000000 0.000000 0.000000 0.000000&lt;br /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.000000 0.000000 0.000000 0.000000&lt;br /&gt;
		delay 0.00000, dispersion 64.00000&lt;br /&gt;
		offset 0.000000
	&lt;/blockquote&gt;
	&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;
NTPDate 正常狀況
&lt;/h4&gt;
&lt;ul&gt;
	&lt;li&gt;
	sudo /usr/sbin/ntpdate -d time.stdtime.gov.tw
	&lt;blockquote&gt;
		28 Dec 10:44:10 ntpdate[3790]: ntpdate 4.2.4p6@1.1549-o Fri Dec&amp;nbsp; 4 19:03:30 UTC 2009 (1)&lt;br /&gt;
		transmit(11.11.11.11)&lt;br /&gt;
		receive(11.11.11.11)&lt;br /&gt;
		transmit(11.11.11.11)&lt;br /&gt;
		receive(11.11.11.11)&lt;br /&gt;
		transmit(11.11.11.11)&lt;br /&gt;
		receive(11.11.11.11)&lt;br /&gt;
		transmit(11.11.11.11)&lt;br /&gt;
		receive(11.11.11.11)&lt;br /&gt;
		transmit(11.11.11.11)&lt;br /&gt;
		server 11.11.11.11, port 123&lt;br /&gt;
		stratum 2, precision -20, leap 00, trust 000&lt;br /&gt;
		refid [11.11.11.11], delay 0.05048, dispersion 0.00038&lt;br /&gt;
		transmitted 4, in filter 4&lt;br /&gt;
		reference time:&amp;nbsp;&amp;nbsp;&amp;nbsp; cee2968e.b3b3e71f&amp;nbsp; Mon, Dec 28 2009 10:29:34.701&lt;br /&gt;
		originate timestamp: cee29a07.4a9ed10b&amp;nbsp; Mon, Dec 28 2009 10:44:23.291&lt;br /&gt;
		transmit timestamp:&amp;nbsp; cee29a07.57baecd0&amp;nbsp; Mon, Dec 28 2009 10:44:23.342&lt;br /&gt;
		filter delay:&amp;nbsp; 0.05048&amp;nbsp; 0.05132&amp;nbsp; 0.05075&amp;nbsp; 0.05052 &lt;br /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.00000&amp;nbsp; 0.00000&amp;nbsp; 0.00000&amp;nbsp; 0.00000 &lt;br /&gt;
		filter offset: -0.06352 -0.06368 -0.06410 -0.06398&lt;br /&gt;
		&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.000000 0.000000 0.000000 0.000000&lt;br /&gt;
		delay 0.05048, dispersion 0.00038&lt;br /&gt;
		offset -0.063529
	&lt;/blockquote&gt;
	&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
查到都是 &lt;strong&gt;udp 的 123 port 被 Firewall 擋掉&lt;/strong&gt;(被 iptables / ipfw 擋掉), 不過我並沒有擋這個 port, 很奇怪~
&lt;/p&gt;
&lt;h4&gt;
解法
&lt;/h4&gt;
&lt;p&gt;
上述原因不明, 不過可以用此方法解決(換個 Time Server 就解決了. XD)
&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;strong&gt;sudo /usr/sbin/ntpdate-debian&lt;/strong&gt;&lt;br /&gt;
	28 Dec 10:46:46 ntpdate[20408]: step time server 204.9.54.119 offset -2.274225 sec&lt;/li&gt;
	&lt;li&gt;上述命令為執行此語法: &lt;strong&gt;sudo /usr/sbin/ntpdate -d 0.debian.pool.ntp.org &lt;/strong&gt;&lt;/li&gt;
	&lt;li&gt;註1: 從[0-3].debian.pool.ntp.org 的 Server sync 時間.&lt;/li&gt;
	&lt;li&gt;註2: 直接執行 &lt;strong&gt;sudo /usr/sbin/ntpdate 0.debian.pool.ntp.org&lt;/strong&gt; 也是可以.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;
相關網頁
&lt;/h4&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://www.linuxsense.org/archives/188.html&quot; target=&quot;_blank&quot; title=&quot;使用 rdate 的解法&quot;&gt;使用 rdate 的解法&lt;/a&gt; - 不過這個我無法使用. &lt;/li&gt;
&lt;/ul&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/tsungblog/~4/sF_J7m24Xn0&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;</description>
	<pubDate>Tue, 05 Jan 2010 23:27:29 +0000</pubDate>
</item>
<item>
	<title>tsung: 使用 SED 移除空白行(列)</title>
	<guid>http://plog.longwin.com.tw/my_note-unix/2010/01/05/sed-remove-line-2010</guid>
	<link>http://feedproxy.google.com/~r/tsungblog/~3/RXeWdBQVI6Y/sed-remove-line-2010</link>
	<description>&lt;p&gt;
使用 sed 來移除整列都是空白(沒有資料)的行, 語法如下:
&lt;/p&gt;
&lt;blockquote&gt;
	&lt;code&gt;
	sed '/^$/d'
	&lt;/code&gt;
&lt;/blockquote&gt;
&lt;p&gt;
註: sed '/\n/d' 沒有用. XD
&lt;/p&gt;

&lt;h4&gt;
SED 移除整列 範例
&lt;/h4&gt;
&lt;p&gt;
常使用在移除註解時, ex: (移除開頭是 # 的列) 
&lt;/p&gt;
&lt;blockquote&gt;
	&lt;code&gt;
	cat xxx.conf | grep -v '^#' | sed '/^\s*$/d'
	&lt;/code&gt;
&lt;/blockquote&gt;
&lt;h4&gt;
相關網頁
&lt;/h4&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://www-h.eng.cam.ac.uk/help/tpl/unix/sed.html&quot; target=&quot;_blank&quot; title=&quot;Handy one-liners for SED&quot;&gt;Handy one-liners for SED&lt;/a&gt; - SED 常用命令, 一行語法、範例全集, 若 SED 遇到問題, 建議都可於此篇找找答案.&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;http://www.csie.nctu.edu.tw/~tsaiwn/course/introcs/history/linux/linux.tnc.edu.tw/techdoc/shell/x737.html&quot; target=&quot;_blank&quot; title=&quot;Shell 設計入門 - Sed&quot;&gt;Shell 設計入門 - Sed&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;http://www.linuxask.com/questions/remove-empty-lines-in-a-file&quot; target=&quot;_blank&quot; title=&quot;Remove empty lines in a file&quot;&gt;Remove empty lines in a file&lt;/a&gt; - 移除空白行的各種方法 (感謝        DavidSon 提供)&lt;/li&gt;
&lt;/ul&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/tsungblog/~4/RXeWdBQVI6Y&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;</description>
	<pubDate>Mon, 04 Jan 2010 21:46:03 +0000</pubDate>
</item>
<item>
	<title>jserv: 2010 年免費課程：X Window System 全面進攻</title>
	<guid>http://blog.linux.org.tw/~jserv/archives/002129.html</guid>
	<link>http://blog.linux.org.tw/~jserv/archives/002129.html</link>
	<description>X Window System 自 1984 年現身後，這 25 年的時間見證資訊科技產業的典範轉移，諸如工作站與個人電腦的消長、網路科技的通行、高品質的繪圖需求、普及運算等等，而 2004 年初，X.org/FreeDesktop 社群正式與封閉的 XFree86 core team 決裂後，一度死寂的 X Window System 有如浴火鳳凰般，獲得重生，並以開放原始碼模式，廣泛接受各方提案與匯集成果，頗振奮人心。筆者於 2005 年的演講 [綜觀 X Window System 新發展] (PDF) 中，探討若干背景概念與當時 FreeDesktop 的開發方向，而近五年後回顧，又是新氣象，是此，筆者決定在 2010 年分享名為「X Window System 全面進攻」的新課程，預期能全面性探討 X Window System (以下簡稱 &quot;X&quot;)...</description>
	<pubDate>Mon, 04 Jan 2010 15:35:01 +0000</pubDate>
</item>
<item>
	<title>Cornelius: Nara Leão</title>
	<guid>tag:blogger.com,1999:blog-3147036244016021082.post-2683806162810247117</guid>
	<link>http://c9s.blogspot.com/2010/01/nara-leao.html</link>
	<description>說到 Bossa nova ，大家大概都會想到 Lisa Ono。但其實要說 Bossa nova 的 Muse 女神，非&lt;span&gt;&lt;span&gt; Nara Leão 莫數，在 bossa nova 被錄下來之前通常都是 intimate 的。&lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span&gt;&lt;span&gt;&lt;br /&gt;Nara Leão 巴西人，她的聲線相當性感，比 Lisa Ono 更纖細敏感。也許是因為人生經驗的因素吧，Leão 的歌聲帶著 nostalgia 的味道，可惜已經在 1989 年過世，享年 47 歲，可是年少早逝的歌手。&lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;[1] Nara Leão - http://en.wikipedia.org/wiki/Nara_Leão&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/3147036244016021082-2683806162810247117?l=c9s.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Mon, 04 Jan 2010 13:24:28 +0000</pubDate>
	<author>cornelius.howl@gmail.com (c9s)</author>
</item>
<item>
	<title>Cornelius: Vim - URL Line Opener</title>
	<guid>tag:blogger.com,1999:blog-3147036244016021082.post-4341403270615439556</guid>
	<link>http://c9s.blogspot.com/2010/01/vim-url-line-opener.html</link>
	<description>為了要開啟一連串的 URL List 所以寫了這個。&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;你可以自己定義自己的 browser command 。&quot;V&quot; 選擇區塊然後輸入 :OpenURLLine ，或是直接 :OpenURLLine 。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;# 基本上這種東西只有在 Google Chrome 沒辦法用 Extension 沒辦法存 Session 只能一頁一頁把網址丟到文字檔的時候用而已。Orz&lt;/div&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/3147036244016021082-4341403270615439556?l=c9s.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Mon, 04 Jan 2010 10:29:53 +0000</pubDate>
	<author>cornelius.howl@gmail.com (c9s)</author>
</item>
<item>
	<title>tsung: 預定 2010年 到位的新成員 - 貝貝</title>
	<guid>http://plog.longwin.com.tw/my-life/2010/01/04/intro-family-baby-2010</guid>
	<link>http://feedproxy.google.com/~r/tsungblog/~3/WKsWJECCzLM/intro-family-baby-2010</link>
	<description>&lt;p&gt;
2010年的新成員(妹妹) - 貝貝(Becca).
&lt;/p&gt;
&lt;p&gt;
目前預計 2/24 到位(離目前大約 50天), 目前還在偷吃雞腿的階段. :P
&lt;/p&gt;
&lt;p&gt;
&lt;a href=&quot;http://www.flickr.com/photos/tsung/4239329517/&quot; title=&quot;Flickr 上 Tsung's Photo 的 貝貝吃雞腿&quot;&gt;&lt;img src=&quot;http://farm3.static.flickr.com/2651/4239329517_a762260612.jpg&quot; alt=&quot;貝貝吃雞腿&quot; width=&quot;500&quot; height=&quot;375&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;h4&gt;
演進歷程
&lt;/h4&gt;
&lt;p&gt;
在從去年 6月多開始, 每天都在期待著妳的到位, 雖然有些媽媽會說, 出來後, 很想把她塞回肚子去. XD
&lt;/p&gt;
&lt;p&gt;
在此將演進的重點時刻做做紀錄:
&lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;
	傳說中的第二條線 - 期待已久&lt;br /&gt;
	&lt;a href=&quot;http://www.flickr.com/photos/tsung/3709438556/&quot; title=&quot;Flickr 上 Tsung's Photo 的 傳說中的二條線&quot;&gt;&lt;img src=&quot;http://farm3.static.flickr.com/2622/3709438556_2a6b56d23e.jpg&quot; alt=&quot;傳說中的二條線&quot; width=&quot;500&quot; height=&quot;375&quot; /&gt;&lt;/a&gt;
	&lt;/li&gt;
	&lt;li&gt;
	在 汐止國泰 檢查, 已經看到心跳囉~&lt;br /&gt;
	&lt;a href=&quot;http://www.flickr.com/photos/tsung/3709438924/&quot; title=&quot;Flickr 上 Tsung's Photo 的 六週檢查~看到小寶貝的心跳囉&quot;&gt;&lt;img src=&quot;http://farm4.static.flickr.com/3462/3709438924_0427eed444.jpg&quot; alt=&quot;六週檢查~看到小寶貝的心跳囉&quot; width=&quot;500&quot; height=&quot;375&quot; /&gt;&lt;/a&gt;
	&lt;/li&gt;
	&lt;li&gt;
	這是我們最興奮的時刻, 剛好拍到她在裡面拳打腳踢, 動來動去. (醫生叫老婆 咳 一聲, 她就醒過來動來動去. :P)&lt;br /&gt;
	&lt;a href=&quot;http://www.flickr.com/photos/tsung/3769204324/&quot; title=&quot;Flickr 上 Tsung's Photo 的 9w6d~小寶貝手手腳腳會動動囉&quot;&gt;&lt;img src=&quot;http://farm4.static.flickr.com/3513/3769204324_d7818b4161.jpg&quot; alt=&quot;9w6d~小寶貝手手腳腳會動動囉&quot; width=&quot;500&quot; height=&quot;375&quot; /&gt;&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;從側面看到她的小鼻子~&lt;br /&gt;
	&lt;a href=&quot;http://www.flickr.com/photos/tsung/4060743564/&quot; title=&quot;Flickr 上 Tsung's Photo 的 貝貝的小鼻子&quot;&gt;&lt;img src=&quot;http://farm3.static.flickr.com/2762/4060743564_2ea22a6c26.jpg&quot; alt=&quot;貝貝的小鼻子&quot; width=&quot;500&quot; height=&quot;375&quot; /&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h4&gt;
為何會叫 貝貝(Becca)?&lt;/h4&gt;
&lt;ul&gt;
	&lt;li&gt;當初想乳名也想很久, 最後是看這部影集(美劇: 體操公主 - Mark it or break it)想到的, 貝卡(Becca) 這個名字好聽又好記, 也蠻喜歡此角色 與世無爭 的個性, 所以她的乳名就叫 貝貝, 乳名的正名: 貝卡、Becca.&lt;/li&gt;
	&lt;li&gt;註: 高層次、羊膜穿刺 的結果確定是 小公主、小美女, 於是開始努力想名字~&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;
為何都沒有看到 貝貝 的正面呢?
&lt;/h4&gt;
&lt;ul&gt;
	&lt;li&gt;因為她很害羞, 所以現在另外叫她 害羞貝, 每次檢查都用手把臉遮住, 不然就轉過身去不讓我們看. (連高層次檢查都有一隻手擋來擋去. XD)&lt;/li&gt;
	&lt;li&gt;註: 高層次檢查做完, 一切都很正常就好了. (高層次檢查 是醫生高層次, 不是機器高層次)&lt;/li&gt;
	&lt;li&gt;不過再害羞也沒關係, 反正再 2個月, 就不用隔著肚皮請示了~ :P&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;
貝貝的物品準備
&lt;/h4&gt;
&lt;p&gt;
媽媽因為肚子有貝貝後, 有了擋箭牌, 就跑去大肆採購, 買了不少孕婦裝. Orz.. - &lt;a href=&quot;http://www.flickr.com/photos/tsung/sets/72157622129334134/&quot; target=&quot;_blank&quot; title=&quot;2009-08-21_好孕買很大&quot;&gt;2009-08-21_好孕買很大&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
下述都是親朋好友的愛心 + 貝貝出生後用的衣物 (註: 我知道為何嬰兒用品那麼賺錢了.)
&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://www.flickr.com/photos/tsung/sets/72157622700789200/&quot; target=&quot;_blank&quot; title=&quot;寶寶用品&quot;&gt;寶寶用品&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;http://www.flickr.com/photos/tsung/sets/72157622912048653/&quot; target=&quot;_blank&quot; title=&quot;2009-12-19_sisso有機棉新生兒組&quot;&gt;2009-12-19_sisso有機棉新生兒組&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;http://www.flickr.com/photos/tsung/sets/72157623036718744/&quot; target=&quot;_blank&quot; title=&quot;2009-12-20_COTEX 環保布尿布&quot;&gt;2009-12-20_COTEX 環保布尿布&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;註: 嬰兒用品非常貴, 使用時間都很短, 能收盡量收, 不然支出很快就爆表了.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;
媽媽幫貝貝做的作品
&lt;/h4&gt;
&lt;p&gt;
另外 媽媽幫貝貝做的鞋鞋: &lt;a href=&quot;http://kiki.longwin.com.tw/?p=526&quot; target=&quot;_blank&quot; title=&quot;[手作]完成十雙手作鞋囉&quot;&gt;[手作]完成十雙手作鞋囉&lt;/a&gt; - 都做到可以接訂單了. XD
&lt;/p&gt;
&lt;p&gt;
&lt;a href=&quot;http://www.flickr.com/photos/tsung/4239793966/&quot; title=&quot;Flickr 上 Tsung's Photo 的 10雙手作鞋&quot;&gt;&lt;img src=&quot;http://farm5.static.flickr.com/4019/4239793966_51e39d18e5.jpg&quot; alt=&quot;10雙手作鞋&quot; width=&quot;500&quot; height=&quot;384&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;h5&gt;
媽媽幫貝貝做的圍兜兜
&lt;/h5&gt;
&lt;p&gt;
&lt;a href=&quot;http://www.flickr.com/photos/tsung/4086305270/&quot; title=&quot;Flickr 上 Tsung's Photo 的 貝貝的圍兜兜&quot;&gt;&lt;img src=&quot;http://farm3.static.flickr.com/2705/4086305270_9123d39166.jpg&quot; alt=&quot;貝貝的圍兜兜&quot; width=&quot;375&quot; height=&quot;500&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;h5&gt;
漁夫帽正面
&lt;/h5&gt;
&lt;p&gt;
&lt;a href=&quot;http://www.flickr.com/photos/tsung/4248280850/&quot; title=&quot;Flickr 上 Tsung's Photo 的 貝貝的第一頂漁夫帽&quot;&gt;&lt;img src=&quot;http://farm3.static.flickr.com/2700/4248280850_cb52262c79.jpg&quot; alt=&quot;貝貝的第一頂漁夫帽&quot; width=&quot;500&quot; height=&quot;375&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;h5&gt;
漁夫帽正面另一面
&lt;/h5&gt;
&lt;p&gt;
&lt;a href=&quot;http://www.flickr.com/photos/tsung/4248281836/&quot; title=&quot;Flickr 上 Tsung's Photo 的 貝貝的第一頂雙面漁夫帽 (粉紅)&quot;&gt;&lt;img src=&quot;http://farm5.static.flickr.com/4012/4248281836_16a2c88258.jpg&quot; alt=&quot;貝貝的第一頂雙面漁夫帽 (粉紅)&quot; width=&quot;500&quot; height=&quot;375&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
再來還有很多功課要做... ex: &lt;a href=&quot;http://wowtree.com/tree.php?aid=828&quot; target=&quot;_blank&quot; title=&quot;嬰兒出生臍帶要留多長?&quot;&gt;嬰兒出生臍帶要留多長?&lt;/a&gt; ... 再來慢慢整理.
&lt;/p&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/tsungblog/~4/WKsWJECCzLM&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;</description>
	<pubDate>Sun, 03 Jan 2010 22:59:51 +0000</pubDate>
</item>
<item>
	<title>Cornelius: 豚跳技巧心得</title>
	<guid>tag:blogger.com,1999:blog-3147036244016021082.post-645565619303494419</guid>
	<link>http://c9s.blogspot.com/2010/01/blog-post_02.html</link>
	<description>&lt;a href=&quot;http://3.bp.blogspot.com/_i3PNCkrh-3k/Sz9GuMxRiFI/AAAAAAAAJIw/jnBN3w3kYA4/s1600-h/HowToOllieX.jpg&quot;&gt;&lt;img src=&quot;http://3.bp.blogspot.com/_i3PNCkrh-3k/Sz9GuMxRiFI/AAAAAAAAJIw/jnBN3w3kYA4/s320/HowToOllieX.jpg&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5422130235893188690&quot; /&gt;&lt;/a&gt;雖有將近 6 年多沒再繼續玩滑板，後來一上板之後卻可以做出豚跳感覺來不賴。&lt;br /&gt;&lt;br /&gt;以前練習總是胡亂練習，不懂得思考與調整，所以現在試著對每一次的動作找出缺點以及出錯的原因。&lt;br /&gt;&lt;br /&gt;* 預備豚跳時，重心應該是平均放在兩腳，利用兩腳的力量跳躍。以前誤以為是只利用前腳的力量豚跳，後腳只負責把滑板敲起來。事實證明是利用兩腳跳躍可以跳的更高，而且可以確保力量足夠將滑板敲起來，也才有辦法在空中把滑板拉平。&lt;br /&gt;&lt;br /&gt;* 身體必須與滑板保持平行。常常會因為豚跳的時候身體會不自覺轉到正面，因此滑板在空中會因為上半身拉動，導致著地的時候和行進方向不為平行，角度太大時，容易造成跌倒。&lt;br /&gt;&lt;br /&gt;* 跳起之後的重心不該往前或往後移動。這完全是以前練 180 Backside Ollie 的時候造成的錯誤習慣。&lt;br /&gt;&lt;br /&gt;* 後腳在跳起之後必須立刻收高，如此才有辦法把板身拉平。&lt;br /&gt;&lt;br /&gt;* 在拖板時，前腳應該要讓腳背往外翻，讓摩擦面積增加。這個動作如果沒有做好或是忘記做的話，會造成板身沒辦法拉平。&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;See also: &quot;&lt;a href=&quot;http://skateboard.about.com/od/tricktips/ss/HowToOllie_3.htm&quot;&gt;How to ollie on Skateboard&lt;/a&gt;&quot;&lt;/div&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/3147036244016021082-645565619303494419?l=c9s.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Sat, 02 Jan 2010 21:15:19 +0000</pubDate>
	<author>cornelius.howl@gmail.com (c9s)</author>
</item>
<item>
	<title>Cornelius: Mac - ghc on snow leopard</title>
	<guid>tag:blogger.com,1999:blog-3147036244016021082.post-767718911613580832</guid>
	<link>http://c9s.blogspot.com/2010/01/mac-ghc-on-snow-leopard.html</link>
	<description>由於 Macport 上的 ghc 現階段完全無法在 snow leopard 上編譯安裝，這裡有一篇&lt;a href=&quot;http://obvioushints.blogspot.com/2009/09/running-haskell-ghc-on-snow-leopard.html&quot;&gt;running haskell ghc on snow leopard&lt;/a&gt; 寫了解決方案。&lt;br /&gt;&lt;br /&gt;先到 http://hackage.haskell.org/platform/ 安裝 Haskell Platform (已編譯好的 binary) &lt;br /&gt;修改 /usr/bin/ghc , /usr/bin/ghci ，加上參數 -optc-m32 -opta-m32 -optl-m32 。&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/3147036244016021082-767718911613580832?l=c9s.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Sat, 02 Jan 2010 08:56:14 +0000</pubDate>
	<author>cornelius.howl@gmail.com (c9s)</author>
</item>

</channel>
</rss>
