星期二, 12月 25, 2007

建立在好意的基礎上的,難以承受的壓力

很多時候,會有人基於好意幫忙介紹很多事情,像是介紹工作和介紹對象等等。但有很多時候,這種好意對於當事人來說,卻是難以承受的壓力。

最近我就遇到這種狀況了。有某位長輩基於好意要幫我介紹對象,而這個長輩其實我不算很熟,但偏偏在當場,有位跟那位長輩很熟,跟我也蠻熟的朋友在當場起鬨,導致我本來就已經很難回絕了,現在變成更糟,已經幫我預訂好某天跟對方見面。這種狀況對我來說相當頭痛,因為對方是長輩,而且也是基於好意,本來就已經相當難處理了,偏偏又有人搧風點火,變得我在那個時間幾乎非出現不可。這跟被迫相親之類的,似乎相差不遠?

也許是個性加上環境的問題,我對於追女朋友這件事情,高中以後倒沒有很重視,總覺得到大學再說。到了大學,又覺得認真唸書比較重要,加上又是唸工學院,而且因為高中的『薰陶』,變得我在大學變成獨行俠,而且又剛好大學我系上這一屆,小團體形成得非常快,跟我比較熟的也大都是獨行俠類型的同學,所以就又錯過了。到了研究所,更是一頭鑽進去,幾乎每天整天沒課就待在研究室裏面,甚至到了連當時的指導教授都叫我沒事出去玩玩的地步。中間是有對某個學妹有點意思,不過說實在的我不太知道該怎樣跟她相處,我話不多,她也不是話很多的人,雖然那位學妹一開始好像也有意思,但後來我去當兵時有試著寫信給她,但她就完全沒有回應,所以就散了。當完兵之後,回系上當助教準備出國時,又因為很多原因,搞得那一年內忙得要死,TOEFL 和 GRE 都沒時間準備,自然也不會有時間想這些有的沒的,而且身為助教,要儘可能保持客觀公平,自然不能夠隨便有啥舉動。之後由於當助教那一年相關準備幾乎都等於沒做,又花了一年準備和申請,然後出來。到了這邊,一方面機會更少,另一方面當時也沒有覺得有看到適當的對象,且花了大錢出來不是來玩的,自然要拼了命去唸書,所以就又擱下了,一直拖到現在。

說了這麼多,基本上就是我不是很喜歡被半強迫的去認識異性,尤其是我本身話又不多,很容易冷場,要我主動去攀談,對我來說相當不容易。所以對方的這個基於好意的舉動,對我來說卻是難以承受的壓力。看來只好走一步算一步了。也許是放棄在這邊硬撐,到其他州去找工作的時候了。

繼續閱讀全文

不能說的秘密就是『完全「參考」日劇名場景』?

剛剛看到了周杰倫的『不能說的秘密』,老實說,相當令人失望。

失望的原因有很多,例如最後拆除房子的特效,由於使用了淡江中學當外景,自然不能真拆,所以有一些拆除外牆,以及最後拆除琴房等的鏡頭,一看就知道是電腦合成影像,而且合成的品質跟中間幾個也是電腦合成的部分比起來,粗糙很多等等。不過最讓我覺得失望的原因,在於在片子一開頭的不到 15 分鐘裏面,就出現了至少3個相當『用心』徹底『參考』了日劇版『世界の中心で、愛をさけぶ (在世界中心呼喊愛)』裏面,好幾個男女主角互動的名場景。參考的程度甚至到達了連道具或動作,以及相關台詞等,幾乎都與劇中完全相同的地步!

有興趣的人請看看該日劇,看看朔太郎和亞紀相處的片段裏面,亞紀的那個慣用惡作劇,以及朔太郎第一次騎腳踏車載亞紀回家的那幾個片段,然後再比對不能說的秘密開頭 15 分鐘的幾個片段,就會知道我在說什麼了。

繼續閱讀全文

星期日, 12月 16, 2007

BSD Talk #132 的 RMS 訪談聽譯

前幾天,偶然間看到有人說,在 BSD Talk #132 裡,有 Richard Stallman 的訪談錄音,問說有沒有人可以翻譯一下。剛好我有空,就花了約兩天試著翻譯了一下。

原始的 Ogg 格式錄音檔的下載連結,可以在 BSD Talk #132 的文章裡面找到。由於似乎是電話訪談,Richard Stallman (RMS) 的聲音聽起來不是那麼清楚。RMS 個性似乎蠻急的,常常會插話或者打斷主持人的發問,且有時候講得太快又不清楚,導致翻譯上的困難。我已經盡可能的將所有對話內容做翻譯了,我相信有翻譯到的內容應該至少有 95% 以上。至於翻譯的正確性,我是不敢打包票說 100% 正確,但至少大致上是正確的。至於表現方式,由於我還沒有時間修改 blogger 的樣版,所以可能有點醜。不過就先這樣吧!有機會我再改個適合的 CSS 讓排版好看些。以下是我的翻譯,其中 BSD 是 BSD Talk 的主持人,而 RMS 則是指 Richard Stallman。


BSD: 歡迎收聽 BSD Talk #132。現在是 2007 年 10 月 12 日,星期五。今天我和 Richard Stallman 進行了訪談,他要求他的訪談內容只能夠使用自由聲音壓縮格式來散佈,所以 mp3 檔案只有簡介,必須下載 ogg 檔案才能聽到完整的訪談內容。總之,接下來是訪談內容。

BSD: 今天的 BSD Talk,我們邀請到了 Richard Stallman。歡迎光臨!
RMS: 大家好。
BSD: 也許先跟我們做個簡單的自我介紹,以及說說你最近在忙些什麼。
RMS: 我在 1983 年開始了自由軟體運動,而且我決定要發展一個完全自由的作業系統叫作 GNU。今天,大多數使用 GNU 系統的人不知道它叫 GNU,因為他們以為它叫 Linux。
BSD: 能否請你說說在 80 年代的電腦使用情境,有什麼系統可用或有什麼系統...
RMS: 在那個年代,有許多不同的電腦硬體以及作業系統。微軟在當時並不重要,他們發展給『玩具』電腦用的『玩具』作業系統,因此他們和我的動機無關。不過不管是哪一種作業系統,最重要的是沒有一個系統尊重使用者的自由,使用者不可能有完全掌控自己電腦以及共享軟體的自由。這是我想要改變的。我想要活得自由,我想要能夠修改不是我自己原創的軟體,並且和其他人一起發展軟體,共享與散播這些成果。我不想接受『禁止分享』的這個現狀。然而,我要如何才能打破現狀呢?最直接的途徑是不要使用電腦,否則在 1983 年,沒有其他方法可以避免這些限制。唯一可能創造其他途徑的方法,就是建立一個自由的作業系統,而這就是我當時決定要去做的事情。
BSD: 當你決定開始設計發展你的系統時,你是否有以哪個特定的作業系統當做你的發展範本或目標呢?
RMS: 嗯...一開始,我只是想要建立一個自由的系統,因此技術上來說,這個問題純粹只是次要的技術問題。我一開始偏好我有用過的 MIT Lisp 主機系統,不過這個系統在一般硬體上並不適用。另一個我想到的可行設計方案是製作一個像 Unix 的系統,而這個也是後來的定案。我叫這個系統為 GNU 的意義是 GNU's Not Unix,GNU 不是 Unix。這是一種表明系統源自 Unix 的幽默命名方式。
BSD: 你所努力的目標除了一個可運作的系統之外,還包含了一個符合你的理念的軟體授權是嗎?
RMS: 我致力於發展自由軟體,當然有許多途徑可以達到這個目標。即使在那個時候也存在著某些自由軟體。我有看過一些軟體授權說,你可以任意處置該軟體。我也看過有些授權允許修改過的延伸版本變成非自由軟體。我覺得這樣是自欺欺人。我的目的是給使用者完全的自由,使用那樣的軟體授權,將無法避免依照該授權釋出的軟體再度被封閉起來,因為可能有人會改進該軟體後,釋出不能自由修改的版本,導致使用者取得這個改進版後,失去了自由修改的自由。又或者可能發生複製自由軟體後,宣告複製的版本不可自由使用,導致任何在自由版本做的修改,複製版本可以自由取用,讓非自由版本的開發者佔盡便宜,但反之則不然。因此我覺得使用這種樣子的授權,我將總是面臨這些問題,且自由也將受到損害。因此,我想要有個辦法來避免這種狀況,而我想到提出的辦法,就是我們稱為 Copyleft 的想法,而這個想法以 GNU General Public License, GPL 實現。Copyleft 的想法是說,這個授權本身要求,任何源自使用 GPL 授權的程式碼所發展或延伸的軟體,也都必須是使用 GPL 的自由軟體。
BSD: 我猜在那個時期,保護個人使用電腦的自由這件事並沒有造成廣泛的沖擊,因為在那個時期,並沒有多少人有機會直接使用電腦。
RMS: 是的,能直接使用到電腦的是少數人。不過因為我剛好是屬於這少數人之一,且我又想保有自由,因此自由軟體對我來說是根本的需求。我要不是發展一個自由的作業系統,不然就是停止使用電腦。一個是解放不自由的家園,另一個則是逃離家園。解放不自由的家園自然是比較好的選擇,而電腦對我來說就是我的家園。因此,即使知道不是所有人都生活在我的家園中,我仍然想要有自由。今天,幾乎所有富裕國家的人都生活在電腦的這個家園上,因此解放電腦世界的禁錮,擁有使用電腦的自由就變成了一件非常重要的事情了。
BSD: 特別就我而言,我發現身為美國公民,有越來越多公民權的行使牽涉到電腦的使用,像是投票、線上註冊車籍資料、繳稅、和市政府打交道等等,都必須使用電腦。因此我若選擇不用電腦的話,就必須在有限的辦公時間裡,直接跑去市府各相關辦事處去處理這些事情。因此即使同樣是身為公民,如果我選擇不使用電腦的話,我將面臨種種的不便。
RMS: 是的。在此同時,在世界上的許多地方,政府機關使用執行 Windows 的伺服器,而你只能用執行 Windows 的電腦連上這些伺服器。因此,這些政府機關基本上已經沉淪到強迫民眾去使用不自由也不尊重自由的作業系統的地步了。
BSD: 我猜要讓人們理解到,為何在他們日常生活中,使用自由軟體是很重要的這件事情,是相當不容易的。因為有很多人認為,他們只是想要買台可以讓他們存取 e-mail 的電腦而已...
RMS: 沒錯,很多人認為電腦只不過是一個工具而已,但他們卻不會捫心自問,是誰決定了他們用這個工具可以和不可以做哪些事情呢?他們不會捫心自問,到底是誰控制了你的電腦呢?一旦你開始省思這些問題時,你就會發現自由軟體對於自由社會來說,是最基本的要求,因為電腦被用來輔助自由社會中各種主要活動。因此若電腦不是使用自由軟體的話,那就代表你沒有主導這些活動,而是封閉軟體的發展者在主導一切。
BSD: 我想,會考慮到軟體授權方式的有兩類人 -- 一般使用者以及軟體發展人員。也許讓軟體發展人員去思考軟體授權的問題會比較容易,因為他們是授權規範的主要對象...
RMS: 是的。因為如果你知道怎樣寫程式,而且你又想要修改程式時,你立刻會發現你可能面臨沒有原始程式碼可用的問題;或者是被告知你不能修改程式;或你發現你被禁止去執行修改後的程式;又或者被告知說,你可以修改,但你不能散播修改後的成果,你只能自己私底下使用。在這些情況下,程式發展者有相當大的權力限制使用者能做些什麼。然而,若是自由軟體的話,是由使用者來決定軟體到底該怎樣運作和有怎樣的功能。就算使用者本身不寫程式,使用者仍有權力參與決定軟體未來發展方向的討論。
BSD: 基本上你花了很多時間與程式設計師會面。在你與他們會面時,你怎樣讓他們了解到,將軟體以自由軟體授權的方式釋出有好處呢?
RMS: 事實上我並不常這麼做。我不會主動提出說,當你發展軟體時,為何需要特別去尊重其他人的自由的這個觀點。重點是這是你身為現代人應有的責任,你不應該去限制其他人的自由。非自由軟體這個議題是個社會層面的問題,它的影響相當深遠。這才是我想要論述的,不論對象是程式設計師或者非程式寫作人員,這個議題都是一樣的。因此,我告訴人們的是,如果你尊重其他人的自由的話,你將會成就更多。......
BSD: 我了解了。有許多不同的軟體授權能達成你的目標,或者至少尊重其他人的自由...
RMS: 沒錯,有許多的軟體授權是尊重使用者的自由的,因此使用者能保有最基本的自由。要寫一個尊重使用者自由的軟體授權有很多途徑,因此產生了許多不同的自由軟體授權。然而,這些自由軟體授權彼此間最主要的分水嶺在於,一部分授權使用了 Copyleft 的理念,但其他則否。擁有 Copyleft 理念的軟體授權強調,任何人散佈任何版本的自由軟體時,也必須尊重他們所散佈對象的自由;而不具有 Copyleft 理念的軟體授權則不這樣要求。因此舉例來說,BSD 授權就不是一個 Copyleft 軟體授權。
BSD: 那麼,對於想要寫自由軟體的人來說,你有什麼建議呢?因為至少在美國,非程式設計師也有許多方法能夠對軟體的自由造成妨害,像是透過專利等等。
RMS: 是有許多潛在的威脅。我想我該指出,最基本的威脅,是像將某些基本的檔案格式或者通訊協定當作機密,導致程式發展人員根本無從下手寫程式。這種類型的妨害並不是透過文字的手段,而只是將必要資訊封閉起來而已,但卻極端的妨害自由軟體的發展。然而,除了這個問題之外,自由軟體的發展,還面臨了透過合法途徑達成的各種妨害手段。專利是這種手段的其中之一。美國的政策企圖讓軟體技術與軟體功能特色也能夠申請專利。當這些都能夠申請專利時,那代表任何使用這些技術或者實作這些功能特色的人,都會挨告。就技術上來說,大型的軟體往往包含了數以千計的點子,因此有可能一個軟體就同時造成了數以百計的專利限制。此外,在某些案例中,美國政府以數位千禧年著作權法案 (Digital Millennium Copyright Act, DMCA ) 為手段,協助廠商使用數位手銬來箝制其公民對數位媒體的使用自由。數位千禧年著作權法案中規定,若發布的作品使用 DRM (Digital Rights Management) 的話,那麼散佈任何可以讓使用者避開 DRM 限制的東西都是違法的。例如,散佈可以用來讀取使用保護技術加密的 DVD 的自由軟體,在美國境內是違法的。
BSD: 在美國,我們所享有的合理使用受著作權保護作品的法律權力,而這個權力會這麼輕易的就被簡單的著作權保護機制所限制而無力化,讓我覺得實在很有趣...
RMS: 合理使用這件事情是著作權法中所付與的權力,而 DMCA 則是不同的法。他們說,本質上他們並沒有剝奪合理使用的權力,合理使用是說以合法的手段存取受 DRM 保護的作品。然而,實際上,合法存取受 DRM 保護的作品似乎是不可能的,因為散佈能這麼做的軟體或硬體是不合法的。所以,除非你自己找到存取 DRM 保護作品的方法,自己寫程式或者製作硬體來實作這些方法,否則你將無法行使理論上你仍然擁有的合理使用權力。這就像是在說,開車是合法的,但賣車是違法的。
BSD: 我們討論的這兩個法都是美國的法律...
RMS: 嗯。令人難過的是,如果某些事情在美國是不對勁的,美國政府並不會試著去修正它,取而代之的是試著將這個問題擴大到全世界。美國政府往往透過強制簽訂相關條約的方式,很有效的將這個議題擴展到世界上其他國家中。這些條約通常還會要求所有條約國也同樣制定類似 DMCA 的法案。
BSD: 所以人們試圖改變現狀。我相信有許多不同的方向可以嘗試,你是選擇怎樣的方法來改變這種情況呢?
RMS: 我試著知會在其他國家的人們,關於這個他們可能將會面臨的危險,這樣他們才有反抗的機會。
BSD: 另外,有另一個我談談的主題是,現在有一大堆各式各樣的軟體授權,而有些人創作了顯然非常近似於自由軟體授權的軟體授權。我並不想說也許他們試圖用這種方式來糢糊焦點,但是我覺得是有這種可能...
RMS: 我不知道。軟體授權太多了,我搞不懂你指的是哪個。
BSD: 這些授權要求提供原始碼,但試著將『開放』的字眼以『免費』取代。
RMS: 這是兩件不同的事情。軟體授權所要求的事項是一回事,而授權書所選用的字眼與概念則是另一回事。我認為最好把這兩個問題分開來討論。有人在談論 GPL 時,將 GPL 描述為開放原始碼軟體授權。嗯,基本上 GPL 被 OSI 認定為是開放原始碼軟體授權的一種,因此雖然我當初設計時,並沒有刻意將它設計為開放原始碼軟體授權,但它確實是開放原始碼軟體授權的一種。然而,你是怎樣看待自由軟體的價值與概念,和你是怎樣看待開放原始碼軟體的價值,這是不同的問題。不論你所持的價值觀為何,GPL 就是 GPL。你可以稱它為開放原始碼授權,也可以稱它為自由軟體授權。GPL 兩者都是。不過,關於什麼是 GPL,以及 GPL 規定了些什麼,這是一個問題;而關於我們是否重視自由的這個價值,則是另一個問題。....
BSD: 假設你使用某個作業系統的發行版本 (distribution),例如像是 Ubuntu,或者是...
RMS: 那是 GNU/Linux (GNU-plus-Linux) 系統之一。
BSD: 是的。或者使用像是 FreeBSD 時,你很難看到在安裝光碟上的套件都是採用同樣的單一授權,很多時候各個套件會採用各種不同的授權...
RMS: 沒錯,因為作業系統是許多程式的集合,而這些程式不見得都會有一樣的授權方式。事實上它們『不會』有一樣的授權方式。
BSD: 有時候,要決定某個軟體套件是否該包含進系統中,是相當不容易的,因為必須考量授權的相容性...
RMS: 一般來說是的。為了讓討論有內容,我想你應該講得更明確些,你指的是什麼?
BSD: 我想我要說的是,你是否覺得,引用更寬鬆或者更嚴格授權的軟體的程式碼到軟體中,會有所風險?
RMS: 我想我搞不清楚你指的到底是哪個軟體授權?
BSD: 一個常見例子是 Sun Microsystems 的 ZFS,它是採用 CDDL
RMS: 我不記得 CDDL 是怎樣的授權。事實上我不記得它是否是自由軟體授權之一。我必須去查查看自由軟體授權列表,因為我不記得 CDDL 的內容是什麼。不過基本上,當你要混用使用不同授權方式的程式碼到單一程式中時,那你就必須處理授權相容性的問題。因為為了能夠合法的結合這些程式片段,整合後的程式碼必須滿足各片段使用的各種授權的各項要求。
BSD: 若有一個程式片段使用的授權方式並不是那麼尊重自由...
RMS: 喔,很抱歉,你是說使用非自由的軟體授權?
BSD: 是的。
RMS: 如果是非自由軟體授權的話,那你根本就不該使用那個程式碼。因為這麼做是不道德的。除此之外,這個軟體授權絕對不相容於 GNU GPL。....
BSD: 我想,有些發行版本認為,與其不使用不自由的軟體,他們寧願根據客戶需求而包含些非自由軟體到他們的發行版本中,以便讓...
RMS: 是的,有些不道德的發行版本會這麼做。有很多這麼做的發行版本。事實上,大部分的發行版本也都確實包含非自由軟體在其中。這代表,如果你安裝了任何一個發行版本提供的非自由軟體套件的話,你的系統就不是一個完全尊重自由的系統了。因此,對於這些發行版本,我們唯一能做的,就是不建議使用他們。我不能推薦人們去使用不是完全自由的軟體集,因為如果我這樣做了,那麼人們就可能會去取得這些發行版本,安裝了些他們找到覺得不錯的非自由軟體,導致他們因為我的建議而去用到了非自由軟體。我不希望這種事情發生,所以我不推薦任何包含了非自由軟體的軟體集。這是我所深信且身體力行的道德標準。基於此,根本就沒必要討論如何使用非自由軟體,因為你根本就不該去用。你不該去散播,也不該建議其他人使用這些非自由軟體。我對各種 BSD 發行版本感到不愉快,因為在他們的套件安裝系統中 -- 某些情況下,這個系統叫作 Ports,我不確定是否所有 BSD 都使用這個名詞稱呼他們的套件安裝系統 -- 全都包含了些非自由軟體,因此我無法推薦這些 BSD 發行版本。對於這個事實,我覺得很難過。我並不是因為 BSD 不是 GNU 而拒絕接受 BSD 系統,雖然 BSD 是個不同的作業系統,但本質上,BSD 也是個自由作業系統。因此基本上我應該要能夠推薦 BSD 才對。但是,沒有一個發行版本是完全自由的。我很希望有一個我能夠推薦給其他人的,完全自由的 BSD 發行套件。
BSD: 你對那些認為,要達到完全自由的目標,必須借重客戶才行的人,想要說些什麼嗎?例如...
RMS: 我想這是個錯誤。他們以捨棄長期成果為代價,以取得短期的成功。我從我開始建構 自由軟體社群開始,就身處於社群之中,我知道我們的弱點是什麼。我們最主要的弱點在於,當我們面對實用性與便利性的需求時,我們有忘卻自由的傾向,我們忘了我們想要自由的初衷。這是很可怕的,沒有什麼比忘了你的目的還來得可怕。所以,在我看來,藉由不告知使用者其最終目標是完全的自由,以取得更多使用者來用這個發行套件的這個方法,可以預見的,會導致社群變成一個成員並不知道最終目標是自由的使用者社群。然後,社群成員將不會也不想要知道這個最終的目標。因此,就我的所見所聞告訴我,這樣做是個錯誤,因為事實上這樣的事情真的在 GNU/Linux 系統上發生了。許多人試著推廣 GNU/Linux 以增加使用者數量,他們認為目標是在增加使用者的數目。在這其中,有部分人試著以這樣的論點來佐証這種做法是正確的 -- 當我們擁有更多的使用者以後,我們將更容易建立一個更好的系統,以便讓所有人都使用這個系統。確實,就某方面來說,這種做法對真正的目標是有點幫助的;但問題是,當你藉由不告訴這些使用者自由才是真正目標,以便能增加使用者數目時,這些使用者就有可能會認為,要改善系統的好方法,是增加更多的非自由軟體!而這個狀況事實上是一再的發生。因此,我所得到的結論是,藉由不教育使用者思考自由的真諦,以達到自由的最終目標的這個想法,是徹底的錯誤。教育人們堅守自由的正確方法應該是,建立典範,並且讓他們知道你到底在爭取些什麼。因此,你必須解釋自由的真諦,並且讓人們知道你真的在乎自由;而讓人們知道你真的在乎的方法,則是讓人們了解,你會略過雖然在實際上真的比較方便,但卻是捨棄自由的這些途徑。這是你表現自由真的對你非常重要的方法,即使知道這條路比較難走,但我仍然會這麼做,因為這才是邁向我爭取自由的目標的正確道路。如果你口口聲聲說想要自由,但你卻為了換取些許便利而實際上放棄了自由的話,那麼你讓人們看到的是,其實你並不是真的那麼在乎自由的。而如果你根本不談論自由的話,大部分的人可能根本就不會去思考這個問題,他們只會去考慮他們自身遇到的各種問題而已。
BSD: 我想,藉由放棄這些便利性,以 Flash 為例,這樣的不便想必激發了你去發展 Flash 的自由軟體版本吧?
RMS: 正是如此!如果你認為使用非自由軟體是個好辦法的話,你很可能會就只是接受現況;然而,若你知道使用非自由軟體是個問題,那你才會有動機去試著解決問題,而這個問題的答案則是使用相對的自由軟體來取代。
BSD: 那麼,自由軟體社群至今的努力成果如何呢?我們是否有所進展呢?
RMS: 有的。譬如和 10 年前比起來,我們現在的狀況遠比當時好多了。我們有更多的自由軟體可用;我們有更便利好用的自由作業系統,尤其是對電腦不是那麼熟悉的使用者來說。此外,社群的規模更大,且有更多人知曉了我們想爭取自由的理念。我們看到社群跟以往比起來,變得更強健了。
BSD: 感謝你今天花時間接受我的訪談。
RMS: 樂意之至 (Happy Hacking!)。
BSD: 非常感謝!
RMS: 再見!

BSD: 如果你想要在網站上回應你的意見,或者想要存取過去的內容,請至 bsdtalk.blogspot.com。若你想寫 e-mail 給我,請寫信到 bitgeist@yahoo.com。感謝收聽 BSD Talk #132。


繼續閱讀全文

星期四, 11月 29, 2007

開啟 Windows Mobile 的 "Run" 對話框

Windows Mobile 雖然在不少方面都和一般電腦用的 Windows 類似,但有一個很大的不同,在於 Windows Mobile 的 Start (開始)選單中,並沒有 Command Prompt (命令提示字元) 或 Run (執行) 等項目。這在一般情況下不是問題,但有時候希望傳遞命令列參數給某些程式時,由於缺乏命令列介面,就很難達成這項需求。解覺得辦法可以從兩方面下手,一個是使用 "DOS-like command prompt and (DOS) scripting on the Pocket PC - a roundup" 文章中提到的 cmd.exe 替代方案來開啟命令列介面;另一個則是使用 Windows Mobile 中隱藏的 Run 對話框。

開啟 Run 對話框的方法主要是參考以下兩篇文章/討論串:

文章中提到的步驟如下:

  1. Go to the home screen, press and hold the `action' key (that's the middle button of the direction keys). By default the Pocket PC 5.0 emulator uses the right Alt key for `Action'.

  2. Tap and hold the clock in the top right.

  3. Select `Run'


大致上是這樣,雖然有一點小細節被省略了,在第一篇的討論串中有提到。不過實際上我測試過,在任何應用程式裏面,只要 panel 右邊是顯示電池電量圖示或者時間的話,基本上都可以。所以例如我的 Today 會在 panel 右邊顯示電池圖示,此時要叫出 Run 對話框只要
  1. 按住 Action 鍵。

  2. 點選並按住電池圖示(或如果是顯示時鐘的話,點選並按住時鐘)。

  3. 放開 Action 鍵。此時會跳出 popup menu,裏面會有 "Run" 和 "Clock" 兩個項目。

  4. 點選 Run。

這樣就可以叫出 Run 對話框,因此就可以輸入要執行的程式以及命令列參數了。

在試驗這個技巧時,我意外的發現了 Windows Mobile 內藏的一個叫作 "Internal Use Spy" 的『小工具』。這個工具會顯示出現在視窗的一些資訊以及 Handle,並且會有選項問說要不要 dump parent。在 " Internal Use Spy: A nice hidden debugging tool for Pocket PC 2003 device and Pocket PC 5.0 device" 這篇 blog 文章中有一些說明以及圖片,我就不多說了。我有試過點選 Yes,結果什麼事情都沒發生,所以不太確定到底點 Yes 有什麼用就是了。

繼續閱讀全文

星期一, 10月 29, 2007

投稿會被接受嗎?

睡前看了一些 10 月號的 Linux Journal,然後躺在床上翻來覆去睡不著,就想說為何不試試看投稿 Linux Journal 的 Tech Tips 專欄呢?

Linux Journal 有一個 Tech Tips 專欄,是專門收集各種小技巧文章的專欄。雜誌上對於如何投稿並沒有寫得很清楚,只有給了一個 e-mail address 以及說投稿時將 tips 和連絡方式寄到該位址去。在搞不清楚到底該附怎樣的連絡方式之下,到他們網站看看,也沒有找到進一步的說明。既然如此,那就只好實際試試看啦!相信如果投稿有被接受的話,應該會用 e-mail 跟我連絡,那時候再問清楚看需要怎樣的連絡方式資料給他們。

不過該投稿什麼好呢?雖然我在某個 BBS 上有個人板,我也常在上面紀錄一些小技巧,不過想來想去,還是先拿以前寫過的一個 "voice-clock" 的 BASH script 開刀好了。voice-clock 是一個利用 Festival 的 text2wave 來達到語音報時用的小程式:

#!/bin/bash

function usage {
echo -e "Usage:\n\n\t$(basename $0) date|time\n\n";
}


[ "x$1" == "x" ] && {
usage;
exit 1;
}

TEXT2WAVE="text2wave -scale 3.5 - "
TIME="$(LC_ALL=C date '+%l:%M %p')"
DATE="$(LC_ALL=C date '+%A, %B %d, %Y')"
PLAYER="aplay"

case $1 in
[Dd][Aa][Tt][Ee])
echo ${DATE} | ${TEXT2WAVE} | ${PLAYER} 2> /dev/null;
;;
[Tt][Ii][Mm][Ee])
echo ${TIME} | ${TEXT2WAVE} | ${PLAYER} 2> /dev/null;
;;
*)
usage;
exit 1;
;;
esac

把程式貼上去,寫了些簡介,剛剛把信寄出去了,不知道會不會被採用?我是覺得被採用的機會應該不會太低,因為連用 sox 來合併聲音檔案都會被收了,這個 script 應該不會比簡單的下指令來合併檔案來得差吧?哈哈!希望是這樣啦!

祝我好運吧!

繼續閱讀全文

星期四, 10月 25, 2007

Heroes 裏面的『虛擬』網站

之前在看日劇『不能結婚的男人』時,發現了製作單位特地為在畫面中出現的一個網址建立了一個虛擬的網站,沒想到剛剛在『補看』NBC 的 Heroes 第 1 季第 12 集時,也發現了類似的東西。

本來以為 NBC 的 Heroes 第一季只有 11 集,且在去年 12 月底播完第一季。不過後來發現其實第一季變成了 23 集。雖然不清楚原因,不過我想也許是收視率不錯,所以 NBC 改變了播放的策略吧?總之,我本來只有看到第 11 集。剛剛在補看第 12 集時,發現在 Noah Bennet 侵入 Mohinder Suresh 的住所,要求 Mohinder 協助他不成,遞了一張名片,上面有一個網址和電話:



基於好奇寶寶的本性,自然要去『測試』看看啦!沒想到這個網址還真的可以連到一個網站去



網頁上有公司的照片,以及一個與節目中名片上相同的免付費電話 (1-800-PRIMA16),不過我不敢真的打打看。其實最妙的是,網頁最下方有一個連結是『Information Concerning Noah Bennet』,開啟連結指向的網頁,裏面說明了 Noah Bennet 不再是 Primatech Paper Company 的員工了,這和目前正在上演的第二季劇情符合,Noah Bennet 似乎在第一季某一集時,離開那個當作偽裝用的公司,全家搬遷逃跑到加州去了。

沒想到連美國的製作單位也開始會為劇中出現的網址建立虛擬的網站了,真是有趣!

繼續閱讀全文

星期四, 9月 27, 2007

標準的白爛老美作風

今天下午出門去買點東西,結果回來的時候,發現前幾天不知道什麼原因始終大開的社區大門,攔車子用的那個升降橫桿沒放下來,但大門關起來了,因此就乖乖的把車停在門前 RFID 感應器旁邊刷卡。依照習慣,以往大門開的速度比較慢,所以一刷完我就把車往前推到門口。可是左等右等,始終不見大門有要打開的意思。好在後面沒車,所以又倒車回感應器,又刷了兩次,大門依然一動也不動。此時後面已經有車子來了,只好門前回轉,把位置讓出來。本來以為後面那台車也應該進不去,沒想到他一刷卡,門就開了...

看到後面的可以開,我的卡不行時,覺得很奇怪,不過卡在車道上也不是辦法,大門前車子越來越多,只好開出去找地方回轉。開出去繞了一小段,找到地方回轉了,且剛好大門前又沒車,不過我後面也跟著另一個住戶要進去。再刷了兩次,還是一樣沒反應。本來想說如果沒車的話,就直接回轉走給訪客走的門。不過很不剛好的,又是一堆車尾隨我們後面來。但這次我後面那位太太的卡也刷不進去,看我停在旁邊,問我知不知道為何卡沒作用,要怎樣才能進去?其實我很想回,如果我知道的話我就進去了,不會在你面前回轉啊.....不過我是跟她說我也不知道到底是怎麼回事以及該怎麼辦。既然這個門不行,社區在高速公路旁邊還有一個側門,只好這次繞大圈一點,去側門試試看。當然結果可想而知,繞了一大圈到側門,一樣刷不進去,而且雖然側門沒車,但訪客用的電鈴竟然也故障?害我在那邊想要試試看用訪客電鈴打我自己,幫自己開門的,結果只有乾瞪眼。沒辦法了,只好還是又回到前門。

回到前門後,由於現在是下班時間,果然大門前車子變多了,也有幾個住戶跟我一樣排到訪客車道。不過很不幸的,我在訪客車道的電鈴前按我的呼叫號碼,結果也失效?用電鈴的住戶名字號碼檢索,也找不到我的號碼?搞了一陣子,受不了了,只好直接打給社區辦公室。打過去跟她說我的門禁卡沒辦法開啟大門,可否幫我開?她問說我昨天有沒有收到一封信?我說啥信?應該沒有吧?然後她又講了啥,但太小聲我聽不到,不過幫我開了門。一進去第一件事情,當然是直接殺到社區辦公室去,問問看到底怎麼回事?結果呢?真是個令人意想不到的答案:
前幾天他們的電腦系統當機,造成檔案損毀,有部分住戶的相關門禁資料完全遺失。

好樣的,這麼大條的事情竟然沒有先通知?萬一我今天晚上他們下班以後才要進來那怎麼辦?完全沒有辦法進來耶?難道要我撞門?我也懶得問到底為何沒有通知,她在我按電鈴時,用對講機問我有沒有收到信,應該就是通知了,但是為何會真的有受到影響的人反而沒收到信?可想而知,他們的信一定是根據電腦紀錄來發的,問題是資料遺失,所以呢...

果然是標準白爛老美的作風。這次算我運氣好,要是晚一個半小時回來,他們就下班了,到時候就欲哭無淚了。機車勒...

繼續閱讀全文

星期六, 9月 22, 2007

Google Maps for Mobile 真的這麼做了

今天啟動我的 PocketPC 上的 Minimo,並且偶然間開啟了一段時間沒開啟的 Google Mobile Search 網頁,看到了一個有趣的連結叫作『Download Google Maps』,本來覺得很奇怪,Google Maps 為了保護地圖資料版權,是不允許『下載並在本地端儲存』地圖資訊的,結果下載來看以後,原來是 Google Maps 的專屬 mobile 版本的 client 程式。

Google 這個 Maps client 其實可以應該可以視為簡化版的 Google Maps 專用瀏覽器。以下畫面引自 Google Mobile Maps 的網頁



不過實際在我的 PocketPC 上運作時,該 client 可能是從我的 Region Setting 中得知我設定為 Chinese (Taiwan),因此顯示的是台灣北部的中文地圖。

在 Google Maps 推出以後,相信不少人有動過拿 Google Maps 來當作 GPS 的地圖資料的腦筋。不過 Google 其實相當保護 Google Maps,因此要成功並不容易。然而,有趣的是,瀏覽 Google Mobile Maps 網頁時,可以看到一個連結叫作『GPS and Google Maps』:




沒想到 Google 自己幹了,把 GPS 和 Google Maps 結合了起來。由於我沒有 GPS 接受器,無法試驗 Google Mobile GPS and Google Maps 的效果如何,但由網頁上的圖看起來,似乎基本的定位功能算是堪用了。網頁上雖然暗示也有導行的功能,不過從圖上看不太出來。

使用 Google Maps 等等之類線上即時地圖服務來當 GPS 地圖資料的好處是地圖資料的正確性比較高,不過缺點是必須要隨時有網路連線,這主要是礙於各家地圖服務為了保護地圖資料,都不允許使用者在本地端進行地圖資料的快取和暫存,這間接限制了這類服務與 GPS 結合的可行性,同時也增加了使用這類服務來結合 GPS 時的操作成本。

繼續閱讀全文

星期五, 9月 21, 2007

用 PocketPuTTY 上 BBS

之前本來以為 PocketPuTTY 不支援中文顯示的,雖然在裝了新版的 CE-Star 之後,在字型選單中會多出一個 UniSun 字型,不過看名稱也知道這個字型是 Unicode 編碼的。然而,在看了一些網路上的文章後,似乎找到了解決辦法。

由於大部分的 BBS 都仍然使用 Big5 編碼,加上 PocketPuTTY 目前不直接支援 Big5,在終端機編碼選單中沒有 Big5 的選項,因此單獨使用 PocketPuTTY 並加上 UniSun 這個 unicode 字型,並沒有辦法顯示 Big5 環境下的中文,因為 PocketPuTTY 不會做即時 Big5 和 Unicode 轉碼。不過,在編碼選單中,有一個叫作 "Use font encoding" 的選項,可以讓 PocketPuTTY 直接略過編碼轉換,直接用字型本身的編碼來處理。所以解決方法也不難,就是找到支援 Big5 的字型就好。

因此,腦筋就動到我的機器上的細明體啦!在 Windows 的 Fonts 目錄中找到細明體的檔案 mingliu.ttc,設法傳到我的 Axim x51v 上以後,把字型檔放到 device\Windows\Fonts 裏面去,然後啟動 PocketPuTTY,就會發現字型選單中多了 MingLiU 以及 PMingLiU,這兩個分別是細明體和新細明體。因此要連上 BBS 的話,就是在 Session->Specify you connection 那邊選 Telnet 並輸入 BBS 的網址,然後在 Window->Font settings 中選擇 MingLiU,並把 Window->Character set translation 選用 Use font encoding,然後點 Open,應該就可以看到 BBS 的登入畫面了。

PocketPuTTY 目前還不是很好用,雖然基本功能有了,且在 Windows Mobile 5 上也可以運作了,但因為缺乏橫向捲軸功能,導致一般 80 行的畫面會被切成兩列,導致畫面破碎。不過至少是個合法開放的解決方案。

繼續閱讀全文

星期二, 9月 11, 2007

MSN Messenger 的傳送網址病毒蔓延到 Skpye?

今天早上,在電腦畫面上,發現了昨天半夜我在台灣的朋友的 skype 帳號,送來了一段訊息和一個網址:

網址其實本身就蠻可疑的了,"fakme.org"? 不過我還是試著用 firefox 開啟那個網頁。沒想到 firefox 的下載管理員自動開啟,問我要不要下載一個 "dsc027.scr" 的檔案。這一看就知道,和前一陣子非常盛行的 MSN Messenger 上的自動傳送病毒程式 URL 的木馬程式是同一個手法。

為了檢查是否真的是病毒,使用 wget 把檔案抓一分下來:

$ wget http://www.fakme.org/erotic-gallerys/usr5d8c/dsc027.jpg
--15:16:48-- http://www.fakme.org/erotic-gallerys/usr5d8c/dsc027.jpg
=> `dsc027.jpg'
正在查找主機 www.fakme.org... 84.32.130.83
正在連接 www.fakme.org|84.32.130.83|:80... 連上了。
已送出 HTTP 要求,正在等候回應... 302 Found
位置:http://given-up.kdcentrs.net/contribacija/dsc027.scr [跟隨連結]
--15:16:49-- http://given-up.kdcentrs.net/contribacija/dsc027.scr
=> `dsc027.scr'
正在查找主機 given-up.kdcentrs.net... 80.81.53.20
正在連接 given-up.kdcentrs.net|80.81.53.20|:80... 連上了。
已送出 HTTP 要求,正在等候回應... 200 OK
長度: 188,416 (184K) [text/plain]

100%[====================================>] 188,416 69.80K/s

15:16:52 (69.63 KB/s) -- 已儲存 ‘dsc027.scr’ [188416/188416])


然後用 Ubuntu 上的 clamscan 掃瞄:

$ clamscan dsc027.scr
dsc027.scr: OK

----------- SCAN SUMMARY -----------
Known viruses: 151997
Engine version: 0.90.2
Scanned directories: 0
Scanned files: 1
Infected files: 0
Data scanned: 0.18 MB
Time: 320.724 sec (5 m 20 s)

出乎意料的,clamav 的病毒資料庫裏面沒有包含這一個病毒的資料,所以 clamscan 顯示檔案沒問題。至於 clamscan 掃瞄一個檔案竟然花了 5 分多鐘,這是個到目前為止我都還沒找到確實原因的問題。不過那是題外話了。

然而,使用 Google 以 skype 和 dsc027.scr 當關鍵字搜尋一下,還是可以找到一些資料。其中在 skype forum 上的這篇文章,有解釋怎樣移除:



Windows 上各式各樣的病毒一大堆,這早已不是什麼新聞。不過很多時候中毒或者中木馬,往往是使用者的不小心所導致的,並不完全可以怪罪於作業系統本身。良好的使用習慣,以及隨時提高警覺,才是避免中毒和被入侵的最基本手段。

繼續閱讀全文

星期一, 9月 10, 2007

好棒的動畫

今天無意間在 youtube 上,看到了一個不錯的動畫,叫 "Animator vs. Animation - II",作者是 Alan Becker


既然是 "II" 代表有前作,因此就搜尋了一下,找到了作者在 dviantART.com 網站上的個人頁面,也看到了 "Animator vs. Animation" 系列兩部作品的原始 Flash animation:

Animator vs. Animation


Animator vs. Animation by *alanbecker on deviantART


Animator vs. Animation - II


Animator vs. Animation II by *alanbecker on deviantART


這兩個動畫似乎都是使用 Flash 製作的,製作得相當用心,配音也做得很棒。youtube 上也可以找到這兩部動畫,不過應該都是使用螢幕動態捕捉軟體等方式轉換的,畫質較差。作者真是有毅力,做畫功力也相當不錯,根據他自己的註解,第一部花了他 3 個月,而第二部甚至花了 5 個月!

其實以前也有看過類似題材但略有不同的 Flash 動畫,但這兩個算是做得相當不錯的。

繼續閱讀全文

星期六, 9月 08, 2007

iPhone 是個跛腳的 smartphone?

今天晚上跟朋友到 Lenox Square 附近的餐廳吃飯,吃完以後順便到 mall 裏面的 Sony Style 和 Apple 專賣店逛逛,在 Apple 專賣店中,看到了 Apple 當紅的 iPhone(圖片取自 wikipedia 的 iPhone 頁面)



AT&T 和 Apple 到目前為止都還是狂打 iPhone 的廣告,下面是兩個在 youtube 上可以找到的廣告,事實上 iPhone 廣告的版本不止兩個,有興趣的可以自己用 Google video 搜尋找找。




從廣告中可以看到,iPhone 的介面,以及 multi-touch 的觸控功能,還有機體橫置時畫面自動旋轉等等的功能,相當的炫。不過實際在專賣店測試時,發現其實並沒有那麼的順暢。Browser 透過 multi-touch 的任意放大功能似乎是透過即時放大圖形,然後當使用者放手,大小確定以後,Browser 才重新 render 在那個大小時的頁面。這其實沒有什麼大問題,最大的問題出在測試號稱有兩百萬畫素(2MP)的相機,以及藍芽功能時。

2MP 的相機確實效果不錯,操作上感覺也蠻直覺的,但沒有任何調整選項可選。照下來的照片本來想試著使用藍芽的檔案傳輸功能傳送到我自己的 PocketPC 中 (我絕對不會承認我要傳的是我朋友偷照金髮國中生的照片到 PocketPC,然後再傳給我朋友的 ),不過跟朋友試半天,始終找不到除了透過 e-mail 傳送,以及上傳到要跟 Apple 花錢買的 web album 服務以外的傳輸方式。本來以為單純是不會操作,不過顯然不是。

由於現場有很多展示用的 MacBook,而且又有網路,當然就『順手』用 MacBook 的 Safari 瀏覽器查詢了一下 Google,結果發現這篇 smartphone review:



在這篇文章中,也提到了相機功能無法做任何設定調整,以及照片只能透過 e-mail 傳送給其他人。最讓我震驚,覺得 iPhone 真的是個殘廢的 smartphone 的,是有關於藍芽功能的說明:

Bluetooth

Not many profiles here: handsfree and headset. No A2DP (that's not in regular Mac OS X Tiger either, *sigh*), no file transfer, no HID for Bluetooth keyboards. The iPhone doesn't beg for file transfer because it's so easy to get content onto the iPhone and camera photos off via iTunes syncing. But still, there's no way to Bluetooth a camera photo to your buddie's phone or PC or share an unprotected music or video file.

不支援 A2DP profile 已經相當令人詬病了,因為 iPhone 本身有播放影音的功能,不支援 A2DP 代表無法使用藍芽立體聲耳機來聽音樂,更糟的是,竟然不支援 OBEX 檔案傳輸!這樣比起來,微軟把非 smartphone 用的 Windows Mobile 5 的 Bluetooth stack 中的 headset profile 拿掉,導致我的 Dell Axim x51v 無法使用藍芽耳機,讓我覺得 x51v 是個跛腳的 PocketPC,已經算不上是什麼值得驚奇的事情了。雖然透過 iTune,iPhone 可以和電腦同步和交換檔案,但在沒有電腦的環境下,為了傳個照片出去的話,就非得使用網路,實在不是個好辦法。

iPhone 的許多功能都嚴重倚賴網路的存在。在美國,大部分的電話公司提供的數據交換功能 (GPRS 或所謂的 EDGE) 往往是以量計費的,當然也有所謂的吃到飽方案,但通常都不便宜。雖然 AT&T 和 Apple 已經把 iPhone 8GB 記憶體機種的售價由一開始的 $599,在 9 月5 日降價到 $399,但考慮到嚴重依賴網路的各項功能,iPhone 還是一個相當高價的 smartphone 方案。在發現這麼跛腳,接近殘廢的藍芽功能以後,對我來說,iPhone 實在不值得這樣的價錢啊!無怪乎 NBC 會拍了一個惡搞兼挖苦的廣告,說 iPhone 無所不能,但打電話的功能有點遜



......Also a hard-to-use cellphone. iPhone is everything.

繼續閱讀全文

星期日, 6月 24, 2007

日劇越來越認真了

最近在看阿部寬主演的『不能結婚的男人 (結婚できない男)』,除了可以看到又高又帥,現在演技也越來越棒的阿部寬以外,還有可愛的国仲涼子,在加上可愛的哈巴狗こつぶ,也看到了現在日劇製作的認真。

以往,日劇雖然編劇與演員各方面都有不錯的水準,但是對外語(如英語和中文),以及一些電腦相關的部分,處理得就有點粗糙。外語的部分目前看到的都還是有點糟糕,英語勉勉強強還可以接受,雖然腔調和文法有時候還是很詭異,但是勉強可以了。不過中文的部分還是讓人覺得毛骨悚然...而以往關於電腦資訊相關的部分,往往也是唬爛過去的,大部分時候都是做個樣子就算了。但這部分在不能結婚的男人中,讓我相當驚訝。

在不能結婚的男人中,阿部寬飾演一個個性有點古怪的建築設計師桑野信介。在片中,他們事務所用的電腦青一色都是蘋果的 Macintosh,本來以為單純是因為可能蘋果有贊助的關係 (不過在片中打出來的贊助商並沒有蘋果就是了),但後來覺得不是這樣。片中桑野信介使用一套叫作 VectorWorks 的設計軟體,這套軟體並不是虛構的,且這套軟體最初也確實是在 Mac 上開發的,雖然新的版本支援了 Mac 和 Win32 兩種平台,不過看起來主要還是在 Mac 上使用比較多。因此可以發現,片中事務所使用的電腦以 Mac 為主,可能是真的經過一些考據的。雖然我不是學建築設計方面的,但是根據 Wikipedia 對 VectorWorks 的介紹,看起來確實是該行業可能會用的軟體。此外,在第 11 集中,桑野信介因為他的設計圖被刊登在某個 blog 上而很生氣,在片中的瀏覽器畫面上,其實有把該 blog 的 URL 給照出來:



基於好奇心,我真的有實際試試看該網站是否存在,本來以為應該是虛構的網址,沒想到,該網站還真的存在,而且還真的有那張設計圖 (圖片連結自原始網頁):


真是令人吃驚,製作單位還真的去弄了一個網站。製作的用心程度實在有點讓我驚訝啊!日劇在這方面似乎越來越認真了。

繼續閱讀全文

星期三, 6月 20, 2007

肉粽的真相

今天把剩下的兩顆冷凍湖南粽,在經過一夜退冰之後,總算下鍋煮了。這次記得留『真相』啦!


照片中左邊的是味全的,右邊則是『金星』牌的。由於兩者可能都是用機器或者便宜的人工包的,其實包得都不是很好,煮的過程都有一角粽葉裂開,尤其是右邊的那個,右上角凸出來的部分其實是一塊肉,包在外面的糯米在煮的過程中都在鍋子裡游泳啦......

雖然賣相不是很好,吃起來到還不錯。經過整夜慢速退冰,果然吃起來感覺糯米比較像現包的粽子。兩個牌子的粽子其實吃起來感覺差不多,大約都有二到三塊的肉,糯米有稍微調味過,味全的調味比較淡,金星的稍微較鹹。不過大致上都還不錯就是了。其實從外觀、內容,以及包裝狀態上看起來,我在懷疑可能兩家公司其實都是找同一個工廠代工的,因為粽子是相當季節性的東西,比起湯圓來說應該更難賣,湯圓在韓國超市都還看得到,肉粽則不是這樣,我想即使是味全,應該都不會專門搞一條生產線來做這種東西吧?話雖如此,我個人還是對味全的比較有信心,畢竟是台灣的品牌。

繼續閱讀全文

星期二, 6月 19, 2007

買到粽子啦

今年應該是我第一次在美國過端午節,去年這時候剛好學校放暑假,所以跑回台灣去了。今年因為種種原因,待在這邊沒回去,所以就只好在這邊過節。其實這應該不是第一次沒回家過端午,當兵去東引期間,也有待在外島沒回去過節,但在美國到還是第一次。本來其實沒打算特別慶祝,或者買粽子來吃的,不過前幾天爸媽用 Skype 交代,要我想吃的話就去買。爸媽交代,只好就照辦啦 :P

亞特蘭大這邊,雖然東方人不少,但最多的是印度人,其次是韓國人。韓國人雖然把端午申請為他們的文化遺產,但是據說實際上他們申請的是『江陵端午祭』,與我們的端午節並不相同,因此似乎他們並沒有過端午節時吃粽子的習慣。因此其實這幾天在這邊,完全沒有任何端午節的氣氛,事實上我還差點忘了哪天是端午,直到昨天晚上看月曆,才發現原來 6/19 是端午節。趁著這邊還是 6/18,趕快找機會去買個幾顆粽子。

今天下午出門辦事,回家的路上,順便先跑了一趟附近的韓國超市。在冷凍食物區找半天,果然沒看到粽子。雖然印象中,在距離我家 10 英哩左右的某家台灣人開的快餐店,之前就開始賣肉粽,但是實在是有點遠,所以先把那邊當備案,先跑去我個人不是很喜歡的大華超市看看。大華超市雖然據說幕後老闆是台灣移民,但是因為通常賣場看起來比較髒,東西也比較少,櫃檯臉也比較臭,東西多半不知道放多久,而且還沒有保存期限,所以我去大華買東西的次數非常少。韓國超市雖然也不見得東西會標示保存期限,但是至少東西看起來比較新鮮,整體東西也比較多,賣場也比較乾淨。不過像粽子這種東西,果然還是要在大華超市才找得到。在大華的冰櫃區繞了好幾次,在兩個冰櫃內找到了冷凍的湖南肉粽。一開始只有看到一個疑似中國品牌的『金星』牌冷凍湖南粽,雖然標示在美國製造,但是基本上我對中國品牌的食品類非常的不信任。後來其實有找到味全的湖南粽,不過因為都沒吃過,不知道哪個比較好吃,所以就各買一包,共四顆粽子。

回到家之後,看了一下烹調指示,沒想到竟然兩個都說要在冷藏中退冰一整晚,然後用沸水煮 40 分鐘。雖然明天才是端午,但是一來嘴饞,再來覺得還是先試試味道會比較保險,所以就兩包各拿一個,在未退冰的狀態下直接丟進沸水去煮,只是煮久一點。我一共煮了約 1 小時,過程中當然有加水,讓水蓋過粽子。煮到一半,發現其中一顆也許因為煮過之後米膨脹的關係,竟然有一點漏出來,還好不嚴重。煮好起鍋,放涼幾分鐘之後,拆開來看,發現還不錯。剛好有一個學弟來找我拿東西,我就把兩顆各分一半,和學弟吃掉啦!(啥?為何沒有照片?吃掉了自然沒有照片啦 XD)

說實在的,雖然味道當然不如現包的好,但在我看來,已經相當不錯了。湖南粽因為做法的關係本來就是比較糊,所以用水煮放涼以後,吃起來口感其實沒差太多。雖然這兩個牌子的粽子其實料都不多,吃半天只有吃到一塊肉,但還可以接受。出門在外,能在地球的另一端,且是台灣人不多的地方,吃到還可以的粽子,實在是相當值得感恩了。

繼續閱讀全文

星期四, 6月 14, 2007

老美的效率:一個禮拜

大約兩年前剛來美國時,由於住的宿舍的電話費用已經包含在宿舍費用中,只要有話機就可以用,加上我平常電話本來就不多,因此一開始申請手機時,採用了我姊姊的建議,使用一家叫 TracFone 的預付卡手機公司。不過這間公司實在是很差勁,他們的系統不見得都是 GSM 的系統,但是在網站上卻不會註明到底某個手機是否是 GSM 的系統的,還是已經被他們改過的專有系統。很不幸的,我拿到的 Nokia 1220 就是屬於後者,本來應該是 GSM 手機的,被該公司修改了以後,不但不是 GSM 系統(沒有 SIM 卡),更把一些功能去掉了。我本來預期是 GSM 手機,還特別跟朋友買了一支二手的 Nokia 6230 來,沒想到收到手機以後卻發現根本不是 GSM 系統。針對這件事情,跟 TracFone 的客服來回通信了好幾次,詢問是否可以更換成 GSM 的系統,對方一再用制式的回應轉移話題。在來回數次之後,我確認對方根本沒有理會消費者的權益,因此就要求至少在網站上標示哪些手機不是 GSM 系統的,對方說謝謝我的建議,會通知相關部門處理。不過當然事實證明又是制式回應而已。在這件事之後,我就一直想要換手機公司,只是很不巧的是我用手機的頻率實在太低了,加上 TracFone 的系統在每次加值之後,有效期限只會延長 60 - 90 天,導致每次期限要到了的時候,還有一堆分鐘數沒用完,所以就只好繼續加值下去。

好在大約四個月前,終於有一次在期限內用完分鐘數了,因此剛好可以準備換手機。經過一些打聽,當時決定了換到 T-mobile 去。T-mobile 的方案是當時比較以後覺得算是比較便宜且還可以接受的,而且有不少朋友是用 T-mobile 的,雖然收訊狀況聽說只是普通而已,但在各大機場還有 WiFi hotspot,且網際網路的收費也是各家裏面最低的 (不過 T-mobile 的網際網路並不單純是 GPRS,而是 GPRS + WiFi 的混合體) ,所以就在他們網站上下訂單,而且要求把舊手機的號碼轉移過去。由於當時我已經搬出學校宿舍了,加上手機分鐘數又用完了,所以整個訂購過程用網路處理,對我來說是唯一選擇。不料 T-mobile 的網站系統在收到我的訂單之後,立刻就寄了確認信到我的 e-mail 信箱中,但是沒多久又寄一封信說,我的訂單必須做身份認証,要我在上班時間使用 online chat 『或』打電話給客服。對我來說,打電話是不可能的,而且當時的網路連線的頻寬不高,無法使用 Skype-Out 打電話,加上對我來說,當然還是使用文字來溝通會比較容易,英文的聽和說雖然還好,但是透過電話往往聲音會更糢糊,更難聽懂,所以自然我就選擇使用 online chat。T-mobile 的 online chat 系統似乎也是針對 IE 寫的,因此一開始問題一堆,在適當調整過 Firefox 的設定後,總算跟某個 agent 連絡上,也確認過身份了,照道理說應該已經搞定了。沒想到等了兩三天,T-mobile 的網頁的訂單狀態查詢,始終顯示我的訂單狀態還是在 "pending"。由於已經兩三天過去了,我只好寫 e-mail 跟客服說這種狀況,結果得到的回應竟然是他們無法處理,要我打電話給客服。這讓我相當惱火,因為如果非得要打電話不可,那為何一開始的 e-mail 不說清楚,一開始就說要打電話就好了不是嗎?在我照他們的遊戲規則搞了好幾天以後,才告訴我說非打電話不可,這樣很糟糕,因此我回信說,如果真的非要打電話不可,為何不一開始就說清楚?難道沒有想過我為何會採取 e-mail 和 online chat 的方式處理這件事嗎?當然就是打電話有困難啊!要嗎就幫我搞定,不然就把訂單取消,並且請清除掉我在下訂單時留的所有個人資料。通常這樣說會有兩種極端的結果,一種是會有真的能負責的高層跟我接觸,把訂單搞定。另一種就是真的訂單被取消。很不幸的,回我信的客服是屬於後者,她說既然我不願意打電話,她會通知相關部門取消我的訂單。說是這麼說,但是幾天後我再查詢,我的訂單紀錄還是存在在他們系統上,而且狀態還是 "pending"。這樣來回大概花了 1 週,而且沒有結果。

在那之後,由於轉換系統沒有成功,只好加值繼續使用 TracFone 的爛服務。然而,就在最近一次,該死的 TracFone 網頁系統在我加值時停止回應,導致我的信用卡被重複扣款。要求他們取消其中一次交易,但是又是回官樣文章說,要我自己跟他們的信用卡部門接洽。網頁系統爛,還要使用者自己搞定,這是什麼爛服務?因此我又是趁著剛好分鐘數要用完了,趕快跟 Cingular 下訂單。Cingular 本來是 AT&T/Bell South 分出去的公司,但是最近好像是 Cingular 先和 Bell South 合併 (不過我忘記是誰把誰買走),然後 Bell South 又把原來的母公司 AT&T 給買下來,但是現在三者都使用 New AT&T 當公司名稱。所以不管是網站還是客服專線,都會說 "Cingular now is new AT&T" 之類的。總之,現在 Cingular/AT&T 應該是美國最大的電話公司了。跟 Cingular 下訂單也是透過網路訂購,時間是 6/6 下午3點左右,下完訂單以後,想當然的接到了確認郵件,同時沒多久又接到一封信說要我打電話給客服進行身份確認。這部分其實跟 T-mobile 差不多,但是至少一開始就講明要打電話。不過當然事情沒有那麼簡單,打過電話以後,對方核對我的姓名、電話號碼、帳單地址、社會安全號碼等等之後,說要我等 24 到 72 小時,讓他們的信用部門完成信用狀態檢查。不過在等了 24 小時候,也就是 6/7 下午,我在他們網站上檢查我的訂單狀態時,竟然系統顯示沒有這筆紀錄。所以我只好又打一次電話去問,這次電話大約整個時間講了 35 分鐘 (我使用 skype-out 打的),但是整個講到話的時間不超過 5 分鐘,大部分都是那位小姐說要跟 XX 部門連絡,要我等一下.....等了好幾次的『一下』之後,最後跟我說,現在流程卡在號碼轉移要求上,那個要求會花 3 - 4 小時才會處理好,要我 3 小時以後再打電話過去。乖乖等了 4 小時,打過去以後,又是說號碼轉移部門還沒有處理好我的號碼轉移要求,因此把我的電話轉給該部門。該部門接聽的小姐則是又問了一堆個人資料,重新發出號碼轉移要求給 TracFone,並要我隔天早上打電話過去看狀況。又是乖乖等到隔天早上,打電話過去之後,由於這種客服電話通常是自動轉接的,每次打過去基本上都是不同的人接聽的,所以每次都要費一翻脣舌先解釋狀況是怎樣。解釋完以後,客服小姐說,TracFone 那邊對於號碼轉移要求一直沒有回應,所以他幫我直接打電話過去該公司問,結果對方公司沒有人接聽電話。因此她要幫我發 ticket (可能是指正式的請求單之類的,問過朋友,但沒有人知道中文該怎麼翻譯才對) 到 TracFone 去。在這之後,我又收到 e-mail,要我打另一個電話,以完成我的訂單。我打了以後,基本上又是問了個人資料,然後說號碼轉移沒有完成之類的,幫我轉接過來轉接過去的。總之,搞了好幾次之後,總算在週一 (6/11) 下午,在跟號碼轉移部門的客服小姐雞同鴨講了半天之後,才知道我的號碼轉移要求已經完成了,但是我的訂單不知道為何沒有被他們的系統處理好,導致我一直沒有收到新的手機,因此沒辦法把就號碼移到新手機上。那位小姐蠻熱新的,我一開始搞錯一些事情,她有跟我說明,然後還幫我把電話轉接給某相關部門的某小姐那,而且還是先幫我把情況跟對方說明清楚了。轉接過去以後,那位小姐則立刻幫我查我的訂單狀況,然後立刻幫我把訂單送進系統處理。不過很不剛好,那天下午 Atlanta 這邊下雷雨,導致 Skype-Out 在我講完之前就斷線。當時實在是一個頭好幾個大,因為我不確定最後到底那位小姐會不會在斷線之後繼續幫我把流程跑完,而且因為電話是轉接過去的,我也不知道該怎樣連絡上之前講話的那位小姐。只好還是先打電話給號碼轉移部門,又是費了一翻脣舌說明狀況,但是那位客服先生似乎有點會錯意,把我的電話後來轉給 Sales 部門,而該部門接聽電話的先生則說,他沒辦法幫我處理網路訂單的問題,但是如果訂單真的有問題,他可以幫我重下訂單,要我先打另一支我之前打過的號碼,先確認訂單到底怎樣了,有需要再打給他。當然又是一場混戰,又打了一通電話,在轉來轉去之後,總算客服的先生說,我的訂單基本上沒有問題了,他不知道為何網頁系統無法查詢我的訂單狀態,但是他們系統內的紀錄顯示,我的訂單已經被處理好了,我週三或週四 (6/13 或 6/14) 就應該會收到新手機,收到之後打電話給號碼轉移部門,完成最後的轉移手續即可。聽到這邊,我忍不住跟他說:『I fight for my order for 5 days, and finally it's done!』他則回我說:『Yes, it's good for you.』總算奮戰了 5 天之後,有比較明確的結果了。當天晚上也收到了 AT&T 寄來的 e-mail,說我的訂單已經被處理,東西已經寄出,並且給我追蹤編號。根據該追蹤編號,我查了一下,包裹預計 6/13 下午 7 點到達。過了不用跟電話公司奮戰的一天,到了 6/13 上午,我查了一下追蹤紀錄,啥!一早東西已經到附近的轉運站,而且已經在遞送到我這邊的途中!那不就代表可能上午就會到了?這讓我慌了一下,本來預訂上午要出門處理一些瑣事的,只好把時間延後了。果然大約 10 點半左右,FedEx 的快遞先生把東西送來了。收到包裹之後,拆開看,包裹裏面有一台簡配的 Nokia 6102i,然後還有一張 SIM 卡,但是 SIM 卡的本體已經幫我裝在手機裏面了。在 11 點左右,我打電話到 AT&T 的號碼轉移部門,要完成最後的轉移手續。不過不知道為何,接聽電話的先生在問了一些問題以後,然後說我必須接受他們的使用條約,才能夠完成整個啟用程序,因此他幫我把電話轉接到語音的手機啟用系統去,在聽完語音後,語音系統則說,我的號碼轉移有問題,所以又把電話轉回給號碼轉移部門........轉過去以後,又是問了個人資料,搞了半天之後,電話又被轉給另一個不知道啥部門,在這中間,手機只要開機,就會說『SmartChip registration failed』而無法使用。跟該部門的客服小姐扯半天之後,她說他們要花 2 個小時才能把我的手機啟用,要我至少 2 小時以後再打電話給客服的技術服務部門。又是乖乖的等了兩小時,打電話過去以後,發現手機還是不能用。在又是扯了一堆,客服小姐也是要我等了好幾次以後,她說她幫我發 ticket 給相關部門,要求相關部門處理我的案子,我問這個程序要花多久時間,她則說至少 3 - 4 小時,我又問說,如果到明天早上我都還是不能用我的手機,我該怎麼辦時,她則說......再打客服電話吧.......好樣的,在這通電話之後,過了大約兩個小時,總算手機可以用了!此時時間已經是 6/13 下午 3 點多了,離我下訂單幾乎剛好整整一週

結論:老美的辦事效率真是差,電話公司都至少要花 1 個禮拜才會處理好一個案子...唉...

繼續閱讀全文

星期六, 6月 09, 2007

為什麼老是遇到這種人?

仔細想想,我認識了不少情緒管理很差的人,而這些人裏面,大都是 IQ 高的人,難道 IQ 必然和 EQ 成反比?

今天晚上,前室友及其女友約吃飯,不過我是間接由另一位也被約一起去的學弟通知的。其實我的手機是使用預付卡的,這件事情大家都知道,但是不知道為何,最近老是有人喜歡用免費的市話,或者在他們手機免費的時段打電話給我,有時候說的也不是什麼重要的事情,更甚者,明明不是什麼重要的事情,又恰巧我手機關機,卻還是要在我的語音信箱留言,我聽語音信箱也是要扣錢的,真的是別人的錢花不完。明明我的 Skype 和 MSN Messenger 幾乎都隨時掛在網路上,這種不重要的事情,難道不能用文字訊息傳過來就好?不是我那麼愛計較,而是分鐘數已經快用光了,我又不打算繼續使用這家爛公司的服務,偏偏這種時候接二連三的硬是要打我手機。也許不知者無罪,但是一樣類似的情形發生在那位先生的身上,他是當事人時,他就會希望大家儘量不要打,這是什麼道理?

離題了。總之約吃飯,吃飯前後大致上都還好,但是我不清楚當初我前室友他們到底是怎麼跟那位學弟講的,只約了地點,卻沒有約確實的時間,理由是前室友的女友要洗澡,洗好才出門。那位學弟對此一開始只是碎碎唸,因為時間還早,路上又塞車,預計我前室友他們還要一段時間才會到,要我載他先去一些賣場買東西。買完去餐廳,我前室友他們已經到了。我不清楚他們到底到多久了,反正整件事情一開始本來就沒有約確定的時間,我因為手機的問題,沒有用手機直接跟他們連絡,我都是間接聽那位學弟轉述。吃完之後,我們一起去附近的韓國超市買菜,買完時間還早,大家就約要去一位前幾天回台灣換簽證的學長家中坐坐,因為他的鑰匙有交給我們。不過因為還有另一位朋友也想去,因此就只好兵分兩路,我前室友他們開車去捷運站載那位朋友,他們把學長家的鑰匙交給那位學弟,然後我先帶那位學弟回我住的社區開他自己的車,然後再到學長家會合。本來似乎兩方預訂應該是我們會先到,因此鑰匙交給那位學弟,但是我一開車,那位學弟就希望我先帶他去旁邊的 Walmart 買東西。整個問題就出在這邊,那位學弟為了要買某些東西而猶豫了很久,導致我前室友已經接到人了,但我們才剛要往回程出發。由於我知道時間已經有點晚了,所以我已經儘量開快,但是回程的大約 15 分鐘車程中,我前室友已經打電話『連繫』那位學弟好幾次,據我間接了解,口氣不太好。甚至就在我快要下高速公路時,打來了最後一通電話,我前室友他要開回我的社區(這樣有多跑一段路)來等我們,跟我們拿鑰匙。此時那位學弟已經對我前室友的語氣感到相當不高興了,已經在我旁邊公開『訐譙』我前室友,說為了他女友,我們已經在吃飯前多等了一個小時,要我前室友等我們十多分鐘都不行等等。就在我開車要進入我住的社區時,看到我前室友的車停在旁邊,眼角餘光看到他的臉色很難看。那位學弟只好先下車把鑰匙拿給我前室友,不過一上車當然就立刻破口大罵,後來他拿到自己的車以後,也不想去學長家坐坐,就直接回家了。其實我當時也有點想,既然都回到家了,氣氛又那麼差,又下著雷雨,我也不想過去了。只是想到那位朋友在那邊可能會很尷尬,而且問題不直接出在我身上,我想我前室友應該風度沒那麼差。沒想到,我高估了我前室友的 EQ。

由於手機沒辦法用,加上 call box 因為學長有把他的手機帶回台灣,也沒辦法用,所以到了那邊,我本來想如果進不去就算了。好在剛好有該社區的人要進去,我就跟著一起進去了。到了學長家,一進去,就看到我前室友他女友,以及那位朋友兩人,看著我的臉色怪怪的,而我前室友則似乎有意無意的當作沒看到我。我本來也以為單純只是他剛剛不高興,所以不想講話,但是我們在學長家放影片看時,我前室友好像當作沒有人在一樣,在畫面前面走動幾次就算了,到最後還在我旁邊不知道在拆他今天買的 NAS 的包裝還是幹啥,製造一堆噪音。到這邊我都還沒有覺得怎樣,最誇張的是最後要離開時,我跟他們三位打招呼,我前室友竟然有意無意的當作沒聽到,完全無視於我跟他打招呼。

基本上我自認為我的 EQ 也不是很好,但是除非非常誇張,我幾乎沒有公然擺臭臉給別人看過。但是我也不是沒有脾氣的,既然要明著來,我也不會跟你客氣。我在外島,都敢在半公開的場合裡,跟營長吵架了,這是已經足以達到軍法審判的行為了,難道還會怕你?人是互相的,我可沒有脾氣好到打不還手罵不還口的地步。要擺臭臉大家來,誰怕誰?

四年多前的某一次,跟某位學長吵架,當時的原因也主要是學長自己的情緒管理不好,莫名其妙開罵,而且在我解釋過後,依然繼續罵人,我當時最後還是翻臉了。那時候就已經讓我深深感到,身邊有不少人是屬於高 IQ 低 EQ 的類型。今天總算讓我又確認了一位這種樣子的人。

網路因為雷雨的關係斷線,回到家一個多小時之後才又回復連線,因此來貼一篇『紀念』一下。腦袋現在一遍混亂,最近很多瑣事煩心,又遇到這種情形,所以要比脾氣差,那就來比吧!

繼續閱讀全文

星期五, 6月 08, 2007

我也來貼圖 - Linux 的 3D 桌面

上週的某一天,總算下定決心,把我帶來美國的筆記型電腦中,用了兩年多,從 Mandrake 10.0 一路修改升級,到後來因為很多原因而運作不順暢的 Mandriva Cooker,給換成 Ubuntu Linux在這之前,雖然為了嘗鮮,已經自己忍不住試過許多次,在我的機器上嘗試驅動 XGLAIGLX 等新的 X Window 3D 加速架構,但因為我的機器的顯示晶片是 ATi Radeon Mobility 7500,而該晶片只有 Open Source 的 driver 可以用,但該 driver 在要滿足 XGL/AIGLX 所需的 OpenGL extension 上,一直略有不足,導致往往無法完全正常運作。此外,自己手工打造能使用 XGL/AIGLX 環境的 X Window 系統,是一件十分繁重的工作,雖然後來 Mandriva 宣佈會支援 XGL/AIGLX,而 Cooker 中也已經有相關的套件了,但實際試用的結果,比我自己手工打造的系統看慘。

沒想到等了一年多以後,Ubuntu 7.04 的表現讓我眼睛為之一亮。Ubuntu 的安裝方式與我之前較熟悉的 Red Hat Linux 為基礎的系統(例如 Red Hat Linux、Fedora Core、Mandrake/Mandriva 等等)不太一樣,安裝光碟本身就是一片 LiveCD,安裝過程也算是相當順暢。安裝完成之後,只需要安裝 CompizBeryl 相關的套件,XGL/AIGLX 所帶來的好處,以及 Compiz/Beryl 的各種特效 plugin 的效果,幾乎都可以有效運作在我的機器上。雖然部分特效,如雨滴特效等等,因為某個 OpenGL extension 支援的不足,導致無法使用,而且因為 ATi Radeon Mobility 7500 的 3D 運算功能沒有時下最新晶片來得強悍,但也已經堪用。Beryl 豐富的 plugin,以及所提供的靈活設定,讓 Beryl 本身不單純只是提供 eye candy 而已,同時也提高的整個圖形介面的可用性。唯一的缺點是,應該是因為內建的顯示記憶體的空間比較小,且顯示晶片的計算能力比較差,所以螢幕解析度最高只能到達 1024×768,而我的螢幕本身最高可以達到 1400×1050,但一但使用高於 1024×768 以上的解析度時,不論是 Compiz 或 Beryl,都無法正確啟動。我倒是還沒測試過 Metacity 的特效功能,而且也還不確定 Ubuntu 的 Metacity 是否已經是內建 composite manager 的新版本,下次有空再試試看好了。

標題既然提到要貼圖,當然不能免俗的,來貼一下大家都有的 cube plugin 的圖:
從圖上可以看到,視窗並不是平貼在 cube 上,而是立體的浮在 cube 表面,那是所謂的 3D Window 的效果。此外,下面則是所謂的視窗預覽功能,該功能在 Windows Vista 中也有:
從圖中可以看到,該縮圖是即時影像,與視窗的內容是一樣的。事實上,即使視窗是最小化,但該功能產生的預覽縮圖也還是視窗正常狀態時的內容。再來則是視窗透明化的特效:
最上層被透明化的視窗是 GNOME terminal,可以看到下面的 GNOME 字典程式,以及最底層的 PCManX。該透明化的效果可以自己調整透明度。然後是 Switcher 視窗切換器的特效:
視窗切換時的縮圖也是即時影像,換句話說,視窗也任何變化,會立即反應在縮圖上,這樣可以讓我在不需要真的把某個視窗切換到前景的狀態下,知道視窗中程式執行的狀態。此外,切換視窗時,不是只可以切換現在面向螢幕的 cube 或目前虛擬桌面上的程式而已,事實上可以切換至任何一個在 cube 上有視窗的任何程式,相當方便。而切換器提供的切換方式,除了如上圖中最傳統的將視窗橫列在切換器中以外,還可以做到類似 Windows Vista 中的視窗環狀排列的切換方式。不過因為抓圖熱鍵設定的問題,我沒有抓該模式下的圖。最後,當然免不了要貼一張摹仿 Mac OS 的 Expose 功能的視窗排列特效:
同樣的,視窗排列時的視窗縮圖也都是即時影像,且也可以選擇只要排列當前虛擬桌面上的視窗,還是要排列所有執行中程式的視窗。

其實還有種種其他的特效,例如畫面反白功能(藉由反白視窗或整個畫面,暫時提高目前畫面的對比,以方便觀看)、視窗捲軸功能(把視窗『捲』到標題列,只剩下標題列在畫面上)、各種視窗變換特效,以及視窗黏著特效等等,雖然有些比較單純是表現特效而已,但還是有不少功能讓圖形介面變得更好用。有不少特效要用影片來展示會比較清楚,但因為螢幕連續影像捕捉,如果是使用程式來做,之前試過幾次,frame rate 都不夠高;但如果用外部攝影機來拍攝,我又懶得這麼做,所以就先算啦!反正在 YouTube 上可以找到一堆相當棒的展示影片。

我喜歡 Linux + XGL/AIGLX 最重要的一點是,在 Windows Vista 絕對跑不動的硬體上(像我的電腦就絕對無法安裝 Windows Vista,因為光是記憶體就不夠了,我只有 512MB 的記憶體而已),還是可以達到相同程度,甚至更好的 3D 桌面,而且 3D 桌面也不單純只是很炫好看而已,還更進一步的提昇了 X Window 的可用性,加上 Linux 本身的一些特性,實在是讓我愛不釋手啊!

繼續閱讀全文

星期五, 6月 01, 2007

越睡越少

標題其實有點問題,應該是說正常時間的睡眠似乎越來越少。難道是年紀大了嗎?

這兩天因為很多原因,導致晚上其實都蠻晚睡的,大概都是半夜兩點以後才去睡覺。可是早上大概都是七、八點左右就醒過來了。不過因為睡眠不足夠,往往到中午或下午就會想睡覺。這讓我想到之前看到有人在 BBS 上的簽名檔是這樣寫的:
老化的四個徵兆:1.坐著一直睡2.躺著睡不著3.新的記不住4.舊的一直提

嗯......
繼續閱讀全文

星期三, 5月 30, 2007

最近實在是不順

最近遇到一些倒楣的事情。其實一直以來,似乎都多多少少會遇到一些倒楣的事情,只是似乎最近頻率比較高。

先是房租續約因為 leasing office 的作業問題,搞得一團亂,到現在還不確定到底完全解決了沒有。接下來,似乎我的好人名號太出名了,沒事就被一堆人找去當好人。再來,又遇到該死的手機公司的爛網站,多跟我的信用卡扣了一筆實際上沒有完成的交易的經額,目前還在交涉中。還有,似乎莫名其妙被某事件波及,某甲問我某乙的狀況,然後沒幾句之後,卻叫我不要再問了,問題是我啥都沒問啊!是他先問我的,怎麼變成好像我太閒去探人隱私的感覺呢?

情緒管理實在是很重要的事情。自從三年多前的某事件,讓我見識到了高 IQ 絕不等同於高 EQ 以後,我一直覺得,跟人打交道實在是非常累的事情。其實從高中以後就已經有這種感覺了,這也導致我越來越不擅長和人打交道。這年頭情緒管理不好的人實在是越來越多了。唉!

諸事不順的同時,又要處理討厭的人際關係,實在是非常的令人厭煩。趁著最近打算重新安裝我的 notebook pc 上的 Linux 的同時,暫時切斷 IM 一段時間好了。
繼續閱讀全文

星期四, 5月 24, 2007

使用 OpenOffice.org 建立 PDF 電子表單

上週,在學校的校友信箱中,收到了系上某位自稱是負責校友會校友資料更新的學妹寄來的 e-mail,信中附上了一個叫『校友更新資料表』的 Word 檔,希望我填完以後寄回去。

基本上看到是 Word 檔,想填的意願就已經不高了,又不是每個人都會裝 MS Office,也不是每個人都用死微軟的暈倒系統啊!不過由於之前似乎系上也寄過相同的調查表的紙本到台灣的家裏,所以還是打開看看。打開一看,果然是用 Word 畫的表格。這到還好,雖然填起來不是那麼方便,但還可以接受。直到我看到了某個讓我受不了的東西 -- 使用『□』符號做出來的 checkbox--我決定不填了。使用『□』符號來『畫』checkbox 是在製作紙本表格時,蠻多人會用的方法。問題是在電子表格裡面,這種作法實在很糟:填表人還要想辦法去找到『■』符號來把原來的『□』取代掉!這是相當不專業的方法。

在現在,電子表單逐漸成為無紙作業中,相當重要的一個基本工具。不過以往看到的 PDF 電子表單,大都是使用一些昂貴的 Windows 平台軟體製作的。至於使用 FS/OSS 製作 PDF 表單的方法倒不是沒有,我第一個可以想到的,是使用 pdfTeX 搭配 hyperref 等 package 來達成,不過這種製作方式對於不懂 LaTeX 的人來說,相當不方便。那是否有更方便的方法呢?

其實是有的,OpenOffice.org(以下簡稱 OOo) 目前已經支援 PDF 表單的製作了。OOo 的英文版目前最新版本是 2.2,而中文版則是 2.1。以中文版為例,要製作 PDF 表單,基本的步驟如下:
  1. 啟動 OpenOffice.org Writer
  2. 在 [檔案]->[開啟新檔] 中,選取『XML 表單文件』
  3. 使用提供的元件設計想要的表單。各個元件都有一些設定項目可以設定,只要 double click 該元件,就可以開啟設定視窗。設計完畢存檔。
  4. 使用 [檔案]->[匯出成 PDF...] 將 XML 表單轉換為 PDF 表單
就只要這幾個步驟,可直接填寫的 PDF 表單就完成了,而且中文的支援也沒有明顯的問題。各個元件也可以設定是否在列印時會被印出來,因此對於表單的列印輸出,也可以有不錯的控制。

OOo 實在是越來越強悍了,搭配蓬勃發展的其他各種自由軟體,使用電腦而不必被 MS 綁死的難度直線下降,尤其是對末端使用者來說,實在是一大福音。
繼續閱讀全文

mplayer/mencoder 的 profile

Mplayer 原本是在 Linux 環境下發展的一個功能強悍的媒體播放程式,除了播放之外,附屬的 Mencoder 也可以用來做媒體壓縮處理,是個相當強悍,幾乎所以格式都通吃的媒體播放與壓縮軟體。在許多人的努力之下,Mplayer 目前除了 Linux 以外,連 Windows 以及 MacOS 上,都有了可用的官方版本了。
Mplayer/Mencoder 自從 1.0pre8 版本以後,支援所謂的 preset profile。所謂的 profile 是允許使用者把一些特殊設定結合起來,在呼叫 mplayer/mencoder 的時候,使用 "-profile profile_name" 的方式來使用這些設定,而不需要每次都在命令列下給一堆參數。這個功能對 mplayer 來說,用途比較沒有那麼明顯,但對於 mencoder 而言,則是一個很有用的功能。

以下是我自己的設定檔中,幾個比較有趣的 profile:

[wii]
profile-desc="Wii Video standard format"
oac=pcm=yes
ovc=lavc=yes
lavcopts=vcodec=mjpeg
sws=9
font=c:/windows/fonts/arialuni.ttf

[flv]
profile-desc="Flash Video"
of=lavf=yes
lavfopts=i_certify_that_my_video_stream_does_not_use_b_frames=yes
oac=mp3lame=yes
lameopts=abr=yes:br=64
srate=22050
ovc=lavc=yes
lavcopts=vcodec=flv:keyint=50:vbitrate=300:mbd=2:mv0=yes:trell=yes:v4mv=yes:cbp=yes:last_pred=3

[flv-ntsc]
profile-desc="Flash Video in 29.97fps"
profile=flv
ofps=29.97
vf=scale=320:240
sws=9

[flv-pal]
profile-desc="Flash Video in 25fps"
profile=flv
ofps=25
vf=scale=320:240
sws=9

其中 "wii" profile 是用來把影像檔轉換成符合 Wii Video 的格式用的,而 "flv" 則是把檔案轉換成 Flash video 用的。簡單的使用方式如下:
  • 轉換檔案成 Wii Video:
    mencoder -profile wii -o output.avi source.whatever
  • 轉換檔案成 Flash Video (frame rate 為 29.97fps)
    mencoder -profile flv-ntsc -o output.flv source.whatever

不過使用 flv profile 產生的檔案,還必須使用 yamdi 或 flvtools 等工具來插入 metadata,才能夠在播放器上進行快轉等等。
繼續閱讀全文

星期二, 5月 15, 2007

yamdi 的Windows porting

最近似乎找東西都還蠻順利的,一些以前找不到的資訊,最近都找到解答了。像是使用自由軟體來產生 Flash video (FLV) 的方式,最近也找到了,而且還是使用我個人偏好的 mencoder 來達成。這個等我下一篇 blog 再詳述。

yamdi 是 Yet Another MetaData Injector 的縮寫。這個軟體的作用主要是用來在使用某些軟體轉換出來的 Flash Video (FLV) 檔案中,插入一些缺乏的 metadata,使檔案可以在 flash video player 上快轉和倒帶等等。這個軟體本來是針對 Un*x 平台,使用 C 語言所寫的,原作者也還沒有放出可以在 Win32 上使用的版本。相同功能的自由軟體還有一個叫做 flvtool2 的軟體,不過是用 Ruby 寫的,而我不會 Ruby,也懶得為了跑一個 script 而去裝一套我可能不會再去用的直譯器。Win32 下倒是還有其他的 freeware 可以用,例如 flvmdi,但 flvmdi 不是自由軟體,事實上根據網頁的說明,甚至不算是 freeware。

昨晚發現了 yamdi 這個 C 語言的自由軟體實做,下載回來看,發現其實程式碼不長。雖然作者在網頁上只說了這個軟體能夠在 *BSD 和 Linux 上跑(作者在 FreeBSD、MacOS、以及 Ubuntu Linux 上試過),但沒有提到到底行不行在 Win32 的環境上編譯。看到這種小程式,當然就要實際拿到 MinGW 上試試看啦!使用 MinGW 也是我的個人偏好,雖然移植 Un*x 程式到 Win32 上用 Cygwin 會簡單很多,但畢竟有一種隔靴搔癢的感覺.....回歸正題,使用 MinGW 的 MSys 環境,呼叫 GCC 去編譯時,馬上就發現了為何不能在 Win32 上編譯的主要原因:該程式使用到了 mmap() 這個記憶體映射函式。yamdi 的作者會使用 mmap() 的理由其實很明顯,他覺得 flvtool2 是把整個 FLV 檔案載入到記憶體中處理,這樣對檔案很大時,就會很慢又吃光記憶體。不過問題出在 MinGW 並沒有實做 mmap() 這個函式,所以這個程式在沒有修改的狀況下,沒辦法在 MinGW 上編譯通過。除了 mmap() 這個主要的問題外,還有使用到了 bzero() 這個也是 MinGW 沒有定義的函式,以及存取到了 /dev/null 這個在 native Win32 下不存在的裝置檔案。

我對 Win32 API 可以說是個門外漢,事實上對於用 MinGW 寫純的 Win32 程式也只是略知一二而已,所以這種情況下,當然只好拜請古狗大神啦 XD bzero() 和/dev/null 的問題好解決,根據 bzero() 的 manpage,bzero() 做的事情就只是把某塊記憶體空間填滿 0,因此可以用 memset() 來取代。至於 /dev/null,根據在 DOS 時代的記憶,以及以前做過的試驗,在 Win32 下可以使用 "nul"這個特殊的虛擬檔案來取代。剩下最麻煩的是 mmap() 了。查了好幾下 Google,Win32 API 中,與 mmap() 類似的對應函式是 CreateFileMapping() 以及 MapViewOfFile() 這兩個函式的組合。根據從 Google 找到的一個 libgda 的 MinGW porting 的 patch,我依樣畫葫蘆的,很快的改好了第一個可以編譯的版本。不過很不幸的,事情沒有這麼簡單。這樣依樣畫葫蘆的結果是,CreateFileMapping() 每次都會失敗。翻了一堆 MSDN 的網頁,也看了幾個範例程式,本來以為問題只是單純的參數或者旗標設錯。呼叫 GetLastError() 取得錯誤代碼後,發現是 File handle 錯誤。這下頭大了,我完全是照著該 patch 的邏輯,把 fopen() 回傳的指標,使用 fileno() 轉換成 file descriptor 之後,再強制型別轉換成 HANDLE 類型,難道這樣做不行嗎?經過幾次使用 gdb 去看一些變數的內容後,我決定放棄這條途徑,改用 MSDN 裡面建議的 CreateFile() 這個 API 來開啟檔案,直接取得 CreateFileMapping() 能夠接受的 file handle,這樣總不會錯了吧?又經過一些修改,總算產生了一個可以運作的版本啦!

經過一連串的找找改改,程式是編出來了,但到底能不能正常運作呢?當然要實際測試一下才知道了。找了一個很短的影像檔,先用 mencoder 轉換成 FLV 格式,然後再用我編出來的 yamdi.exe 來插入 metadata,最後再用另一個 flash video 播放器的自由軟體 -- FlowPlayer 來測試,果然成功,可以正常快轉和倒帶等等。辛苦還是有代價的。確定成功之後,我做了個 patch,並貼上該計畫網頁的 patch 頁面去了。

好久沒有這樣改程式了,加上 Win32 API 我本來就不熟,看了一堆 MSDN 的網頁,頭好昏啊 :P
繼續閱讀全文

星期五, 5月 11, 2007

遠在天邊,近在眼前

今天在偶然的機會,想起了在東引當兵時的兩項特產 -- 『東引地雷』和『乖乖』。在東引時就很好奇,這兩樣東西的學名到底是什麼?以前也做過一些搜尋,不過沒有得到太有用的結果。今天再次用 Google 做了些搜尋,總算找到了學名以及相關圖片。

我在 2001 年 4 月到 2002 年 6 月份期間,在東引下部隊,駐地是西引島,職位是兵器連排長。剛到部時,就有老兵和士官告訴我,要小心東引的兩樣特產,『東引地雷』和『乖乖』。

東引地雷其實是一種植物,印象中幾乎一年四季都會看到,不過似乎春夏時最茂盛。東引地雷會開花,其實也還蠻漂亮的,只是葉子尖端有刺,和含羞草類似,都會穿透衣服刺到皮膚,被刺到的部位會刺痛紅腫很久。在花謝了以後,只剩下葉子的部份,隱藏在草叢中,不小心就會中彈,我想『東引地雷』的稱號可能是這樣來的。Google 找到的學名是『南國薊』,而且其實不用跑到東引,在陽明山國家公園就有了:(圖片取自陽明山國家公園的網頁)


至於『乖乖』,號稱是東引毒物之首,在老兵的眼中,是威脅性遠超過蜈蚣和蛇的一種毒昆蟲,每次只要看見,就一定全力撲殺。這個東西到底有多毒?我在當地的一年多裡面,沒有遇到過有『體驗』過的人,我自己也只有在寢室被蜈蚣偷襲而已,但在老兵的口中,是相當毒,甚至可能會致死的東西。乖乖之所以讓老兵如此畏懼,除了毒性之外,恐怕最可怕的地方在於,它常常無聲無息的出現在意想不到的地方:安全士官室的牆上、休息時脫下的鋼盔上、內務櫃上、甚至是直接出現在床上、棉被上、身上等等。乖乖的外型其實也許猛一看沒有像蜈蚣那麼令人驚悚,但其實也有點讓人毛骨悚然,尤其是在聽到老兵們的一些『現身說法』之後。這個東西在 Google 查到的學名則是『蜒蚰』(音同延由),而且也一樣,不必到東引,在陽明山國家公園裡,一樣可以找得到:(圖片一樣引自陽明山國家公園的網頁)


沒想到在東引赫赫有名的兩樣毒物,竟然在陽明山國家公園裡都有,著實讓我吃了一驚。不過,我在東引的回憶中,毒物不是最毒的,最毒的是人心。一心想要整備戰備,但完全不顧基層死活,心狠手辣的旅長;加上逢迎拍馬超一流,但沒肩膀又陰險的營級主官主管;還有本來相當有新人新氣象,但被旅長嚇到後,龜縮推卸責任的連長;最後還有出身師大體系,但卻帶頭擺爛擺老的另一位預官排長,還有一樣出身師大體系,但卻擺爛到連冰都看不起的預官學弟。軍隊真的是社會的縮影,但是是黑暗的那一面。事後回想,我能夠平安退伍,真的是福大命大了,有好幾次演習時,因為一些長官不懂裝懂,差點把整個山頭炸掉,還好後來都沒有釀成大禍。唉!
繼續閱讀全文

星期二, 3月 20, 2007

最近好煩啊

又是很久沒有寫網誌了,不是不想寫,而是沒心情寫。上週去了一趟 New Orleans,本來想趁記憶還清晰時,寫個遊記的,但遲遲未動筆。還有上次做得不太成功的黑糖麻糬,本來也想紀錄一下的,也是還沒動手。這幾天為了換手機的系統商,被 T-Mobile 搞得很煩,然後到現在都還沒搞定。報稅的事情也應該趁這幾天趕快處理好才行。遊記還是等這些煩人的瑣事都解決了以後再來補吧!
繼續閱讀全文

星期一, 1月 29, 2007

料理大挑戰:月亮蝦餅

繼之前挑戰兩次輕乳酪蛋糕之後,有好一陣子沒有挑戰新料理了。趁著最近失業中,又恰巧在某 BBS 的某版友的版上看到一篇介紹月亮蝦餅作法的網頁連結,在經過幾次跑超市買菜順便找找相關材料後,確定關鍵性的材料都買得到的狀況下,今天總算實際『實做』了。

作法上我大致都照著該網頁作者描述的作法來實行,不過除了用刀背來剁蝦泥之外,我還偷懶用了肉槌來『加速』,效果還不錯。另外由於忘了買五香粉,加上還沒買量匙,所以有些東西的份量依然用估計的,有些則從缺。基於人懶的關係,蝦子我是買超市的帶殼冷凍生蝦,雖然比超市賣的生鮮蝦來的貴一些,不過由於已經做了基本的處理(挑筋和去沙腸),並也已經做過基本的冷凍處理,保存上比較容易,價錢也比去殼冷凍生蝦或冷凍熟蝦來得便宜。所有材料除了春捲皮是在韓國超市買的以外,其他材料除了調味料以外,都是在 Walmart 買的。

直接來看看成果如何。首先是油炸時的照片:

由於真的用『炸』的話會用很多油,而且油煙也會比較嚴重,所以油量大致上只有跟餅的厚度差不多,沒辦法完全蓋過餅皮,因此有點半煎半炸的。至於為何餅看起來不是很圓?其實是因為美國這邊買到的味全春捲皮是『正方形』的!所以只好用盤子當模子來把皮剪成圓形的。接下來是油炸完成以後的照片:

油炸完成以後,餅皮接觸空氣一段時間,就會呈現金黃色的色澤,蝦子的紅色隱約可見,綠色的部份是香菜屑。顏色看起來跟我形容的可能有點差,主要出在燈光顏色造成的色偏。使用閃光燈會曝光過度,因此我關閉了閃光燈,直接使用燈光,而燈光造成的色偏比我想像中的嚴重。不過反正看起來差不多就好,我不是專業的美食攝影師啊!全部的製作時間,不包含冷凍蝦的退冰時間的話,我花了約 90 分鐘,包含了撥蝦殼、準備材料、混合材料、下鍋油煎、簡單收拾廚具等等。雖然比原作者的 30 分鐘長了 3 倍,但我覺得以第一次嘗試來說勉勉強強啦!

做完之後,搭配今天稍早連續嘗試兩次的泰式奶茶,感覺真是....我會被自己餵到肥死 :P 大致上口感相當不錯,蝦泥有點打得不夠碎,但相當有咬勁。果然用刀背和肉槌來打是對的。此外,鹽有點加太多,白胡椒還加不太夠,香菜因為品種的關係,味道不夠。沒有家五香粉似乎不是很大的問題,不過有加的話應該會更有另一番風味。總結一下,成果比我預期的好。

這次嘗試的代價是,由於冷凍蝦的退冰時間比我預期的長,導致開始做的時間已經是晚上快 10 點了,因此做完以後坐下來品嘗,已經是 11 點半的事情了。此外,還付出了被油和鍋子燙到的代價,不過還好相當輕微。整體來說,月亮蝦餅是一道製作簡單,但口感一級棒的『點心』。
繼續閱讀全文