<?xml version="1.0" encoding="UTF-8"?><!-- generator="WordPress/2.9.1" -->
<rss version="0.92">
<channel>
	<title>Rex&#039;s blah blah blah</title>
	<link>http://people.debian.org.tw/~chihchun</link>
	<description></description>
	<lastBuildDate>Tue, 09 Feb 2010 12:00:47 +0000</lastBuildDate>
	<docs>http://backend.userland.com/rss092</docs>
	<language>en</language>
	
	<item>
		<title>現在是哪一週？</title>
		<description><![CDATA[為了某些專案的進度追蹤，改成逐周方式確認。在溝通過程中，發現週數老是對不上，原來大家的週數計算方式都不太一樣。我的紙本行事曆跟電腦行事曆也不太一樣。
原來，計算一週之始有好幾種方法，例如

1/1 日開始一定算第一周。
不管 1/1，從一年的第一個星期天開始算第一周。
不管 1/1，從一年的第一個星期一開始算第一周。

像是波斯灣阿拉伯國家是週六開始算第一周，巴基斯坦跟愛沙尼亞是把 1/7 當作一年開始來計算。即便是上述的幾種方式，在同一個國家內也有不同的偏好阿。像我的行事曆就是 1/1 開始當作第一周，而我的電腦則是把週日開始算為第一周。兩個相較起來就差了一週。
在 Linux 上，其實 en_US 跟 zh_TW 兩種不同的語系設定，開始週數是不同的。en_US 使用的是 1/1 開始那周算第一周，而 zh_TW 則是設定成第一個週一是第一周。用 ncal 看起來像是這樣
$ LC_TIME=en_US.UTF8 ncal -w  1 2009
    January 2009
Mo     5 12 19 26
Tu     6 13 20 27
We     7 14 21 [...]]]></description>
		<link>http://people.debian.org.tw/~chihchun/2010/02/09/what-week-it-is/</link>
			</item>
	<item>
		<title>在 Google Groups/GMail 找交叉引用連結</title>
		<description><![CDATA[很多時候，我們常常在 Google Groups、線上論壇或 Gmail 引用另外一封電子郵件的發言作 Cross-referencing，為了讓後來才參與討論的人快速的找到相關的背景資料。
但是很多時候，要求人家去爬文其實是很難實踐的，因為論壇流量極大，即便告知了標題、作者，很多時候可能還是要翻找很久。另外一個問題是，如果你想引用特定 E-Mail, 只能要別人回去翻閱你以前寄出的信件，這樣對方很難找到原始引據信件。即便你想讓人參閱，你也無法把特定的信變成 hyperlink，公開在網路上讓人點閱。
其實，根據 RFC2392 的定義，每一封電子郵件標頭裡，都藏有一個單一的 Message-ID。每一封信都有，而一些線上郵件軟體如 Gmail，支援搜尋 Message ID，你可以把 Message ID 輸入搜尋欄位，就可以快速找到原始的討論串。在應用上，你也可以代入搜尋網址，如 Gmail 則為
https://mail.google.com/mail/?shva=1#search/[MessageID]
只要給對方這樣的網址，他就可以找到原始的郵件。無論是藏在那一個目錄/標籤中。新式的電子郵件軟體，也可以讓你跨目錄的搜尋 Message Id，有了參照，要找到原始郵件應該比透過標題找來的快。
另外一個在網路上嘴砲溝通時常用的功能，是引用開放論壇的存檔。若你打開郵件翻閱 Header 的話，會看到一些隱藏的資訊。以 Google Groups 為例子，你會看到 X-Thread-Url, X-Message-Url 等。這兩個網址，就是線上網頁版本的存檔。你可利用這兩筆資訊提供給其他人作為引據連結。
其他的一些郵遞論壇工具，也有自己的 Archive URL，不妨開啟來翻閱。現雖有 RFC5064 之定義，但是大家似乎還是各作各的。
Happy Flame War!
這是一篇 Tips.
]]></description>
		<link>http://people.debian.org.tw/~chihchun/2010/02/07/cross-referencing-with-gmail/</link>
			</item>
	<item>
		<title>Thinkpad 小紅點設定</title>
		<description><![CDATA[Thinkpad 的小紅點在 Linux 上似乎一直沒有完善圖形化介面的設定工具。若要設定的話，常得參考一些指令設定。
驅動程式預設的速度、靈敏度都太低，推一陣子手指就累了，也無法按著中鍵移動小紅點來捲動視窗。不甚好用，稍做一些設定的筆記，作為未來參考。
在 GNU/Linux Debian/Ubuntu 上有數種機制可以更改小紅點設定，若是新手使用，大概會被 sysfs, udev, hal, DeviceKit, pm-utils, xorg.conf, xinput 等術語搞得一頭霧水。你若不想弄懂這些難解術語，也不想更改 xorg.conf，最快的作法是以 sudo 在虛擬終端機執行以下指令
#!/bin/sh
# 游標速度，可調整數值。大為快，小為幔
echo -n 120 &#62; /sys/devices/platform/i8042/serio1/speed
# 靈敏度，最高應為 255
echo -n 250 &#62; /sys/devices/platform/i8042/serio1/sensitivity
# 按小紅點為選取，1 為啟用，0 為關閉。
echo -n 0 &#62; /sys/devices/platform/i8042/serio1/press_to_select

xinput list-props '"TPPS/2 IBM TrackPoint"'
xinput set-int-prop '"TPPS/2 IBM TrackPoint"' 'Evdev Wheel Emulation' 8 1
xinput set-int-prop '"TPPS/2 IBM TrackPoint"' 'Evdev Wheel Emulation [...]]]></description>
		<link>http://people.debian.org.tw/~chihchun/2010/02/06/config-trackpoing-on-linux/</link>
			</item>
	<item>
		<title>Browser Exploitation Framework</title>
		<description><![CDATA[先前提到關於 Firefox 瀏覽器的擴展套件安全問題，你或者認為這種系統入侵方式很少見，畢竟可以被破解的瀏覽器為少數。事實上，已經有些工具可以拿來養木馬，像是 BindShell 開發的 BeEF  (Browser Exploitation Framework)。
BeEF 整合 Metasploit 等知識庫與工具來查找各種瀏覽器的漏洞，只要你將代碼塞到受害者可能讀取的網頁，就可以即時看到對方瀏覽器版本，以及可能的入侵方法，甚至可以利用 BeEF 線上即時送出一些指令，直接侵入對方主機。
]]></description>
		<link>http://people.debian.org.tw/~chihchun/2010/02/05/browser-exploitation-framework/</link>
			</item>
	<item>
		<title>Linux 上試用 TECOM WiMAX 網路卡</title>
		<description><![CDATA[上個月 (2010/01) VMAX/崴邁司 在台北開台期間，舉辦了一場體驗活動。雖然興致勃勃的去申請了，不過顯然重度使用者不在 VMAX 的規劃範圍之內，因此我並沒有被選到試用。幾位朋友倒是幸運的取得試用資格。
目前 VMAX 提供的 USB WiMAX 網路卡是 TECOM 的 WM5123M-2G5. 網頁上註明只支援 Windows 作業系統。基於好奇的心理，也跟朋友借了網路卡來玩一個禮拜，在北市的古亭、公館一帶試用，上下傳速度都還不錯。
不過自己比較感興趣的是否有 Linux 的驅動程式。稍早的測試是在 Linux 上，透過 VirtualBox 跑 Windows 來連線。實際上並未能在 Linux 上直接使用該網路卡連線。
查了一下知道這款設備使用 GCT 的解決方案，應該是 GDM7205，日本的 MODACOM 也利用此晶片開發了 UD01SS/UD03SS/MW-U2510/BDSS01 等產品。其中 UD01SS 也是日本 UQ WiMAX 搭售的產品之一，在 UQ WiMAX 的產品網頁上，其實也提供 Mac OS 的驅動程式。所以你若使用 Mac OS, 或許可以在此找到可用的驅動程式。
根據我的紀錄，UD01SS 使用的 USB 產品編碼 (vendor id, product id) 為 [...]]]></description>
		<link>http://people.debian.org.tw/~chihchun/2010/02/04/gct-tecom-violated-gpl/</link>
			</item>
	<item>
		<title>Java JVM 的 Dual Stack/IPv6 連線問題</title>
		<description><![CDATA[大約從 J2SE 1.4/1.6 開始，Sun 所釋出的 Java runtime 開始支援 IPv6 連線功能。一般的 Linux 的套件系統 也開始支援 IPv6，許多系統預設是同時開啟 IPv4/IPv6 或稱為 Dual Stack 網路功能。
基本上，鼓勵各種軟體開始移植到 IPv6 網路上是一件好事。Java runtime 若在 dual-stack 的機器上，預設走 IPv6 位址，因為 IPv6 位址可同時走 IPv4/IPv6 網路。不過問題在於，若一般的 GNU/Linux Debian, Ubuntu 系統，預設會啟動 IPv6 介面，無論你所在網路是否有 IPv6 路由。
於是，你若在 Linux 上使用一些 Java 寫成的網路軟體，如 JDownloader 等，很有可能發生軟體運作後，卻什麽地方都連不上的症狀。解決辦法一是關閉 IPv6 網路功能，一則是利用 JRE 的參數，改為預設使用 IPv4 網路。
檢查 IPv6 是否驅動
首先，你若想確認是否開啟了 IPv6 網路，可於終端機下使用此指令判斷
$ [...]]]></description>
		<link>http://people.debian.org.tw/~chihchun/2010/02/03/connectivity-issue-of-java-with-ipv6/</link>
			</item>
	<item>
		<title>在 Linux 上移除 CNNIC 憑證</title>
		<description><![CDATA[一月底開始，一些朋友開始討論 Firefox 3.6 中，將置入 CNNIC 的 CA 憑證。這件事情是去年年底，CNNIC 對 Firefox 申報納入 CNNIC 的憑證 (#476766)，目前已於 3.6 版中內建 CNNIC 憑證。
目前此事已經在 Mozilla Security Policy mailing list 公開討論，在華人網路社群也引起一陣騷動。像是 AutoProxy 等社群都提出 CNNIC CA：最最最嚴重安全警告！。在原提案 #476766 中亦有人整理了一些客觀事實。
不過根據我主觀的看法，奉勸所有人盡快移除 CNNIC 相關的 CA 憑證！CNNIC 就是中國網際網路絡信息中心，是一個中國的非營利組織，提供中國網際網路的網域名稱、網段管理。
CA 憑證對於瀏覽器使用者而言，可以用來辨識特定網域是否為合法組織，部份瀏覽器功能甚至依據有否憑證，對網頁開啟進階存取權限。前提是 CA 維持善良管理人義務，嚴格管理所核發的憑證、簽章。
CNNIC 過去最大的爭議即是曾經發布過中文上網官方版軟體，名為提供中文網址導引服務，實質則包含流氓軟體的功能，主要功能是一般輔助上網軟體，但核心卻用 rootkit 技術讓你無法刪除，與木馬/病毒程式一般。雖說這只是一項前科，但是中國政府持續拿著民族主義、國家安全為藉口，實施數種網路管制，甚至滲透國外企業、政府網路，根本是合法的網路流氓。而 CNNIC 背後支持的政府組織是中華人民共和國工業和信息化部、中國科學院、中國科學院計算機網絡信息中心 等中國政府組織。很難說，哪一天 CNNIC 不會被控制作為攻擊工具之一。
除了 CNNIC 自行發布的 CA Cert Root 外，其實 CNNIC 也已經取得 Entrust.net 所發布的次級憑證。建議所有台灣政府單位，一律移除 CNNIC [...]]]></description>
		<link>http://people.debian.org.tw/~chihchun/2010/02/02/remove-cnnic-cert-on-linux/</link>
			</item>
	<item>
		<title>git archive 與 log 小技巧</title>
		<description><![CDATA[時常，你得將手上的軟體原始碼壓起來釋出給第三方使用、測試。特別是你希望提供 daily basics/ revision basics 讓使用者取得最新版軟體的時候。
由於最近都已經只用 git，依據我自己的習慣，希望能夠在檔名中使用簡碼版次，以便未來能夠追蹤出該版次的問題。稍微問了一下友人與查了一下文件，取得 abbreviated commit hash 的作法如下
git log --pretty=format:"%h" -1
若你想將整份程式碼壓縮起來，可以使用
git archive --format zip -o filename.zip HEAD
倘若想加上日期作為檔名，請使用
git archive --format zip -o $(git log --pretty=format:"%h" -1).zip HEAD
若常常使用這個指令，有兩種作法，一是設定為 git alias. 另一則是利用 git 的 commands (verbs) 命名機制，在你的執行路徑 下，寫入一檔案名稱如 git-zip。並將上述指令加入檔案中，未來就可以使用 git zip 來產生最新版壓縮檔。
作法如
$ cat > ~/bin/git-zip
#!/bin/sh
git archive --format zip -o $(git log --pretty=format:"%h" -1).zip HEAD
$ chmod u+x [...]]]></description>
		<link>http://people.debian.org.tw/~chihchun/2010/02/01/git-archive-and-log/</link>
			</item>
	<item>
		<title>Firefox Extension 的安全問題</title>
		<description><![CDATA[若 Firefox 開發延伸套件時，應該會知道 Firefox 對於外掛並沒有安全防護機制的，只要你能裝進系統，大約就可以使用所有的元件或存取系統資源。延伸套件被視為可信賴的軟體，開發者應負起各延伸套件的安全性。
對此，Firefox 在 Java Script 開發環境的安全設計主要分為賦權與未賦權的兩種安全模式。賦權的環境中，軟體可以存取所有的 XPCOM，沒有任何限制，於是它可以讀取或修改使用者的歷史紀錄、Cookie 等，甚至存取所有系統檔案。而 non-privileged 則僅提供限制嚴格的 HTML DOM API 權限，Script 的存取也依照其網址與網域名稱給予嚴格限制，避免 XSS 或本地檔案讀取等安全問題發生。
無論是外部的網頁，或者是 XUL 軟體，都是使用 XML/HTML/Java Script/CSS 來撰寫，因此概念上都是由 Window 載入 XML 文件，並透過 Java Script 來存取 DOM API。
開發延伸套件時，凡是在 XUL Overlays 或 XPCOM Components 中的程式碼，都是給予完全的存取權限。而從外部網頁載入的內容，應該給於其未賦權的權限。這種安全模式的設計，乃是防止網頁上的程式可以任意存取系統資源，是一道安全保護牆。
由於 Mozilla 社群並未對安全模式定義名詞，這裡暫區分稱呼如下兩種安全模式

Web content document (non-privileged)


Chrome document (privileged)

各個程式的安全模式可依照該載入網址作區別，例如 chrome:// 有完全權限、http://example.com 則可存取 example.com、file:/// 則可存取本地檔案。
你也可在利用 PrivilegeManager  詢問使用者後存取 XPCOM [...]]]></description>
		<link>http://people.debian.org.tw/~chihchun/2010/01/07/security-mechanism-of-firefox-extension/</link>
			</item>
	<item>
		<title>Firefox Application Directory Lockdown</title>
		<description><![CDATA[剛讀到這篇 Component Directory Lockdown 新聞時，乍看標題誤以為 Firefox 3.6 中所有的 XPCOM components 都將被閹掉、無法使用了。認真讀了火狐人肉盾牌 (Human Shield) Johnathan Nightingale 的公告、以及 Vladimir Vukićević 的詳盡說明，知道關掉的是官方自動載入 Firefox 安裝目錄下的 components 目錄。
其實是為了一些惡搞軟體所下的限制，特別是在 Windows 平台上。許多 Windows 使用者都會安裝一些防毒軟體、輔助工具等等，許多 Windows 上的工具軟體常便宜行事，會偷偷在 Firefox/components 目錄下塞入自己的 XPCOM 元件，藉此置入功能到 Firefox 中。在 Firefox 的設計中，這些 XPCOM 元件都會依照其宣告被自動載入、執行。
問題在於不少軟體的作法都是射後不理，軟體公司常常依照特定版本的 Firefox 開發其 XPCOM 元件，安裝時強制安裝該元件檔案到 Firefox 的 components 目錄，然後就不管了。隨著時間演進，使用者可能會升級 Firefox，結果這些非官方的 XPCOM 元件未被升級，造成相容性問題而使整個瀏覽器當掉。
XPCOM 是設計來接取一些基本的系統資源、或與其他函式庫介接，若是 API 版本不合，不小心會造成當機、安全漏洞或系統損毀。特別是 XPCOM 不同於 [...]]]></description>
		<link>http://people.debian.org.tw/~chihchun/2010/01/06/firefox-application-directory-lockdown/</link>
			</item>
</channel>
</rss>
