2007年12月27日

找房子或許會需要一個管理工具

還記得去年這時候就為了找房子的事寫了一篇 又到了找房子的時間點了! ,但後來可能因為懶,加上去年的冬天不會很冷的關係所以最後放棄更換住所。

不過今年不一樣了,由於冬天相對較冷導致熱水器不熱的問題成了潔身自愛的一件大事,更糟的是樓上還會把抽水馬達關掉導致熱水器水壓不足而無法加熱。

所以今年非常熱衷於尋覓新住所,條件則和去年一模一樣。

然而事與願違,每一個看上的標的物老早就被人租走,於是抄電話、打電話、刪電話成了這三週來的日常作業。然後發現了不大不小的問題:不知道電話打過了沒?

也許,我需要一個工具幫我管理找房子的相關記錄!

為什麼呢?因為我不知道這個物件是不是已經被排除了?這個房東是不是有問題?

所以,我想我需要一個小工具幫我記錄找房子的過程。用啥寫呢?

Web/AJAX ?還要弄台 Web Server 真麻煩。
Java/SWING ?別鬧了,光想到要拉個畫面就沒力氣了。
Delphi ?我不會…
VB6 ?沒有裝,而且家中用的也不是 Windows 系統。
Flash?最近在玩 Flex 3,而 Adobe 又推出 AIR 平台號稱可跨作業系統(目前只跨了 Windows 及 Mac 而以),也許可以試試(可以用 wine 試試,再不然用 VirtualBox 變出個 Windows 也行)!

那麼資料庫呢?AIR 內建 SQLite ,可以實現資料庫帶著走的需求。

所以簡單列示一下需求內容,不一定會真的弄出來(找房子還是比較重要):

  1. 記錄標的物地址、種類、坪數、租金等基本資料
  2. 記錄出租人電話、姓名
  3. 記錄評估狀況
  4. 列示尚未評估及初步評估通過之標的物資訊
  5. 可記錄標的物黑名單(含出租人電話、姓名、標的物地址)
  6. 其他不知道的需求
看起來是個很浩大的工程啊… 我想… 下次再說好了!

2007年12月26日

小鼻子小眼睛的政見

其實本來是想取『期約式賄選』的標題啦,但是… 天知道現在法官對賄選的定義究竟嚴謹到什麼程度,所以只好換個標題。

大家都知道余天被民進黨徵召參予三重市立委選戰,並在三重大街小巷中掛了不少條政見布條,主題是『討黨產五好康』,其中看過的兩好康分別是『國中小營養午餐免費』及『青年免息創業貸款』。

我想說的是, 為什麼這些好康都必須建構在『討黨產』的這個高度困難的條件下呢? 我想問的是 如果討不了黨產,那麼不曉得余天先生打算如何過完當選後的四年任期?

難道立委政見就不能務實點嗎?給選民一個可見的未來會比討黨產難嗎?個人才不相信靠這種小鼻子小眼睛的條件式政見可以帶來多少選票!

當然啦,過於大氣的政見根本上也只是張芭樂票,『錢非萬能,但沒能萬萬不能』。在提出政見前請先告訴選民,執行政見所需的預算從何而來?不管是要修繕公園綠地還是打算提高就業率,請明白而正確的告訴選民『執行這些計劃的預算何來?這些計劃的衍生效益為何?』

什麼?這只是選前政見,因為尚未當選所以也還沒製作執行計劃!

你說,芭樂政見跟詐騙集團有啥兩樣?

2007年12月25日

來自中國國台辦的恐嚇信

以下是前兩天收到的一封轉自中國國務院台灣事務辦公室的電子郵件。

若信件確實由信中屬名單位共同發出,則:

  1. 加深台灣正名的意識,並在統獨光譜中往 獨立 端急速移動。(我愈來愈邪惡了… )
  2. 由信中可以推測某政黨顯然與中國共產黨有某種檯面下的默契存在,這也令人懷疑若該政黨一旦在 2008 年總統大選時勝選,那麼台灣很可能會在後續 4 年內被該政黨雙手進獻給中國。
某些可能的反應:
  1. 相信必然有某個政黨會抗議此信內容之真偽,且絕對聲稱這是陳水扁用來打擊某政黨的選舉奧步。
  2. 追查信件標頭知信件是由 美國 所發出,不過發出該郵件之主機名稱為 pulailc.hr.lj.cn ,在網路上是查不到這個主機資訊的。
  3. 基於該主機名稱之設定內容,有很大的理由相信信件確實是由中國相關人士所寄出的。
  4. 當然,為了避免某些檯面上(例如某政黨)的反彈,個人並不相信中國國台辦會承認這封信件的存在,不過以中國共產黨那種對台事務、不吐不快的情緒作為而言,弄出一份這類型的信件是非常有可能的。吾等可由他們從 1996 年以來在對台事務的應對上就從來沒有學乖過,每一次作為都讓台獨意識更加高漲。
  5. 也許某個政黨會針對內文的使用文字提出異議,因為中國官方單位使用的是簡體字但該信件內文都是繁體字,顯然不符中國的文字使用習慣,故無法認定是中國官方所為。
  6. 靠么,我就不信子彈門文宣說帖中會使用繁體中文。
  7. 如果最後有人承認這封轉寄信是他們所假造的話呢?幹!他們的政治作戰行動真是太成功了,請國防部一定要聘任他們擔任政治作戰總策劃才行。
※2007-12-25
  1. 原來這信不是只用來恐嚇我而以,網路上已有許多回應了。
  2. 有人認為是假造的,特別是針對繁體內文這部份懷疑是台灣某政黨或○國○心會所假造。雖然不反對○國○心會有可能做這件事,但以使用 繁體文字 做判別實在是太愚蠢了。
  3. 另外有許多封信件內容提到寄信者資訊,不過個人認為此類信件的寄信者資訊並無意義,找出寄信主機比較實在些。但是話說回來,進階的廣告信件代送服務商是有能力偽造寄信主機的資訊的。

2007年12月20日

13年後的小新

這是蠟筆小新故事中,13 年後的小白看小新的樣子。
其實小新是不是變成準考生並不重要,重要的是陪伴了小新 13 年的小白已近生命的盡頭。這個影片強烈且明白的提醒我們:『好好的陪陪你的寵物,也許能夠相處的日子不多了!』 上次覺得該多陪陪家裡小狗的時候,是在 再見了,可魯 之時,過年的時候我一定會好好陪陪牠!

在網路的中心呼喚可魯!

網路上總會有一些新鮮詞兒,例如當我們已含淚對可魯說再見後,還是有一堆人在呼喚可魯。

在說明為什麼要呼喚可魯前,應該先看看歷史對 可魯 的評斷。

簡單的講,可魯是一隻盡職的導盲犬,牠一定是盲人最真心的好朋友。問題是那來這麼多盲人啊?

有一種網路文章的作用是用來炫耀的。沒事去目視過太陽的人一定知道:『直視太陽會造成視力的嚴重傷害』,同樣的一篇過度耀眼的文章也會對讀者的視力造成重大傷害,此時這些人就會需要真心的好朋友 - 可魯 - 來領路,這也是網路上一堆人在呼喚可魯的真正原因!

不幸的是有時候可魯也會被閃光彈攻擊,為了避免這種情形發生我們必須立刻進行搶救可魯大作戰才是。

2007年12月13日

將郵件帳號轉到 Google Apps

最近因為懶的在下班時間收自個兒家 Mail Server 上的信件,混了很久後還是決定透過 Google Apps 服務取代自建郵件伺服器。

申請的動作其實有點複雜(指網域擁有權驗證程序),不過 Google 提供的輔助說明文件還算清楚,如果有懂一點網路慨念的話可以很迅速的完成整個申請、移轉程序。

好了,現在可以準備停用 Postfix 了!

※人愈老會愈懶,最早還有自己管理 DNS Server,後來統統交給 Register.com 及 Yahoo! 去管理,然後今天又準備把 Mail Server 給停了,那下一個交出去代管的服務會是啥呢?Blog 應該是不可能吧,原因很簡單:我懶的寫匯出、匯入工具…

2007年12月6日

牌樓升級,用處更多!

依據 大中至正2.0 [ LED的美麗 ] 的規劃,個人雙手雙腳贊成將大中至正牌樓升級,讓台灣民主紀念館擁有足以與台北 101 抗衡的廣宣媒體。

這樣要告白時就不用擔心只能被迫花 500 萬元買台北 101 的外牆廣告了。

※其實我相信女方會說:『告非,你不會把 500 萬捧來向我求婚嗎?』

2007年12月3日

是 phpMyAdmin 有漏洞還是有人想賭預設設定?

今天檢查前兩天的 Server Access Log 後發現以下這串記錄,看起來是在測試 phpMyAdmin 各系列的管理界面。不知道是因為 phpMyAdmin 被找出程式碼漏洞,還是說有人純粹想要賭看看系統管理員忘了修改預設帳密。

不管怎樣,各位使用 PHP 系統的管理員最好順便檢查一下有沒有被踹的記錄,或者順便先把來源 IP(這裡是 219.87.132.235)給封了吧!

*.*.*.* - - [30/Nov/2007:21:07:34 +0000] "GET /admin/phpmyadmin/main.php HTTP/1.0" 404 1024 "-" "-"
*.*.*.* - - [30/Nov/2007:21:07:34 +0000] "GET /admin/phpMyAdmin/main.php HTTP/1.0" 404 1024 "-" "-"
*.*.*.* - - [30/Nov/2007:21:07:34 +0000] "GET /admin/sysadmin/main.php HTTP/1.0" 404 1018 "-" "-"
*.*.*.* - - [30/Nov/2007:21:07:34 +0000] "GET /admin/sqladmin/main.php HTTP/1.0" 404 1018 "-" "-"
*.*.*.* - - [30/Nov/2007:21:07:34 +0000] "GET /admin/db/main.php HTTP/1.0" 404 1000 "-" "-"
*.*.*.* - - [30/Nov/2007:21:07:34 +0000] "GET /admin/web/main.php HTTP/1.0" 404 1003 "-" "-"
*.*.*.* - - [30/Nov/2007:21:07:34 +0000] "GET /admin/pMA/main.php HTTP/1.0" 404 1003 "-" "-"
*.*.*.* - - [30/Nov/2007:21:07:35 +0000] "GET /admin/main.php HTTP/1.0" 404 991 "-" "-"
*.*.*.* - - [30/Nov/2007:21:07:35 +0000] "GET /admin/mysql/main.php HTTP/1.0" 404 1009 "-" "-"
*.*.*.* - - [30/Nov/2007:21:07:35 +0000] "GET /admin/myadmin/main.php HTTP/1.0" 404 1015 "-" "-"
*.*.*.* - - [30/Nov/2007:21:07:35 +0000] "GET /admin/webadmin/main.php HTTP/1.0" 404 1018 "-" "-"
*.*.*.* - - [30/Nov/2007:21:07:35 +0000] "GET /admin/sqlweb/main.php HTTP/1.0" 404 1012 "-" "-"
*.*.*.* - - [30/Nov/2007:21:07:35 +0000] "GET /admin/websql/main.php HTTP/1.0" 404 1012 "-" "-"
*.*.*.* - - [30/Nov/2007:21:07:35 +0000] "GET /admin/webdb/main.php HTTP/1.0" 404 1009 "-" "-"
*.*.*.* - - [30/Nov/2007:21:07:36 +0000] "GET /admin/mysqladmin/main.php HTTP/1.0" 404 1024 "-" "-"
*.*.*.* - - [30/Nov/2007:21:07:36 +0000] "GET /admin/mysql-admin/main.php HTTP/1.0" 404 1027 "-" "-"
*.*.*.* - - [30/Nov/2007:21:07:36 +0000] "GET /admin/phpmyadmin2/main.php HTTP/1.0" 404 1027 "-" "-"
*.*.*.* - - [30/Nov/2007:21:07:36 +0000] "GET /admin/php-my-admin/main.php HTTP/1.0" 404 1030 "-" "-"
*.*.*.* - - [30/Nov/2007:21:07:36 +0000] "GET /admin/phpMyAdmin-2.2.3/main.php HTTP/1.0" 404 1042 "-" "-"
*.*.*.* - - [30/Nov/2007:21:07:36 +0000] "GET /admin/phpMyAdmin-2.2.6/main.php HTTP/1.0" 404 1042 "-" "-"
*.*.*.* - - [30/Nov/2007:21:07:36 +0000] "GET /admin/phpMyAdmin-2.5.1/main.php HTTP/1.0" 404 1042 "-" "-"
*.*.*.* - - [30/Nov/2007:21:07:37 +0000] "GET /admin/phpMyAdmin-2.5.4/main.php HTTP/1.0" 404 1042 "-" "-"
*.*.*.* - - [30/Nov/2007:21:07:37 +0000] "GET /admin/phpMyAdmin-2.5.6/main.php HTTP/1.0" 404 1042 "-" "-"
*.*.*.* - - [30/Nov/2007:21:07:37 +0000] "GET /admin/phpMyAdmin-2.6.0/main.php HTTP/1.0" 404 1042 "-" "-"
*.*.*.* - - [30/Nov/2007:21:07:37 +0000] "GET /admin/phpMyAdmin-2.6.0-pl1/main.php HTTP/1.0" 404 1054 "-" "-"
*.*.*.* - - [30/Nov/2007:21:07:37 +0000] "GET /admin/phpMyAdmin-2.6.2-rc1/main.php HTTP/1.0" 404 1054 "-" "-"
*.*.*.* - - [30/Nov/2007:21:07:37 +0000] "GET /admin/phpMyAdmin-2.6.3/main.php HTTP/1.0" 404 1042 "-" "-"
*.*.*.* - - [30/Nov/2007:21:07:37 +0000] "GET /admin/phpMyAdmin-2.6.3-pl1/main.php HTTP/1.0" 404 1054 "-" "-"
*.*.*.* - - [30/Nov/2007:21:07:38 +0000] "GET /admin/phpMyAdmin-2.6.3-rc1/main.php HTTP/1.0" 404 1054 "-" "-"
*.*.*.* - - [30/Nov/2007:21:07:38 +0000] "GET /admin/padmin/main.php HTTP/1.0" 404 1012 "-" "-"
*.*.*.* - - [30/Nov/2007:21:07:38 +0000] "GET /admin/datenbank/main.php HTTP/1.0" 404 1021 "-" "-"
*.*.*.* - - [30/Nov/2007:21:07:38 +0000] "GET /admin/database/main.php HTTP/1.0" 404 1018 "-" "-"
*.*.*.* - - [30/Nov/2007:21:07:38 +0000] "GET /phpmyadmin/main.php HTTP/1.0" 404 1006 "-" "-"
*.*.*.* - - [30/Nov/2007:21:07:38 +0000] "GET /phpMyAdmin/main.php HTTP/1.0" 404 1006 "-" "-"
*.*.*.* - - [30/Nov/2007:21:07:38 +0000] "GET /db/main.php HTTP/1.0" 404 982 "-" "-"
*.*.*.* - - [30/Nov/2007:21:07:39 +0000] "GET /web/main.php HTTP/1.0" 404 985 "-" "-"
*.*.*.* - - [30/Nov/2007:21:07:39 +0000] "GET /sql/main.php HTTP/1.0" 404 985 "-" "-"
*.*.*.* - - [30/Nov/2007:21:07:39 +0000] "GET /msql/main.php HTTP/1.0" 404 988 "-" "-"
*.*.*.* - - [30/Nov/2007:21:07:39 +0000] "GET /PMA/main.php HTTP/1.0" 404 985 "-" "-"
*.*.*.* - - [30/Nov/2007:21:07:39 +0000] "GET /admin/main.php HTTP/1.0" 404 991 "-" "-"
*.*.*.* - - [30/Nov/2007:21:07:39 +0000] "GET /mysql/main.php HTTP/1.0" 404 991 "-" "-"
*.*.*.* - - [30/Nov/2007:21:07:39 +0000] "GET /myadmin/main.php HTTP/1.0" 404 997 "-" "-"
*.*.*.* - - [30/Nov/2007:21:07:40 +0000] "GET /webadmin/main.php HTTP/1.0" 404 1000 "-" "-"
*.*.*.* - - [30/Nov/2007:21:07:40 +0000] "GET /sqlweb/main.php HTTP/1.0" 404 994 "-" "-"
*.*.*.* - - [30/Nov/2007:21:07:40 +0000] "GET /websql/main.php HTTP/1.0" 404 994 "-" "-"
*.*.*.* - - [30/Nov/2007:21:07:40 +0000] "GET /webdb/main.php HTTP/1.0" 404 991 "-" "-"
*.*.*.* - - [30/Nov/2007:21:07:40 +0000] "GET /mysqladmin/main.php HTTP/1.0" 404 1006 "-" "-"
*.*.*.* - - [30/Nov/2007:21:07:40 +0000] "GET /mysql-admin/main.php HTTP/1.0" 404 1009 "-" "-"
*.*.*.* - - [30/Nov/2007:21:07:40 +0000] "GET /phpmyadmin2/main.php HTTP/1.0" 404 1009 "-" "-"
*.*.*.* - - [30/Nov/2007:21:07:41 +0000] "GET /php-my-admin/main.php HTTP/1.0" 404 1012 "-" "-"
*.*.*.* - - [30/Nov/2007:21:07:41 +0000] "GET /phpMyAdmin-2.2.3/main.php HTTP/1.0" 404 1024 "-" "-"
*.*.*.* - - [30/Nov/2007:21:07:41 +0000] "GET /phpMyAdmin-2.2.6/main.php HTTP/1.0" 404 1024 "-" "-"
*.*.*.* - - [30/Nov/2007:21:07:41 +0000] "GET /phpMyAdmin-2.5.1/main.php HTTP/1.0" 404 1024 "-" "-"
*.*.*.* - - [30/Nov/2007:21:07:41 +0000] "GET /phpMyAdmin-2.5.4/main.php HTTP/1.0" 404 1024 "-" "-"
*.*.*.* - - [30/Nov/2007:21:07:41 +0000] "GET /phpMyAdmin-2.5.6/main.php HTTP/1.0" 404 1024 "-" "-"
*.*.*.* - - [30/Nov/2007:21:07:41 +0000] "GET /phpMyAdmin-2.6.0/main.php HTTP/1.0" 404 1024 "-" "-"
*.*.*.* - - [30/Nov/2007:21:07:42 +0000] "GET /phpMyAdmin-2.6.0-pl1/main.php HTTP/1.0" 404 1036 "-" "-"
*.*.*.* - - [30/Nov/2007:21:07:42 +0000] "GET /phpMyAdmin-2.6.2-rc1/main.php HTTP/1.0" 404 1036 "-" "-"
*.*.*.* - - [30/Nov/2007:21:07:42 +0000] "GET /phpMyAdmin-2.6.3/main.php HTTP/1.0" 404 1024 "-" "-"
*.*.*.* - - [30/Nov/2007:21:07:42 +0000] "GET /phpMyAdmin-2.6.3-pl1/main.php HTTP/1.0" 404 1036 "-" "-"
*.*.*.* - - [30/Nov/2007:21:07:42 +0000] "GET /phpMyAdmin-2.6.3-rc1/main.php HTTP/1.0" 404 1036 "-" "-"
*.*.*.* - - [30/Nov/2007:21:07:42 +0000] "GET /phpMyAdmin-2.10.2-all-languages-utf-8-only/main.php HTTP/1.0" 404 1102 "-" "-"
*.*.*.* - - [30/Nov/2007:21:07:42 +0000] "GET /phpMyAdmin-2.10.2/main.php HTTP/1.0" 404 1027 "-" "-"
*.*.*.* - - [30/Nov/2007:21:07:42 +0000] "GET /padmin/main.php HTTP/1.0" 404 994 "-" "-"
*.*.*.* - - [30/Nov/2007:21:07:44 +0000] "GET /datenbank/main.php HTTP/1.0" 404 1003 "-" "-"
*.*.*.* - - [30/Nov/2007:21:07:44 +0000] "GET /database/main.php HTTP/1.0" 404 1000 "-" "-"

2007年11月28日

今年也許該去逛逛資訊展才是

可能是因為已經遠離那個對任何資訊產品都有興趣的年紀,仔細想想,似乎已有 5 年沒去參加資訊月大拜拜了。

不過在看了 JeremY 的 為什麼要去資訊月?給你10個理由! 後開始懷疑起如果今年再不去逛一下展場的話就會造成以下後果:

  1. 拼不到經濟
  2. 找不到方向
  3. 學不會談判
  4. 搶不到贈品
  5. 撐不過考驗:除了一忍再忍外,還是只能忍。
  6. 拍不到照片:呃,其實我比較需要一個放在家裡能長久欣賞的真實 Show… woman (擺個一年後還會 Show me a child )
  7. 玩不到電動
  8. 享用不到咖啡、可樂、爆米花
  9. 聞不到香噴噴的美口鬆餅:呃,其實我對這玩意沒興趣。如果改成蔥油餅的話就.....
  10. ......

2007年11月26日

那個念念不忘的人

人啊,總會有個念念不忘的人,可能是舊情人,也可能是舊同事;可能曾經相處過,也可能只是數面之緣。

到目前為止最令我念念不忘的人是個已畢業的同事,通常我敬稱她是學姐,約 2 年前離職畢業後即不知去向而失聯至今,如有能人異士能知道其下落者,煩請透過畫面左下角與我聯繫...

基本上,我是在這傢伙要離職時才發現她的諧星天份與搞笑能力,那個印象完全與其工作中表現出來的精明幹練形象形成強烈且明顯的衝擊,這使我除了訝異外還多了點莫名的情愫,不過這絲絲的情愫也隨著她的失聯而無奈的終止....

你有沒有念念不忘的人呢?你是否知道這個人目前的狀況呢?給他一個訊息,或者來組成 Blog 尋人聯盟,一起加入尋人的行列吧!

2007年11月20日

好孩子不要學:SSH Reverse Tunnel

有時候不得以還是得在下班時間處理公務,最麻煩的一點莫過於多數的操作行為必須仰賴於公司所提供的網路環境設定。如果公司有提供寬頻 VPN 環境時倒也罷了,不過通常而言公司不會特地費心去建置一個可能很少使用的 VPN 環境。

沒得接觸內部網路就無法處理公務,在此狀況下就會有三種不同應變作為:

  1. 特地回公司一趟:長時間的作業倒也罷了,如果只是為了重新啟動一個 service 而特地跑回公司則顯的愚蠢和浪費時間。
  2. 裝死,上班後再說:是的,即然覺得為了按下一個 enter 鍵而特地回公司是件愚蠢的行為,那麼就裝死吧。
  3. 自行建立專屬 VPN 環境:通常這會違反公司網路使用規定的,但… 您知道的,網管部門不一定會特地去追蹤偶一為之的非法連線,再者透過多段轉接方式也可以避免對目標主機建立一個長期連線而被網管捕捉到。本篇將針對此法進行簡要說明。
自行建立專屬 VPN 環境的方式應該有很多種,此篇以透過 SSH Server 方式簡單加以介紹。

SSH 提供了 Port Forwarding 功能而得以建立連線通道,分別是:

  1. Dynamic SOCKS-based port forwarding:簡單而言就是一個 Sockets 5 proxy。連線方向為 本機:portSSH Server任意遠端主機
  2. Forward local port to remote address:將本機上的某個 port 對應到遠端主機所在的某個 port。連線方向為 本機:portSSH Server指定遠端主機:port
  3. Forward remote port to local address:將 SSH Server 上的某個 port 對應到遠端主機上的某個 port 。連線方向為 SSH Server:port本機指定遠端主機:port
通常為了突破網管部門所設的防火牆限制,透過 Sockets 5 proxy 是最簡單的方式,以下範例說明如何在本機的 port 1080 上建立一個 Sockets 5 proxy:
# Linux/Unix 平台
$ ssh -N -D 1080 user@SSH_SERVER

% Windows 平台,使用 plink 
C:\> plink -N -D 1080 user@SSH_SERVER

建立起 Tunnel 後可檢查 port 1080 是否進入 LISTENING 狀態:

% Windows 平台之 netstat -a 輸出段落
TCP    WS405:1080             WS405.*.*.*:0   LISTENING

如果想在本機假裝提供某項服務,那就可以採用 Forward local port to remote address 模式將遠端主機的指定 port 對應到本機上,製造出本機有提供某某服務的假象。以下範例可以達到將 Google 查詢服務搬到本機上來的錯覺:

# Linux/Unix 平台
$ ssh -L 80:www.google.com.tw:80 user@SSH_SERVER

% Windows 平台
C:\> plink -L 80:www.google.com.tw:80 user@SSH_SERVER
成果如下:

最後是重頭戲,也是本文原本的重點:如果想要建立由家裡連結到公司電腦的網路連線,那麼 Forward remote port to local address 模式可以符合這樣的需求,此方式為 SSH Tunnel 的特例,通稱為 SSH Reverse Tunnel 。

假設企業內部某主機 svn.mycompany.com 提供了 Subversion 服務,而員工 A 希望在假期時仍然可以由家裡透過 port 36900 存取到 svn.mycompany.com 主機上的 SVN 檔案庫(在 port 3690 上)時,他可以在公司的個人電腦上建立一個 SSH Reverse Tunnel,如下例:

## Linux/Unix 平台
$ ssh -R 36900:svn.mycompany.com:3690 user@SSH_SERVER
% Windows 平台
C:\> plink -R 36900:svn.mycompany.com:3690 user@SSH_SERVER
完成以上設定後員工 A 即可由家裡透過以下指令連接上 svn.mycompany.com 上的 SVN 檔案庫:
$ svn log svn://localhost:36900/projects/myProject1

最後簡單整理各種狀態的使用時機:

  1. 透過 SSH Server 連接到不定對象的遠端主機上:請使用 Dynamic SOCKS-based port forwarding 方式在本機與 SSH Server 間建立 Sockets 5 proxy 通道。
  2. 透過 SSH Server 把遠端的服務移轉到本機上:請使用 Forward local port to remote address 方式。這裡可以把 -L 的意思想成希望在 local host 上進行連線,所以 -L 後接的 port 編號指的是要在本機的哪個 port 上提供連線服務。
  3. 希望在 SSH Server 上透過 SSH 連線連接到遠端主機上:請使用 Forward remote port to local address 方式。這裡可以把 -R 的意思想成希望在 remote host (也就是 SSH Server)進行連線,因此 -R 後所接的 port 編號指的是在 remote host 上的某個 port 提供連線服務。
  4. 通常而言為了安全起見,SSH Reverse Tunnel 不應該建立在 SSH Server 的 public ip 上,所以前述的指令可以將 listening port 掛在 127.0.0.1 這個 private IP 下,如:
    ssh -R 127.0.0.1:36900:svn.mycompany.com:3690 user@SSH_SERVER
    其實經多次實驗確認,我的 OpenSSH_4.7p1 只接受在 127.0.0.1 上建立 Reverse Tunnel ,即使我想指定到 public ip 上都不行…

2007年11月19日

謝長廷兩岸政策太開放 獨派學者不挺謝?

新聞: 看法:
  1. 照目前藍綠兩派對投資中國政策的說法,我想明年總統大選時只能含淚選擇投廢票。然而可悲的是台灣的選罷法中無法對不滿意的候選人進行某種程度的制裁,不管廢票數多寡都能由相對得票數高者當選。
  2. 現今檯面上的各級政客幾乎都以大財團利益為優先考慮事項,完全不在乎平民老百姓生活所需。
  3. 目前對中國投資的最大迷思在於『經濟競爭力』被誤解為大企業的賺錢能力。他們認為只要大企業賺錢就可以拉拔台灣經濟的成長。
  4. 假設某商品單價為 50 元,在台灣製作組裝的人力成本為 15 元,其他成本為 30 元;在中國的人力成本為 5 元,其他成本為 20 元。則每賣一件 MIT 商品只能賺 5 元,但賣一件 MIC 商品卻能賺 25 元,換句話說只要能到中國設廠製作,那麼單一商品的獲利馬上就能成長 5 倍。這大概就是企業之所以前仆後繼轉往大陸設廠的主因。
  5. 表面上台灣如能開放到中國設廠似乎可以增加國際競爭力,但問題是台灣勞工的生計又如何呢?當企業都往中國設廠後留下來的台灣勞工該怎麼辦?有誰能提供他們工作讓他們得以溫飽?當勞工沒有工作、無法溫飽時怎麼可能去進行各項經濟活動?當經濟活動次數逾來前少時又怎能奢談經濟競爭力呢?
  6. 在上述問題沒能獲得答覆前,個人對於開放大陸投資問題都持嚴正反對態度。同樣的,對於謝長庭的兩岸政策除非有解決台灣勞工失業問題的配套方案,否則對於謝的 2008 總統之路也只能兩手一攤,說聲:『真抱歉,我無法支持您了!』
  7. 其實就算是台灣勞工的失業問題解決了,但一想到只要中國學習到台商的各項經營/製造經驗後,台灣還能剩下什麼足以和世界競爭的項目?

2007年11月13日

兩岸和平共處法

昨天有個半版廣告出現在各大報紙內,該廣告之所以為人注目的主因在於廣告主是聯電榮譽董事長曹興誠,廣告標題則是『 敬請 馬英九先生、謝長廷先生(以姓氏筆劃序)合作推動制定「兩岸和平共處法」,以徹底解決兩岸問題,終止國內之政治惡鬥。

看法:

  1. 就大眾的認知而言,曹董很難被歸屬在小民之類,所以該文的目的也難逃以商逼政之嫌。
  2. 想問曹董的是:『為什麼把兩岸的紛擾問題單獨丟給台灣的總統候選人去承擔』?還是說曹董也同時有一份向中共領導人的『敬請 胡景濤先生制定「兩岸和平共處法」』的公開說帖?
  3. 為什麼每次提到兩岸問題都是台灣的責任?是奴民性格對上大中原思想下的結果嗎?
  4. 至於現今台灣的主流民意是否仍然是「保持現狀」則很有爭議,甚且個人以為在整個民主意識的選項中可能根本不存在所謂『保持現狀』這種選擇。
  5. 個人傾向認為兩岸問題在排除『統』、『獨』選擇之後,剩下的選項中應以『沒有意見』為其主流。
  6. 『沒有意見』並不等於『維持現狀』,兩者的差別在於是否做出了『選擇』。『維持現狀』是 一種選擇 ,但『沒有意見』則 無法做出選擇
  7. 不知道為什麼曹董認為台灣的前途會需要由大陸人民來公投決定?況且和艦投資案應該沒有經過竹科廠商公投同意;再說我也不相信曹董要嫁娶前會先經過里民大會公投同意後才開始進行相關準備。
衍生思考:
  1. 總統候選人應以提振經濟為政見主軸而非在統獨問題上瞎攪和。要扯上統、獨議題亦無不可,但請列出對經濟成長幫助之理由。
  2. 總統候選人的政見內容應列舉執行綱要,如果口頭宣示而無實際規畫作為是無法獲得經濟成長的保障的。
  3. 台灣經濟成長並不需大量倚賴中國,個人也反對政府開放對大陸投資。請把工作機會留給台灣。
  4. 外勞開放政策也應逐步限縮,一樣將工作機會留給台灣。
  5. 似乎有些人認為台灣應朝向服務業轉型,讓製造業等得以轉而到大陸設廠。針對此點尚請開示轉型方向及可提供的工作機會數量。如果無法確認工作機會足以滿足勞方所需就別再提什麼開放大陸設廠的建議了。
  6. 至於那些偷跑到大陸投資的商人們,到大陸投資的風險請自行承擔,別老是出事後才跟政府『哭爸哭母』的。錢賺到了是你的能力,賠錢甚至賠了命則是你的運氣。

2007年11月8日

IPMF 2007 雜想

11/02 ~ 04 這三天是 GPAC ( Greater China Project Management Advancement Committee, 大中華項目管理促進會 ) 輪流在兩岸三地舉行的常態性的專案管理活動,全名為 International Project Management Forum ( IPMF, 國際專案管理論壇 ) 。

因為可以補到 PDU 學分之故,再加上 官方網站 聲稱 不必擔心可能的語言障礙 ,所以我就莫名其妙的報名參加了...

因為第一天是上班日,所以只參加第二、三天的論壇部份。以下針對這兩天的感覺進行雜亂、未整理之簡易報告:

  1. 時間的安排不佳:這其實包含兩個部份,一部份責任在主辦單位,另一部份的責任則在講者本身。
    1. 報告與報告間沒有安排短暫空檔:後果就是只要每個講者耽擱個 5 分鐘,半天下來就可以差距到 30 分鐘。事實上第一天的午餐就整整慢了 30 分鐘才開始入座、用餐。
    2. 講者沒有確認過講稿/幻燈片的報告時間:其實這才是耽誤的主因,不過前述主辦單位的小遺漏則是讓這延遲問題加重的主因。
    3. 有些講者就很厲害,我猜想他們不只是先確認過報告所需時間,甚至還可以依所餘時間長短而有不同版本的報告內容。
  2. 放飯方式不佳:這不是指第一天餓到發昏的用餐問題,畢竟還是同時開動。這裡所不滿的是第二天因為分場差異的關係導至我參加的那個講場結束進餐聽時,菜色都已上了一半了。我想你應該可以感受到那種半路加入人家已掃過好幾輪的用餐團體就好像去撿菜尾的感覺一樣,如果說能有什麼不同的話,就只有那菜尾是晶華飯店煮的而以。對於第二天的用餐感受,我只有『不受重視,不被在乎』這八個字回敬給晶華飯店及主辦單位而以。
  3. 總是有工作人員在旁邊閒晃:閒晃不是重點,重點是她們穿的硬底鞋根會在堅硬的地板上會產生 ko ko ko 的聲響,嚴重干擾聽講的情緒。
  4. 對於時間的掌控方式:通常講場上會有專人負責舉牌提醒時間將屆,但一來人員走動可能干擾到聽者的注意力;再者人員在更換提醒牌的時間總是超過預定的時間(先舉 5 分鐘牌子一分鐘,回去休息 2 分鐘,再拿 3 分鐘牌子出來舉一分鐘,再回去休息 3 分鐘,最後拿 時間到 的牌子直到報告結束,實際上的時間至少是 1+2+1+3=7 分鐘)。總覺得此作法即不能精確協助講者進行時程管控,也經常干擾到聽者的情緒。個人是建議要不要考慮以後直接在講場後方擺上兩台倒數計時器,一方面給講者明確的時間資訊,另方面又免於有人總是一臉尷尬的拿著牌子在會場上移動。
  5. 參加 Focus Group 會議:這主要是 PMI 針對 PMP/PgMP 行銷活動需求所做的一個小小的聚會,除了對文宣的看法外主要是詢問現任 PMP 對 PDU 的一些看法。以下是可能有記錯的問題:
    1. PMP 認證對所屬企業的重要性:嗯,所有人一致通過『不重要』!個人認為這應該是這梯次的與會者都已工作一段時間,對所謂的證照已不再存有幻想的結論。至於其他梯次是否有所差異就不得而知了。
    2. PDU 取得的難易看法(即 CCR 持續認證要求計畫):基本上不難,但是希望 PMI-TW 能在官網上公告可以取得 PDU 的各項課程資訊。這個問題後來衍生一個疑問:對於資深 PMP 在取得 PDU 上會不會有什麼困難之處呢?我覺得會有,但 PMI 官方大概會以 PDU 取得方式多元,理當不會有何窒礙難行之處作為回應。另外,我會後又跑去找主持人(來自 PMI Asia Pacific Service Centre)提議 CCR 對其他專案管理認證轉成 PDU 的可能性,畢竟重點是持續性的學習,若能給點甜頭理當更容易激勵整個學習活動。
    3. 會不會在乎 / 持續維持 PMP 資格:有人似乎不怎麼在乎,不過我很在乎!為什麼?因為我懶的去解釋為什麼是前任 PMP 而不是現任 PMP 這種問題。
  6. PMP 企業標竿獎:記得已有人對此獎的評分方式提出過意見,我則是在現場時才後知後覺的感受到問題。
    1. 此獎項是以企業內部具 PMP 資格的人數為評量依據,但是我會更想知道有多少 PMP 是真正從事專案管理工作呢?個人悲觀的認為在台灣的 PMP 中真正從事專案管理工作的人數可能只有一半而以,剩下的就像我這種想轉型但沒人要的苦命小工程師。個人是覺得這個獎項至少要再增加一個『 企業內專案經理中取得 PMP 認證的比例 』的評量依據進行加權計算後會比較具有代表性。
    2. 以 PMP 人數為評量依據的另一個問題是『 企業真的有依據 PMBOK(不限 PMI 版本,其他如 IPMA 版、Project+ 版等都可)進行專案管理嗎? 』頒獎會上沒有提到,所以我也不知道。
  7. PMBOK 的念法:在兩天的論壇活動中聽過以下的唸法,似乎沒有統一讀法?另外國內各專案管理組織應該儘速向眼睛博士之類的線上翻譯字典提出收納本字的申請才對。
    1. P.M.bok
    2. P.M.bʌk
    3. pim.bok:其實把 PM 念快點、圓滑點就是 pim 了!
    4. pim.bʌk
  8. 沒有 IPMF 永久官網:聽說今年的 IPMF 2007 是第三年舉行了,但是從 Google 上去找卻發現並沒有一個官方的、專屬的、永久的網域名稱。希望 GPAC 能決議出一個官方網域出來,不要每年改一個新名字出來混淆視聽。專案管理不是一直在講要 Lessions Learn 嗎?為什麼這些例年來的論壇記錄都沒有保存下來哩?回頭看看 ipmf2007.org 到了 2008-06-15 後也會失效,總有一種主辦單位似乎並不想讓這些活動記錄被長久保存的感覺。
  9. 有股練習英聽的衝動:即時翻譯只限於主場活動時才提供,分組報告時沒有。雖然不致於統統聽不懂,但對於學習的成果必然有所影響。也許看影集該改成看英文字幕比較好?
  10. 這個論壇畢竟是 GPAC 所主辦,參予對象應該也是以華人為主。但是除了 VIP 外似乎還有許多的自力與會的外國朋友。不知道他們大後年還會不會跑來台北參加 IPMF 2010 論壇?
※即然網域名稱會過期,我只好把提到的頁面存一份下來備查。

後記:

  1. 這次的大會我使用了 Ada Hsu 作為名牌上的識別名稱,後來發現這樣很容易在網路與現實之間產生連結,與個人低調的態度不符(怕幹壞事被捉到?)
  2. 日後再參加的各項會議應該會掰另一個名字出來吧,讓網路的歸網路,現實的還給現實。

2007年11月5日

台北車站前的混亂交通

昨天參加完 IPMF 2007 後搭捷運由中山站回到台北車站前打算轉公車回三重,每次到台北車站忠孝西路這邊時總有同樣的感覺:這是個最不受台北市政府重視,卻又是台北市交通問題最嚴重的地方。

昨天最經典的畫面是 外車道被空計程車佔據,公車被迫在內線車道處放乘客下車

這算是特例嗎?

不!如果我每次想在那邊轉乘時都會發現空計程車努力卡死在外車道上攬客;公車都得進行大角度進站、離站動作的話,這必然是種常態而不是特例,即然如此,也不曾見過台北市政府針對此問題進行回應,一樣放任空計程車在公車站牌前違停,一樣忽視公車找不到車位造成乘客上、下車的不便,要說台北市這幾年有什麼改善的具體政績,似乎… 想不出來吧?

麻煩台北市政府好好想想怎麼處理台北站前忠孝西路的交通問題,讓公車乘客有個更良好的上、下車空間(其實市民大道那邊也一樣一堆計程車在卡位,同樣是亂啦)。

問題分三方面:

  1. 計程車違停:台北市交通局要不要考慮把公車專用道改成計程車專用道,並且限制計程車只能走該車道呢?
  2. 私人轎車違停
  3. 公車找不到地方給乘客上、下車:是不是調整一下站牌位置,在站牌兩側之任一邊設置一個私人轎車接送區呢?

厚,黑心網頁!

今天一如往常,慣例的在 HiNET 線上繳費頁面上重覆確認繳費動作是否完成,沒想到出現了一個以前沒看過的訊息:『本公司帳務資料庫目前無此輸入資料組合( 022xxxxxxx、Pxxxxxxxxx )的相關欠費資料。』

咦?以前都只會顯示『目前無欠費記錄』的訊息啊,怎會改成這種莫名其妙的回應訊息啊?

一時手賤給他輸入門號但刻意將證號部份留白,然後系統竟然回覆 請輸入『用戶證號』。

喂,這明明和你們網頁上的說明不符啊?

我一定來到了黑心網頁了....

2007年11月2日

Javascript 中正規表示式的小問題

前兩天為了實作關鍵字濾除的需要,所以又把正規表示式搬出來用。

一開始的想法是建立一個關鍵字表示式陣列,然後在實際檢測時丟進這個陣列中整個 test() 一遍即可,這樣做似乎沒有問題,但實際使用時會發現除了第一次的檢測一定正確外,之後的檢測動作卻會時有時無,讓人疑惑。

於是懷疑可能是一個正規表示式物件一定進行過 test() 之後就會處於某種失效的狀態,只要在這種狀態內的各種比對動作都會不正常。

所以,解決的方式就是每次比對後都要記得重置表示式物件,如下例:

var keywords = { '關鍵字1', '關鍵字2' };
var re = new RegExp();

function hasKeywords( content ) {

for( i = 0; i < keywords.length; i++ ) { // 重置表示式物件 re.compile( keywords[i], 'ig' ); // 測試是否符合 if( re.test( content ) ) { return true; } }

return false; }

2007年10月31日

一些 Windows XP 下無人值守的軟體安裝命令稿

提到製作 Windows 無人值守安裝光碟,難免得面對光碟空間不足的問題。

為什麼會有這種問題?只能說即然都做無人值守安裝光碟了,那如果不能把相關 Hotfix 及常用軟體塞進去的話就不能稱做 專業 人員(真無聊的堅持)!

為了避免衝擊波事件重演,因此 Hotfix 的部份被列為必要安裝且必須直接由光碟內提供,這部份 50 個更新程式總供佔去了 85MB 空間。事實上加上這部份後,XP SP2 光碟的可用空間就剩不到 100MB 了(原裝 SP2 光碟大概用了 600MB 的空間,但是我把原光碟內附的 .NET Framework 及 ValueAdd 兩個目錄砍掉後,要了 50MB 回來,所以最後是以 700 - 550 - 85 = 65MB 為光碟尚可利用空間 )!

那麼來看看常用的軟體清單好了:

  1. AcrobatReader:Acrobat Reader 7 中文版好像要 26MB 空間。
  2. FSViewer:看圖軟體,這個要 2.5MB 空間。
  3. Macromedia Flash Player:給瀏覽器用的 Flash Player,這好像要 6MB 空間。
  4. AntiVir:免費的防毒軟體,這要 9MB 空間。
  5. FileZilla:FTP 用戶端軟體,約要 3.5MB 空間。
  6. MediaPlayer:微軟的 Media Player 10,這要 12MB 空間。
  7. SnagIt:螢幕捉圖軟體,試用版可以 30 天,超過時限後會要求註冊。檔案大小為 14MB。
  8. Firefox:超方便好用的瀏覽器,這要 5MB 空間。
  9. MyMPC:多媒體播放工具,壓縮前佔 30MB,壓縮後佔 20MB 空間。
  10. WINRAR:解壓軟體,這好像不足 1MB 空間。
  11. FlyakiteOSX:仿 Mac OSX 操作界面外掛工具,這有 30MB 空間。
  12. JournalViewer:Windows 的筆記本檢視器,這是為了支援 MSN 可以做手繪聊天而裝的。這個要 7MB 空間。
  13. PSPad:免費的文字檔編輯工具,還支援 HEX 編修功能。這佔了 3MB 空間。
  14. DaemonTools:光碟模擬軟體,這只佔用 1MB 空間。
  15. Fonts:五套免費中文字體,8.9 + 5.2 + 10.0 + 11 + 7.5 = 42.6MB 空間。
  16. MSNMessenger:大家都愛用的 MSN 囉,這佔了 9MB 空間。
上述這些軟體的容量加一加後,需要 190MB 的空間,而安裝光碟中跟本沒有足夠的空間(只剩 65MB)可以容納這些檔案。為了解決這個問題我選擇使用下載方式,在安裝過程中直接從各官方網站下載後再行安裝。

最後除了 Firefox (要做調整才能自動安裝)、MyMPC(這是下載空間的因素)、WinRAR 及 DaemonTools (加起來不超過 2MB)外,其他軟體都採用下載安裝檔方式辦理。這樣也可將光碟空間佔用量減少到 30MB 不到(還有 30MB 可以容納 HotFix ),絕對可以輕輕鬆鬆的放進光碟中。

不過將 WinRAR 直接收進光碟中其實還有另一個原因:許多軟體為了減少傳輸時間都做了壓縮處理,先讓系統安裝 WinRAR 後才能對這些壓縮檔進行解壓程序。(不過因個人有註冊這套工具,所以不清楚在未註冊前會不會因為出現 WinRAR 版權宣告頁面而導致無人值守作業必須派人留守!)

在使用命令稿之前請先完成以下準備作業:

  1. 安裝兩個工具程式:
    1. WinRAR:請裝在標準路徑( %PROGRAMFILES%\WinRAR )下。
    2. WGET 1.10.2 for Windows:下載後直接丟到 %SYSTEMROOT%\system32 或 PATH 指定的目錄下即可自動叫用。
  2. 解除防火牆對 WGET.EXE 的限制:所有的命令稿都是透過 WGET.EXE 完成檔案下載動作,若被封鎖的話就玩不下去了。
  3. 記得設定 %TEMP% 環境變數:雖然這是 Windows 會自動建立的環境變數,但有些人可能會將其移除。所有的軟體都會先下載到 %TEMP% 指定的目錄下進行解壓、安裝等程序後,再自動刪除掉。
命令稿清單:
  1. AntiVir 防毒軟體:InstallAntiVir.cmd
  2. FileZilla FTP 用戶端軟體:InstallFileZilla.cmd
  3. FlyakiteOSX 仿 Mac OSX 操作界面外掛工具:InstallFlyakiteOSX.cmd,請將 FlyakiteOSX.rar 解壓至某目錄即後點選 InstallFlyakiteOSX.cmd 即可安裝。若想要完整安裝者請自行移除目錄下的 FlyakiteOSX.ini 檔即可。
  4. Fonts 五套免費中文字體:InstallFont.cmd
  5. MSN Messenger 7.5:InstallMSN.cmd
  6. Macromedia Flash Player:InstallMacremedia.cmd
  7. Microsoft Media Player 10:InstallMediaPlayer.cmd
  8. Acrobat Reader 7 中文版:InstallPDFReader.cmd
  9. PSPad 免費的文字檔編輯工具:InstallPSPad.cmd
  10. SnagIt 8 螢幕捉圖軟體:InstallSnagIt.cmd
  11. Windows 筆記本檢視器:InstallViewer.cmd
  12. Rainlendar 桌面行事曆工具:Rainlendar.rar,請解壓到某目錄下後執行 InstallRainlendar.cmd 即可(命令稿會自動安裝中文相關資源,但必須透過 Rainlendar.ini 檔以切換成中文模式)。
更新記錄:
  1. 2006-02-08:修復 InstallFileZilla.cmd 連結錯誤問題!
  2. 2006-02-08:調整 FlyakiteOSX 的官方下載連結!
  3. 2006-02-09:抱歉,再修改 FlyakiteOSX 安裝參數大小寫錯誤問題!
  4. 2006-02-22:因系統效能考慮,修改 FlyakiteOSX 安裝程序僅針對佈景方面進行修改不再安裝附屬 Dock 等軟體。
  5. 2006-02-22:新增 Rainlendar 桌面行事曆工具安裝檔。
  6. 2007-10-31:加入 Adobe Reader 8 安裝命令稿,待測!

2007年10月30日

Java 怎麼判斷檔案的 ContentType/MIME-Type, Part II

Java 怎麼判斷檔案的 ContentType/MIME-Type 一文中我們談論到了兩種 Java 用來檢測檔案類型的方式,當時為了保險起見我使用了 JMimeMagic 這個套件庫。

然後前兩天看到有個 bmp 檔想要下載,結果 JMimeMagic 噴出了一大串的例外訊息,大意是指它檢查了半天後發現其實他不認識 bmp 這類的檔案,所以只好傳了一個 null 回來。

這真是令人訝異啊,沒想到最早期的 bmp 檔竟然會不被 JMmieMagic 所認識?問題雖然很嚴重但還是得馬上進行緊急修改:只要發現 JMimeMagic 傳回 null 時就塞 application/octet-stream 就算解決了問題。但這終究只是暫行方案,最好的方式還是想辦法識別出檔案真正的類型比較適當。

所幸在原文中所提到的參考網站中又新增了第三種檢測方式:使用 Mime-Util 套件庫。它和 JMimeMagic 都是透過識別檔案特徵的方式進行檢測、判別。

使用的方式不需要做太多預先設定,只要直接把待測檔案路徑丟進去就行了,如:

File myFile = new File( "./test.bmp" );
/* 
 * 雖然 MimeUtil.getMimeType() 可以直接傳入 File 物件,但是
 * 不知何故在 Tomcat 5.5.23 at Fedora Core 6 with JDK 1.5 
 * 的環境中會失效。改成直接傳入檔案路徑後即可正常進行檢測。
 */
String contentType = MimeUtil.getMimeType( myFile.getCanonicalPath();
System.out.println( contentType );

最後,在我的機器上不管是 IE6 還是 Firefox 2 都無法直接開啟 .bmp 檔,這… 我不太相信會這樣,該不會是到了系統重灌的時候了?

2007年10月29日

不願面對的決定

酪梨壽司 在他 RE: 部落格終極發問指南 一文中提到: 攤開手心看答案前,你期待的是哪個選項?那通常就是心裡真正想要的。

所以說許多時候我們都早就有了某種決定,只因為恐懼失敗、害怕失去的關係讓我們不願或不敢去面對自己的選擇。

只是,自己的人生終究只能由自己負責,逃避決定並不是個可長可久的辦法。我想只有先做好最壞的打算,並抱持著最好結果的可能後才能直正面對心中真正想要的決定。

※話說回來:

  1. 其實前面那串屁話都只是旁人不負責任的發言而以。
  2. 所以說對他人某些人生抉擇問題的最佳對策或許是本格開宗明義的政治主張:『 不知道、不清楚、不瞭解、不明白、沒有意見!
  3. 不過像這類問題或許會有另類的回答:『 選擇沒有好壞,但是悔恨將永遠伴隨!
  4. ...... 為什麼會覺得一整個完全不知所云呢?

2007年10月24日

在WiMax論壇上遇見Eee PC的對手!

來源: 看法:
  1. 其實個人打一開始就對 WiMAX 的存在價值感到懷疑,主因還是在 WiMAX 有什麼 WiFi/3.5G 達不到或難以達成的殺手級服務?
  2. 如果 WiMAX 想做的 WiFi/3.5G 雖然都能做到,那麼 WiMAX 有保證最低價服務嗎?
  3. 另方面目前 WiFi/3.5G 乃至於 WiFly 等有什麼服務是不用也好,但用了更贊的服務嗎?看來沒有,現在無論怎麼看覺得現在的情形比較像是用了也好,不用也無所謂的情形。當然,把 3.5G 拿來突破企業網路封鎖是個殺手級應用,但這不能算是一種服務。
  4. 拿來上網看 YouTube 影片?呃… 這只能算是休閒吧?休閒的意思就是用了還好,不用也不會怎麼樣!
  5. 有人認為 WiMAX 可以用來取代 ADSL 甚至光纖網路通訊的固網服務,然而除非價格夠低,否則要取代 ADSL 是有其難度的。
  6. 然而在評斷 ADSL/光纖/WiMAX 服務費用時大概不會考慮 CBR ( Cost Benefit Ratio, 成本效益比,常稱的 C/P 值應為誤植 ),所以拿 WiMAX 頻寬較高作為拉高價碼的定價方式並不可行。用戶只會評估在可以接受的網路頻寬下的最低花費是那一種服務平台而以,何況這些固網業者也不是沒有價格戰的本錢。
  7. 再者這些已經搞了一陣子的無線網路傳輸服務都到目前為止似乎還找不到啥殺手級應用,那 WiMAX 究竟有什麼優勢能引發一堆廠商/電信公司爭相投入呢?
  8. 至於 JeremY 提到目前廠商心目中的殺手級應都有點脫離現實的看法,感覺上那好像是個常態。不過我們的評估立基點與廠商不同,有時也很難說廠商的發展方向不符實際需求就是了。
  9. 嗯,不過那個行動歡唱服務應該只能吸引遊覽車業者而以吧...

2007年10月20日

宅男大主廚,真是遜!

最近因為 型男大主廚 料理節目的關係,讓不少人覺得其實做料理也不難,本人則在該節目的薰陶下開始願意在湯料理(明明只是什錦鍋而以)之外付出更多的努力以便能吃的更為精緻。

基本上不管是男的還是女的,公的或是母的,能夠自行煮食應該屬於個人基本技能才是,無奈現在許多人都不再下廚,這種改變究竟讓生活變的更豐富還是更貧寂或許是個可以討論的議題。

簡單記錄一下到目前為止的挑戰情形:

  1. 炒空心菜:空心菜其實不難處理,只是前置的清潔工作麻煩很多。至於炒空心菜最常發生的情形則是忘了加鹽巴…
  2. 香煎秋刀魚:雖然魚都有熟,但是...
    1. 第一次把魚截頭去肚,不過看到那堆魚肚內的東西後就…
    2. 第二次則未特別處理魚頭、魚肚,但真正要吃的時候反而怕吃到那些髒東西…
  3. 煎香腸:其實每次我都無法確定香腸熟了沒,但可以確定的是下次絕對不可以買什麼蒜味香腸,蒜味來源還是要生蒜頭才有那種口感、刺激感。話說回來,昨天生食蒜片的結果是眼屎鼻涕齊飆,辣到只剩下胡言亂語。對了,每次開始食用香腸前我可是都有做好隔天拉肚子的心理建設喔!
  4. 魯肉:這是目前最失敗的成品之一
    1. 因為我搞錯醬油、水的比例,不幸放了 2 碗醬油和 3 杯水,最終還是鹹死人不償命。
    2. 為了處理這鍋魯肉,縱使拿來配飯、配麵線,仍然是過度攝取 Na 離子。
    3. 現在考慮倒掉魯湯部份重新用正確比例再魯一次,即使肉可能會太老也好過 Na 中毒。我在想下次醬油和水的比例就訂在 2 湯匙醬油配 3 碗水好了。
  5. 炊煮白飯:有次忘了在電鍋外鍋放水,還好內鍋的水不小心好像看的稍微多些,最後還是勉強煮出一鍋飯。
    1. 第一碗:淋了前面那鹹到死的魯肉湯後,另外配了一大杯水解決了。
    2. 第二碗:拿去弄泡菜炒飯,可是不知道是不是另外加了辣醬(魯味中附的)還怎樣,最後只剩下麻辣感。
    3. 第三碗:這次拿來弄蛋炒飯後確定白飯的煮法錯誤,發現這次白飯的確很失敗!米心太軟,太溼。
下個挑戰:
  1. 雖然一直在努力做好準備,但媽媽說絕對不可以想搞啥香煎白鯧魚,那是浪費食材的惡劣行為。
  2. 啊,來研究高麗菜飯怎麼弄好了。
結論:
  1. 果然是『宅男大主廚,真是遜!』
  2. 還好,對於這些成果只需一人做事一人擔,即然沒有女朋友就不必害怕有無辜第三者因 Na 中毒而陣亡。
  3. 令人傷心的則是當自己 Na 中毒時不會有人在旁邊呵護看顧,這實在是宅男的一整個寂寞啊。
  4. 咦?型男大主廚有出 食譜 耶!來買本參考參考好了。
  5. 生活好料理食譜 有一些食譜和好料的介紹。
  6. 珍愛食譜 有超完整的型男大主廚料理介紹。
  7. 咦?原來阿基師也有出書啊,那… 一併訂購好了...
※2007-10-20 補充:
  1. 前面提到用魯肉拌麵線的事,其實一開始的計畫並不是用來拌麵線的。
  2. 真正的目標本來是麵線糊,一種把白麵線煮成糊狀後,淋上魯汁的北港在地料理。別的地方似乎未曾聽聞,雖然可能有些地方把蚵仔麵線之類有勾芡之類的麵線料理也稱為麵線糊,但我認為勾芡的方式比較像是麵線羹而非麵線糊。
  3. 另外約兩年多前全家便利商店則曾經推出即食包(和擔仔麵之類的包裝相同),但似乎因為銷路不佳,只出現一下子就不見了。
  4. 為什麼後來沒有按計畫弄成麵線糊呢?因為… 要把麵線煮成糊狀的時間比想像的還要久… 我又因為太餓的關係於是臨機應變弄成乾拌麵線之類的方式啃了它!

2007年10月17日

光華新商場

消息來源: 看法:
  1. 呃,這種施工品質…
  2. 有人有原始設計藍圖嗎?原始設計就是這副歪斜的模樣嗎?
  3. 好奇的是原本那些光華商場的店家願不願意進駐呢?
  4. 我是不會踏進那棟大樓了,反正未來買電腦有很大的機會是買品牌電腦… 再不然也還有 Nova 可以去逛...
  5. 唉,這個『他,馬的』候選人倒底要毀掉多少台北市民的記憶才甘願呢?
※2007-10-17 補充:
  1. 今天看到一篇針對此事件的反應:[有趣] 歪掉的新光華大樓!? 別鬧笑話了!
  2. 其實若要反駁光華大樓是否有所歪斜、原文是否有什麼政治意圖之類的,那麼該作的絕對不是拿別張照片來解釋所有的建築物在照片中看起來都是歪的。
  3. 想要檢視該文是否有蓄意污衊『他,馬的』的方法是到現地進行垂直度檢驗(不知道正確稱呼)以瞭解是否真的有施工不良的情形。
  4. 但是話說回來,搞不好原始設計藍圖就是參考過比薩斜塔,這需要監工單位提出證明。
  5. 至於個人為什麼未到現場實地勘察過就跟著聯播該文呢?因為該文中從東南角拍攝的照片中央的大樓部份與畫面前方的欄杆對照之後的確看的出有點夾角。這角度也許不大,但它卻看的出來。
  6. 不過話說回來,徐佳青議員的現地勘察似乎也未針對此點做驗證?

2007年10月9日

舉行一場有效的會議

最近公司因為一項大型計劃的啟動,帶動了各項子專案鋪天蓋地、綿綿不決的會議地獄。

參加會議原本不是什麼壞事,但如果會議過程註定是『會而不議、議而不決』時就令人厭煩甚至抗拒了。

這兩週中所參加的會議數不少,平均而言會議品質實在令人無言與無奈。當我冷眼旁觀著他人似跳樑小丑般會議表現時,開始思考著如果這個會議是我所召集的話,我要怎麼辦才能有效率的進行會議並取得所期望的成果?

就個人感覺,會議的目標在於決定議題的進行方式,但其最終的目的則在於 讓議題用自己所期望的方式去進行,但是責任需由大家一起來承擔。

這樣講好像很不負責任?

為了讓議題儘量依自己所期望的方式去進行,會議前的準備動作便不可少。但要準備什麼呢?準備各議題的可行方案及建議最佳方案資訊,理由如下:

  1. 避免議題被過度聯想而失焦
  2. 掌握議題主導權
還記得當幕僚時第一次召開某某會議(會議主題忘了,印象中只剩下被罵的狗血淋頭的記憶而以)時,我天真的以為所謂的開會就是把可能需要討論的問題全部列出來,然後一個個點名與會人員請他們提供意見。結果呢?所有與會人員只有面面相覷而且完全提不出任何可行方案或看法,就這樣冷場十分鐘後營長生氣了,直接沒收該場會議並把我叫去營長室立正站好聽訓廿分鐘...

這是怎回事?因為我搞錯了會議的目的了。我原以為所謂的討論就是要一堆人坐下來從無到有,針對議題漸次取得共識,但這種誤解正是會議冗長、無效率的成因。為什麼?因為放任議題討論的結果只會衍生更多議題並產生更多的選擇,而當選擇變多時就難以取得共識,無法取得共識時就會造成爭執,一旦會議開始爭執時就更難以產生共識。如此循環,難以善了。

所以,在會議開始前針對議題做好可行方案評估及最佳方案建議可以避免議題陷入無止盡的討論黑洞中。當然軍中的會議模式本來就比較單純,在單位主官的主持下其會議重點在於分配執行方式,整個會議時間通常可在 20 ~ 30 分搞定,程序大致如下:

  1. 說明會議目的
  2. 簡述各項可行方案
  3. 簡述最佳方案之理由及分配執行方式
  4. 意見反應與確認
  5. 長官裁示
  6. 散會
企業內的狀況除非是大案子,否則一般的會議通常不會有共同主管的參與,所以會議的重點變成在取得與會單位的多數認同(說服一個主官比說服一堆人容易多了)。最直覺的方式當然是針對可行方案評估的部份做些手腳,加油添醋或蓄意隱瞞(別太過份以免日後出包難善了)某些訊息時還能將議題的主導權握在手上,讓議題能在多數認同的情形下以對自己負擔最輕的方式進行。

可惜被賦予重任的單位不見得會接受這種多數決的情形,所以讓會議得以有效率的進行最好有上級共同主管的與會為佳,讓主管得以當場立即裁示以避免重覆舉行第二次會議,比較傷腦筋的可能是上級主管或認為不是啥重要事項,或誤判下級單位互相鬥爭的嚴重性而不見得能場場與會,那又是另外一個問題了。

也許各企業都有其會議效能不彰的理由,本公司最大的問題則在於承辦單位未能事先做好可行方案研究,當然最常看到的會議過程就是『立場各自陣述、議題自由發揮、結論互不相讓』。

至於會議召集人未能確認各組會議間的優先順序導致會議期間重覆的做出『待其他小組確認』的議題結論,這又是另一個浪費與會人員時間的超級密技。不知道老闆看到他花錢請一堆人聚在一起閒嗑牙會有啥感想?

※對了,附帶一提本部落格奉行的三胡宗旨:胡思亂想、胡言亂語、胡說八道。

※2007-10-14:如果你是與會人員

  1. 來來來,喲哪桑現在更進一步的告訴我們:當我收到會議通知時 可以怎麼做。
  2. 喲哪桑說的很對,很多會議召集人奉行 責任大家扛的教誨 ,所以會經常性的搜集與會名冊並廣發會議通知,完全不會考慮與會人員的合理性。
  3. 所以不要被通知與會後就傻傻的前往赴會不只可以減少會議的次數,還能有效避免莫名其妙擔責的可能性。
  4. 當然啦,如果您像我一樣只是個小腳色的話,那… 至少在會議過程中禁言或許得以免於莫名其妙增加工作的情形…
※2007-10-14:如果你是會議召集人
  1. 如果你希望能畢其功於一役,不願意在同一個議題上重覆投入開會時間,那麼光是準備會議 Agenda 是不夠的。
  2. 會議的進行應該只有選擇題而非申論題,所以除了會議的 Agenda 外你更需在會前對各種可行方案中做好評估,會議進行過程中才不會被一問就倒。
  3. 一旦你被問倒了,那十之八九得準備第二次會議。
※ 2007-10-19 額外補充:
  1. 資策會經常性的針對『跨部門溝通與異議掌控』開班授課,也許可以花點錢去試試看。
  2. 另外,上面這門課有附贈 12 個 PDUs 喔!
※2007-12-23: ※2008-02-01:

2007年10月8日

咦?來自手機的網頁蜘蛛?

今天檢視 Blog 的記錄時發現一個新的 Web Crawler ,應該是來自 Nokia6682 的神鞭平台,如下例:
69.147.79.136 - - [05/Oct/2007:19:18:14 +0000] "GET /ada/space/Political/2004-05-12/1 HTTP/1.0" 200 29379 "-" "Nokia6682/2.0 (3.01.1) SymbianOS/8.0 Series60/2.6 Profile/MIDP-2.0 configuration/CLDC-1.1 UP.Link/6.3.0.0.0 (compatible;YahooSeeker/M1A1-R2D2; http://help.yahoo.com/help/us/ysearch/crawling/crawling-01.html)"

查了一下 IP 似乎是來自 Yahoo! 美國總部所在地的樣子,是因為聽到我想禁止 Slurp 來捉資料的關係呢?還是 Yahoo! 有新的服務要推出了?

2007年10月5日

菜瓜食用後遺症

上週日在松青買了根菜瓜後便依計畫分成兩餐食用,只不過一個不小心這兩餐之間的間隔稍微長了些,約 36 小時。

為什麼強調 36 小時呢?因為剩下的菜瓜在經歷了六六三十六小時的能量累績後,它大幅的纖維化變成了傳說中的準菜瓜布,而把它吃下肚的我則因攝取了充足的纖維質後只能經常性的在坐馬桶上嘆氣。

也許,我印證了多吃纖維質可以防便秘的醫學建言了!

唉…

砍站新利器 - wget

想把一個網站整個 dump 下來不一定要有什麼特殊的工具,很可能每一套 Linux 發行套件預裝的 wget 工具就可以達到砍站的目的。

不信?請看:

220.248. ==> 5708
--------------------------------------------------
220.248.150.138 - - [04/Oct/2007:05:48:17 +0000] "GET /ada/space/start/2007-09-07/1 HTTP/1.0" 200 53612 "-" "Wget/1.10.2"
220.248.150.138 - - [04/Oct/2007:05:48:17 +0000] "GET /robots.txt HTTP/1.0" 200 299 "-" "Wget/1.10.2"
220.248.150.138 - - [04/Oct/2007:05:48:19 +0000] "GET /ada/space/snipsnap-index HTTP/1.0" 200 56913 "http://blog.t-times.net/ada/space/start/2007-09-07/1" "Wget/1.10.2"
.................... (餘 5xxx 筆省略)....................

嗯,那天也來實驗一下好了....

2007年10月2日

學習正規表示式

正規表示式,原文為 Regular Expression (RE),簡單的說就是一種用於字串配對及代換的表達方式,比較常聽到的譯名還有正則運算式、正則表達式、正規表達式等等,它們指的都是同樣一件事。

正規表示式能幹嘛呢?它能讓使用人員快速依據某種規則比對出所需特定式樣的字串資料,甚至對該特定式樣進行加工處理。對於一個經常處理大量字串資料的使用者而言,學會這招可以讓工作進行的更輕鬆。

要怎麼入門呢?可以在 Google 上搜尋 半小時精通正則表達式 可以找到相關說明,例如藍色小鋪 - (轉載) 半小時精通正則表示式

看完上述介紹後,此處以文字編輯器 PSPad 為例子簡單示範正規表示式可以讓人輕鬆的處理大量的文字資料。以下是某公司大台北地區的客戶電話原始資料:

12345678
23456789
34567890
45678901
56789012
67890123
78901234
89012345
90123456

啟用正規表示式的方式:

  1. 點選替換功能,搜尋功能支援正規表示式:
  2. 必須啟用正規表示式模式才會解析正規表示式指令:
操作範例:
  1. 將所有的市話號碼加上長途冠碼:

  2. 為了方便識別,將電話號碼格式改為 (02) 9999-9999:

註:一般而言在做子匹配時會以 \1 ~ \9 做為匹配結果的替代變數(稱為標籤陳述式),但還有另種以 $1 ~ $9 為格式的標籤陳述式,PSPad 使用的是這種型式。

以上範例或許因資料量不多難以看出使用正規表示式的效益,但只要稍微想像一下如果這些資料只要成長到 10 倍 100 筆資料後即可發現使用正規表示式真的可以增加工作效率且還能避免人為修改時的錯誤。

還在加班改隔日會議上使用的資料格式嗎?快點來學正規表示式,讓資料在彈指間重整成所需的格式吧。

2007年10月1日

關於無名小站的自宮行為

今天最熱鬧的消息應該要算是無名小站故意禁止其他搜尋引擎搜尋其站內文章的事了:
  1. 破月的紅軍:Yahoo! + 無名小站 濫用市場地位、排除其他搜尋引擎 ?
  2. Blog.XDite.net:欲練神功,揮刀自宮!( Wretch ban 掉所有搜尋引擎)
  3. Gea-Suan Lin’s BLOG:無名小站的 robots.txt
  4. 永遠的真田幸村:不只是無名小站的Robots.txt排除其他搜尋引擎,Yahoo知識+、新聞也是
對於這件事情,本人的的反應似乎較為不同: 我好想禁止 Yahoo 的 Slurp 來我這捉資料喔!

為什麼哩?因為 Yahoo! 的腦殘相關詞系統到目前為止還在搞人馬==>人馬交配的勾當,每次看瀏覽記錄都以為我開的是個線上 A 片供應中心網站哩。

倒底要不要封起來哩?嗯… 這是個幫助睡眠的好問題!

2007年9月26日

總統候選人網站比較

原評比網站: 看法:
  1. 兩大陣營大概不知道連競選網站都被拿來比較吧?目前馬陣營… 呃… 遙遙領先。
  2. 好奇的是民進黨不是很會利用網路行銷?怎麼這場仗一開始就先輸了不只一半了?
  3. 即便個人真的不喜歡藍營及其相關人士,但就競選網站首頁的表現來看的話,雖然我比較喜歡謝陣營網站第一眼的感覺,不過當發現這是個對 Fx 不友善的網站後就直接關閉不爽看了。
  4. 雖然說馬陣營網站的主題較為明確,但個人卻對其首頁用色的豐富性覺的很刺眼。
  5. 至於馬陣營網站上的那張百元鈔圖案不知怎的一直讓我聯想到北市紅衫軍之亂的壓力,所以這個網站也直接關閉了事。
  6. 結論是雙方雖然都想透過網站讓選民更瞭解他們,沒想到我卻是不肖一顧....

2007年9月21日

北縣市交通動線的調整

最近缺水,加減灌溉。

最近上班明顯覺得時間被拉長了,主要的原因在於台北縣市的交通動線調整。

第一個關卡是三重市忠孝橋頭,原本自動化的燈號系統被條杯杯改成手動控制。改成手動控制本來不是什麼大問題,但如果因此造成週遭交管燈號的不連動時就會造成大塞車。

現在的情形正是如此,造成的影響是在上忠孝橋前必須多等一輪號誌的轉換,這會浪費至少 3 分鐘。

第二個關卡是北市長安西路上,同樣也是交通號誌不連動的問題。上個月光是這樣的改變就已經浪費 2 分鐘了,但沒想到交通局又在重慶北路與太原路間再加裝了一組管制號誌。

這個新設號誌的最大特色就是其秒差和前、後兩組號誌都不一樣且異常的短。於是光是要從重慶北路機動到承德路就比上月多花了 4 分鐘。

兩段時間加總後可知道現在光是上班途中就得浪費 7 分鐘在等待紅綠燈上,難怪現在到班時間總是接近遲到邊緣。

最近真的感受到台北市的交通問題的確持續在惡化中,真的!

2007年9月14日

機車大燈

今天早上上班,在忠孝橋下遇到紅燈而暫停等待,沒想到條子杯杯卻特地跑來告訴我:『你的大燈沒有關!』

在我的觀念中,交通工具大燈的主要用途並不僅止於照亮路面,它更重要的功能是提供其他交通工具、行人等可以辨識出附近正有一個交通物體的存在。這個效果不只晚上有效,大白天也一樣有效。

所以,麻煩條子杯杯不要再提醒我沒有關大燈,反而應該對其他未開大燈的傢伙們洗腦,讓大家一起開大燈吧。

2007年9月12日

國際車訊/車內下載Google地圖資訊 BMW德國全球首創

新聞: 看法:
  1. 個人一直認為如果想要推動無線網路都市的話有個可以嘗試的施力點:即時交通資訊服務。車內下載 Google 地圖資訊的服務正是此類服務的一個起點。
  2. 當然,在目前車用 GPS 電子導航系統熱銷的現在不少人可能認為這種服務非常多餘而無意義,因為 GPS 電子導航系統也可以帶領駕駛在都市中漫遊。
  3. 然而電子導航系統最大的問題在於圖資更新不易,另方面也無法提供真實的交通路況。
  4. 有什麼方法可以解決前述電子導航系統的問題呢?讓車上電腦隨時隨地與網路連接如何?只要能跟網路連結便可以即時取得所在地點附近的交通狀況,倘若無線網路建置完善且頻寬充足,那麼即時下載 Google 地圖資訊還可以避免因圖資過舊所造成的導航失誤情形。
  5. 而且和現有電子導航系統不同,即時交通資訊服務可以透過路況的下載而動態修正路線,比起只會安排固定路線的現行電子導航系統將更為頻繁的使用。各位車主們,不知您日常上、下班時還會在乎甚至開啟電子導航系統嗎?
  6. 同樣的,行人也可以從無線網路中取得即時交通資訊服務,不管是高鐵到站狀況、火車時刻表、公車位置、沿線路況、甚至是轉乘資訊都可以透過手持行動裝置即時擷取。行人不用在伸長著脖子眺望著公車站牌上小小的字體,也不必在一堆站牌中來回穿梭只為尋找正確的搭車路線。
  7. 如果一個號稱無線網路都市的城市中能提供這類型的服務時,相信在與固網業者的競爭中就已佔有一定程序的利基。
  8. 再說,為什麼無線網路服務一定要和有線網路業者競爭呢?如果反過來販售即時交通資訊服務然後附贈無線網路使用會不會更吸引開車人士的使用呢?
  9. 這個點子很棒,也可能需要投入非常多的建置成本,初期還會經常性的入不敷出,但是我期待這個服務的推出。

漫畫,其實也可以很有知識

新聞:
  1. 聯合新聞網:日本「知識漫畫」 考究嚴格
  2. 聯合新聞網:漫畫神之雫爆紅 酒迷照書喝
  3. 聯合新聞網:專家看漫畫》天地人比擬 讓人心領神會
  4. 聯合新聞網:神之雫葡萄酒講義 出到66回
看法:
  1. 日本的漫畫的確比較有考究,台灣的漫畫則只有少數幾套是有專業人士監督的。
  2. 其實第一次看過神之雫時,我也真的跑到大賣場去找過紅酒的酒標。
  3. 看了一陣子後最後並沒有買瓶紅酒來試試。
  4. 那時恰好到尾牙季,對於圓山飯店處理紅酒的方式倒是非常印象深刻。雖然不知酒廠為何(看不懂啊),但那種酸澀味很難吸引我再去喝一口。
  5. 不過老實說,對於神之雫中將酒與美術品相結合的表現手法對個人而言真的是太遙遠了。像我這個鄉下粗鄙之人不管做什麼都很難在腦袋中建立出個什麼景像或圖畫的,所以像是交響情人夢中能把音樂變幻成吹著徐徐微風的鄉間花園的主角們,或是神之雫中將紅酒的特性用畫面或圖畫啥的做表達時,我… 只有覺得莫名其妙....
  6. 莫札特是 pink 的嗎?呃...
  7. 還好從一開始就知道自己不是藝術家的料....

2007年9月7日

TeX Live 2007 的安裝與使用

※ 2007-09-17 補充:

  1. 經李果正先生協助,解決 dvipdfmx 產生的 pdf 檔無法進行中文複製的問題。這是因為 cid-x.map 檔格式錯誤所致。
  2. 修正後之 setTLfont.pl 字型安裝工具改版為 r18 版。
  3. Mac 使用者可以參考 如何在 Mac OS X 上裝設 LaTeX 以及 CJK 套件 (TeX Live 2007) 之介紹進行 TeX Live 2007 的安裝與設定。
※ 文中圖片皆可點選後觀看原始圖片內容。

※ XeTeX 可以直接調用系統上的字型,請參考 比较Texlive 2007 中 Xetex和CJKutf8处理中文的差异 的說明建立中文書籤內容。

因為目前的 TeX 相關專案皆已納入 Tex Live 下統一管理,那麼放棄 teTeX 改用 Tex Live 已變成無可避免的選擇。本文目的在整理在 Linux 及 Windows 下安裝 Tex Live 2007 時的注意事項與中文字型安裝的作法,而 .tex 的使用重點仍然是以透過 dvipdfmx 產生出 PDF 格式文件檔的設定方法為主(呃,殘念的是產生出來的 PDF 檔內文仍無法正確被複製,原因不明)。

要安裝 TeX Live 2007 並不難,除了將光碟映像檔直接燒錄成 CD/DVD 碟外,也可將 texlive2007-live-20070212.iso 檔掛載 (Windows 下可使用 DaemonTools) 到檔案系統中,甚至直接解壓縮(WinRAR 可以解)映像檔到某個目錄下都可以進行安裝動作。

在安裝 TeX Live 2007 時有兩種安裝方式的選擇: Live 執行模式硬碟執行模式

  1. Live 執行模式:透過些許系統設定後而可以執行 CD/DVD 中的各種 TeX 工具,缺點是 CD/DVD 必須長期掛載。若使用 CD/DVD 碟片的話還會佔據光碟機的使用權。
  2. 硬碟執行模式:將符合系統平台所需的 TeX 工具及套件複製到系統硬碟中執行,雖然會佔去約 1GB 的硬碟空間卻可以空出光碟機的使用權。
在 Linux 平台下還可以再區分成 root 管理者安裝一般使用者安裝 兩種情形。通常由 root 管理者安裝的目的是為了讓系統上所有使用者都可以操作 TeX 工具;若由一般使用者安裝時則僅限該使用者可以使用。(其他 Unix Like 作業平台下應該也一樣)

※ 為了避免遺漏安裝某些工具或 TeX 巨集,建議使用 CD/DVD 執行模式即可。

TeX Live 2007 安裝程式執行路徑

在光碟目錄下的 /setuptl/ 中包含各種平台上用來安裝 TeX Live 2007 的相關執行檔,如附圖。圖形化安裝工具一律以 tlpmgui- 接上平台名稱方式命名,實際上這些 tlpmgui-* 工具應該屬於 TeX 套件管理工具而非單純的安裝工具。

  • 安裝程式路徑
由上圖可以發現目前 TeX Live 2007 支援的圖形化安裝工具仍然只有少數幾個平台,如果您的平台不在支援之列時可以嘗試使用 install-tl.sh(後述)進行安裝。

原則上 GUI 管理工具會自行檢測系統上是否已安裝 TeX Live 2007 而改變其界面為安裝模式或套件管理模式。如果啟動 GUI 管理工具後發現無法進行安裝動作時表示 GUI 管理工具誤判為系統已安裝 TeX Live 所導致,可以透過以下命令列參數強迫 TLPM GUI 進入安裝模式:

# ./tlpmgui-x86_64-linux --install-mode

Linux 下以 root 身份進行 TeX Live 2007 Live 模式安裝 - 使用文字安裝界面

安裝程式操作說明

此處將 texlive2007-live-20070212.iso 掛載到 /mnt/texlive 下,進入此目錄後直接執行 install-tl.sh 即會進入 Tex Live 安裝畫面。

  • 準備安裝 TeX Live 2007
以 root 身份安裝的目的通常是為了提供系統上所有使用者皆可以使用 TeX 系統,此時通常不會去變更 Tex Live 的預設安裝目錄。若變更了此預設目錄時則必須注意後續環境變數的設定要連帶調整。
  • TeX Live 2007 文字安裝模式選項畫面
輸入 R 後即可要求 TeX Live 安裝程式進行必要的設定以便讓 TeX 可以由 CD/DVD 中執行,事實上管理人員仍然必須自行設定系統環境變數後才算完成 TeX Live 的安裝作業。
  • TeX Live 2007 環境變數設定提示訊息
為了後續中文字型安裝作業所需,除了 TeX Live 安裝程式提示的環境變數外尚需要增加一些額外的變數,以下為 Gentoo Linux 設定方式:
www # cat /etc/env.d/06texlive
TEXMFSYSVAR="/usr/local/texlive/2007/texmf-var"
PATH="/mnt/texlive/bin/x86_64-linux"

TEXMFSYSCONFIG="/usr/local/texlive/texmf-local" ROOTPATH="/mnt/texlive/bin/x86_64-linux" TLROOT="/mnt/texlive"

環境變數說明與設定
  1. TEXMFSYSVAR: TeX Live 2007 systemwide config 存放目錄,請填入 TeX Live 2007 文字安裝模式選項畫面中的設定內容。
  2. PATH: 設定一般用戶搜尋執行檔的路徑
  3. TEXMFSYSCONFIG: 這是 updmap-sys 使用的設定檔存放目錄,請設定為一可寫入的目錄名稱或與直接與 TEXMFSYSVAR 之值相同。
  4. ROOTPATH: root 管理者在搜尋執行檔時所用的參考路徑,這是 Gentoo 特有環境變數。
  5. TLROOT: 其實這是 Windows 平台的安裝程式所建立的環境變數,用於標示 Tex Live 的安裝根目錄。不過此處的作用是用於指定 TeX Live 光碟或完整安裝時的安裝目錄路徑。以此例而言,因為已將 .iso 檔掛載到 /mnt/texlive 下,所以 TLROOT 也指向此處。
設定完環境變數後記得重新載入環境變數設定,然後確認已可執行 latex 後即告完成 TeX Live 2007 安裝作業。
www # env-update
www # source /etc/profile
www # which latex
/mnt/texlive/bin/x86_64-linux/latex

www # latex --version pdfTeX 3.141592-1.40.3-2.2 (Web2C 7.5.6) kpathsea version 3.5.6 Copyright 2007 Peter Breitenlohner (eTeX)/Han The Thanh (pdfTeX). Kpathsea is copyright 2007 Karl Berry and Olaf Weber. There is NO warranty. Redistribution of this software is covered by the terms of both the pdfTeX copyright and the Lesser GNU General Public License. For more information about these matters, see the file named COPYING and the pdfTeX source. Primary author of pdfTeX: Peter Breitenlohner (eTeX)/Han The Thanh (pdfTeX). Kpathsea written by Karl Berry, Olaf Weber, and others.

Compiled with libpng 1.2.15; using libpng 1.2.15 Compiled with zlib 1.2.3; using zlib 1.2.3 Compiled with xpdf version 3.01

  • 若為一般使用者欲安裝 TeX Live 2007 時,透過修改安裝選項中的 TEXDIR 欄位即可將 TeX Live 2007 安裝到個人家目錄中。

Linux 下以 root 身份進行 TeX Live 2007 硬碟安裝 - 使用 GUI 安裝

安裝程式注意事項

與文字界面安裝模式不同,GUI 安裝程式的預設安裝選項只是 Medium (scheme-medium) 安裝而非 FULL (scheme-full) 安裝(在考慮進行完整安裝到硬碟前建議改用 CD/DVD 執行模式)。而對於缺損或多餘的 TeX 工具或巨集仍然可以在事後透過 TeX Live Manager 套件管理工具加以安裝或移除。

  • Linux 下 GUI 安裝程式主畫面
唯一需特別注意的只有記得一定要安裝 Ttfutils 工具集,缺了這個工具集就無法轉換 TrueType 字型給 TeX 使用。
  • 選擇安裝的套件集合
語系支援部份可以僅選用 CJK 即可,其他語系應該很少人使用吧?
  • TeX Live 2007 語系支援設定
環境變數設定
  • 與 Live 模式相同,一般使用者也可選擇將 TeX Live 2007 安裝到個人家目錄下。

Windows 下進行 TeX Live 2007 硬碟安裝

安裝程式注意事項

Windows 版的安裝程式主畫面與 Linux 上完全相同。

  • Windows 版安裝程式主畫面
在預設安裝套件方面仍然未包含 Ttfutils 工具集,但含括了 Perl 的執行環境。此處請勾選安裝 Ttfutils 工具集但無需安裝 Perl 執行環境(其實安裝程式會檢查系統上是否已安裝了 Perl 環境)。
  • 套件選取畫面
一樣只需選擇 CJK 即可,其他語系支援就放著吧。
  • 語系支援選取畫面
安裝程式預設會加上幾個環境變數,其中 %PERL5LIB% 所指向的是一個沒有任何檔案的空目錄集。
  • 硬碟模式下的預設環境變數
環境變數設定
  1. 此安裝模式中無需特別設定環境變數。
  2. 若 Perl 執行時出現異常錯誤,可將 %PERL5LIB% 變數移除或重設為指向 Active Perl 之安裝目錄下。
  • 為了可以使用字型安裝工具快速安裝 CJK 字型,請勿安裝 TeX Live 2007 光碟內的 Perl 工具集。選用 ActivePerl 5.8.8 會是個比較好的選擇。

Windows 下進行 TeX Live 2007 Live 模式安裝

安裝程式注意事項

Windows 版 GUI 安裝程式直接提供選擇由 CD/DVD 執行或硬碟執行兩種安裝方式,比 Linux 版方便甚多。

  • 選擇由 TeX Live 2007 光碟上執行
安裝程式完成設定後會多出這些環境變數,其中用於指定 Perl 函式庫位址的 %PERL5LIB% 必須改回原本 ActivePerl 的安裝目錄。
  • TeX Live 2007 光碟執行模式下預設的環境變數內容
環境變數設定
  1. 請將 %PERL5LIB% 的設定值刪除或改為指向 Active Perl 的安裝目錄。
  • 為了可以使用字型安裝工具快速安裝 CJK 字型,請先安裝 ActivePerl 5.8.8 或以上版本!

替 TeX Live 2007 安裝 TrueType 中文字型

剛安裝好的 TeX Live 2007 即使已指明了要安裝 CJK 套件也無法用來編譯中文的 .tex 檔(除非使用 XeTeX,但它也有些問題),這是因為尚未安裝中文字型的關係。

基本上想要替 Tex Live 新增中文字型的話可以參考李果正先生 替 LaTeX CJK 新增字型 一文的說明,另外 CJK-LaTeX with UTF-8 on Gentoo 的作法也依然可行。不過個人為了簡化整個字型的安裝作業,所以撰寫了一個簡單的字型安裝工具:setTLfont.pl

setTLfont.pl 是個人依據李果正先生的 mktfm.sh 為基礎,並參考前述 替 LaTeX CJK 新增字型 的說明後,改以 Perl 語言實作的字型安裝工具,目的是希望簡化 TeX Live 字型安裝過程中的煩瑣步驟。

setTLfont.pl 原本是在 Windows 上以 Active Perl 5.8.8 為開發工具,它需要額外安裝一些 Perl 模組。在 Active Perl 上可以使用 ppm 模組管理工具進行安裝;在 Linux 上應該都可由發行套件的套件管理機制進行安裝。

  1. File::Spec
  2. File::Find::Rule
  3. File::Copy::Recursive
setTLfont.pl 即然以 mktfm.sh 為基礎,所以參數的使用上也和 mktfm.sh 相同,以下是這個工具的使用說明。

www # perl setTLfont.pl

setTLfont.pl [options] full_truetype_font_file_path_name font_name font_encoding*

* font_encoding only support: 1. Big5: ETen-B5 2. Unicode: Unicode/Identity 3. UGB: UniGB-UCS2 4. UJIS: UniJIS-UCS2 5. UKS: UniKS-UCS2

Options: -r, --tlroot=DIRNAME Set TexLive installed root, this will overwrite the environment variable TLROOT setting. -l, --texmflocal=DIRNAME Set TexLive texmf-local path, this will overwrite the environment variable TEXMFVAR setting. -w, --workdir=DIRNAME Set output directory path, default is $TEXMFVAR/fonts/tfm/${font_name} . -e, --execdir=DIRNAME Set tex live utility's path. -v, --verbose Show the configuration of this program. -V, --version Show this program's version. -i, --license Show this program's license. -h, --help Show this message and exit. -q, --quit Quit if -V, -v, or -i had been setted.

For example: perl setTLfont.pl /usr/share/fonts/uming/uming.ttf uming Unicode

參數說明

  1. full_truetype_font_file_path_name:完整的 TrueType 字型路徑,可以隨意指定字型檔路徑。若字型檔不在 TeX Live 搜尋的路徑下時會自動建立 soft link (Windows 平台下則會自動複製到相關路徑下)。
  2. font_name:TeX 下的字型名稱。
  3. font_encoding:字型適用的編碼,目前支援以下 5 種編碼,但除了 Unicode 編碼確認可以使用外,其他都待測試。
    1. Big5
    2. Unicode
    3. UGB
    4. UJIS
    5. UKS
選項說明
  1. -r, --tlroot=DIRNAME:即 TexLive installed ROOT,作為指定 TeX Live 相關套件的執行來源,若為完整安裝時則指向安裝目錄。
  2. -l, --texmflocal=DIRNAME:指定 TeX Live 非預設字型及套件的安裝目錄。只有先設定過 TEXMFLOCAL 環境變數後,此選項才有實質用途。預設安裝此類非官方字型及套件的目錄是參考 %TEXMFVAR%(Windows 平台)或 texconfig conf 輸出的 TEXMFVAR(Linux 平台)設定值。
  3. -w, --workdir=DIRNAME:指定產生字型資訊檔時所使用的工作目錄,預設工作目錄是 $TEXMFVAR/fonts/tfm/${font_name} 。
  4. -e, --execdir=DIRNAME:其實本工具可以簡單辨識所在平台並執行對應的工具程式,不過事實上也只測試過 Windows 2000 及 Linux 兩種平台罷了。為了避免辦識錯誤,所以另外加了此選項以明確指定相關工具程式所在位置。如:G:\bin\win32 或 /mnt/texlive/bin/x86_64-linux 。
  5. -v, --verbose:顯示此工具在執行過程中所使用的各種參數設定內容。此選項不會終止整個字型安裝流程,不過可以配合 -q 選項結束整個安裝作業。
  6. -V, --version:顯示此工具之版本。此選項不會終止整個字型安裝流程,不過可以配合 -q 選項結束整個安裝作業。
  7. -l, --license:顯示此工具採用的授權方式。此選項不會終止整個字型安裝流程,不過可以配合 -q 選項結束整個安裝作業。

Linux 下 root 管理者安裝字型

不管是任何平台、任何身份,在進行字型安裝前可以先使用 -v -q 選項組合檢查相關安裝設定是否正確,若沒有問題的話可以移除 -q 選項進行安裝。
www # perl setTLfont.pl -q -v \
> /usr/share/fonts/arphicfonts/ukai.ttf ukai Unicode

setTLfont.pl $Rev: 17 $ - Help to set the font configuration for TexLive.

Command Line parameters:

True Type font path: /usr/share/fonts/arphicfonts/ukai.ttf *True Type font file: ukai.ttf Tex font name: ukai Tex encode name: Unicode Installer: root

Configration List:

TexLive Root: /mnt/texlive Platform: x86_64-linux Utility's file path: /mnt/texlive/bin/x86_64-linux TEXMFVAR path: /usr/local/texlive/2007/texmf-var TEXMFSYSCONFIG path: /usr/local/texlive/2007/texmf-var Postscript Encode Name: Identity TeX CJK Encode Number: 70

Working files and path:

cid-x.map path: /usr/local/texlive/2007/texmf-var/fonts/map/dvipdfm/cid-x.map TrueType font save to: /usr/local/texlive/2007/texmf-var/fonts/truetype *.tfm saved path: /usr/local/texlive/2007/texmf-var/fonts/tfm/ukai *.map saved path: /usr/local/texlive/2007/texmf-var/fonts/map fontname.map: ukai.map *.enc saved path: /usr/local/texlive/2007/texmf-var/fonts/enc/ukai *.fd saved path: /usr/local/texlive/2007/texmf-var/tex/latex/CJK/UTF8

TeXLive Utilities:

texconfig: /mnt/texlive/bin/x86_64-linux/texconfig ttf2tfm: /mnt/texlive/bin/x86_64-linux/ttf2tfm texhash: /mnt/texlive/bin/x86_64-linux/texhash updmap: /mnt/texlive/bin/x86_64-linux/updmap-sys

若執行結果一切順利的話,除了到前述輸出的路徑下檢查輸出的檔案外,最直接的方法是直接編譯 cjk-ukai.tex 作為測試文件。

\documentclass{article}
\usepackage{CJKutf8} % 使用CJKutf8 巨集套件
\begin{document}
\begin{CJK}{UTF8}{ukai}
\section{CJK 巨集套件}
這是一個測試,關於CJK package 的測試。
\section{桃花源記節錄}
初狹,纔通人;復行數十步,豁然開朗。土地平曠,屋舍儼然。有良田、美池、%
桑、竹之屬,阡陌交通,雞犬相聞。其中往來種作,男女衣著,悉如外人;黃髮、%
垂髫, 並怡然自樂。見漁人,乃大驚,問所從來;具答之,便要還家,設酒、殺雞、%
作食。村中聞有此人,咸來問訊。自云:「先世避秦時亂,率妻子邑人來此絕境,%
不復出焉;遂與外人閒隔。」問今是何世;乃不知有漢,無論魏、晉。此人一一%
為具言所聞,皆歎惋。餘人各復延至其家,皆出酒食。停數日,辭去。此中人語%
云:「不足為外人道也。」
\end{CJK}
\end{document}

Linux 下一般使用者安裝字型

以下是一般使用者自行安裝字型時的執行參數範例,相關的檔案會被放入 $HOME/.texlive2007 目錄下。同樣的,使用前述的檔並修改使用字型為 sung 後即可以測試字型是否安裝完成(使用 cjk-sung.tex )。

ada@www $ perl setTLfont.pl -q -v \
> /usr/share/fonts/opendesktop-fonts/odosung.ttc sung Unicode

setTLfont.pl $Rev: 17 $ - Help to set the font configuration for TexLive.

Command Line parameters:

True Type font path: /usr/share/fonts/opendesktop-fonts/odosung.ttc *True Type font file: odosung.ttc Tex font name: sung Tex encode name: Unicode Installer: ada

Configration List:

TexLive Root: /mnt/texlive Platform: x86_64-linux Utility's file path: /mnt/texlive/bin/x86_64-linux TEXMFVAR path: /home/ada/.texlive2007/texmf-var TEXMFSYSCONFIG path: /usr/local/texlive/2007/texmf-var Postscript Encode Name: Identity TeX CJK Encode Number: 70

Working files and path:

cid-x.map path: /home/ada/.texlive2007/texmf-var/fonts/map/dvipdfm/cid-x.map TrueType font save to: /home/ada/.texlive2007/texmf-var/fonts/truetype *.tfm saved path: /home/ada/.texlive2007/texmf-var/fonts/tfm/sung *.map saved path: /home/ada/.texlive2007/texmf-var/fonts/map fontname.map: odosung.map *.enc saved path: /home/ada/.texlive2007/texmf-var/fonts/enc/sung *.fd saved path: /home/ada/.texlive2007/texmf-var/tex/latex/CJK/UTF8

TeXLive Utilities:

texconfig: /mnt/texlive/bin/x86_64-linux/texconfig ttf2tfm: /mnt/texlive/bin/x86_64-linux/ttf2tfm texhash: /mnt/texlive/bin/x86_64-linux/texhash updmap: /mnt/texlive/bin/x86_64-linux/updmap

Windows 下安裝字型

Windows 下並無一般使用者或系統管理者之分,所指定的字型檔則將被直接複製到 TeX 相關目錄下。同樣的,可以使用 cjk-uming.tex 進行字型測試。

E:\>perl setTLfont.pl -q -v E:\Tools\TeX\font\uming.ttf uming Unicode

setTLfont.pl $Rev: 17 $ - Help to set the font configuration for TexLive.

Command Line parameters:

True Type font path: E:\Tools\TeX\font\uming.ttf *True Type font file: uming.ttf Tex font name: uming Tex encode name: Unicode Installer: adahsu

Configration List:

TexLive Root: C:\TeXLive2007 Platform: win32 Utility's file path: C:\TeXLive2007\bin\win32 TEXMFVAR path: C:\texmf-local TEXMFSYSCONFIG path: C:\TeXLive2007\texmf-var\web2c Postscript Encode Name: Identity TeX CJK Encode Number: 70

Working files and path:

cid-x.map path: C:\texmf-local\fonts\map\dvipdfm\cid-x.map TrueType font save to: C:\texmf-local\fonts\truetype *.tfm saved path: C:\texmf-local\fonts\tfm\uming *.map saved path: C:\texmf-local\fonts\map fontname.map: uming.map *.enc saved path: C:\texmf-local\fonts\enc\uming *.fd saved path: C:\texmf-local\tex\latex\CJK\UTF8

TeXLive Utilities:

texconfig: Not Supported yet ! ttf2tfm: C:\TeXLive2007\bin\win32/ttf2tfm.exe texhash: C:\TeXLive2007\bin\win32/texhash.exe updmap: C:\TeXLive2007\bin\win32/updmap.exe

setTLfont.pl 注意事項說明

  1. 因為一些 Perl 模組之故 (File::Copy::Recursive、File::Find::Rule) Windows 平台下不要使用 TeX Live 2007 內附的 Perl 系統,TeX Live 2007 內的 Perl 版本太舊。
  2. 在 Windows 下若選擇 CD/DVD 執行模式時,TeX Live 2007 會自行設定 PERL5LIB 環境變數到光碟目錄下,這會因為模組版本差異的關係而造成執行異常。

2007年9月4日

又一個不按規矩走的 robot

好吧,即然不想照規矩走,那就直接封鎖吧!

"Mozilla/5.0 (Twiceler-0.9 http://www.cuill.com/twiceler/robot.html)"

# iptables.ver8 rules
# reject for cuill
-A INPUT -s 208.36.144.0/255.255.255.0 -i eth0 -j DROP

2007年9月2日

Linux 下的卡拉 OK 伴唱錄音

今天測試了如何在 Linux 下邊看伴唱 MTV 邊錄音的作法,發現比想像中簡單很多。

使用工具:

  1. 播放工具:請愛用 SMPLAYER ,有中文界面,操作簡單易上手。而且最重要的是和 MPC 一樣可以直接支援 VCD/DVD/檔案 等各種型態的多媒體(當然這是 mplayer 原本就有的功能,不過 smplayer 讓播放工作更簡單)。
  2. 錄音工具:請使用 Audacity ,這是套聲音編輯、錄製兩用的軟體,也表示可以在錄完音後馬上加工修飾,做到人人是歌神的境地。
錄製過程:
  1. 在 smplayer 中選好媒體種類後即可開始播放,播放時可以選擇要播放的聲道,重點在於音樂聲道是那一個。通常,VCD 下的音樂聲道是左聲道,DVD 的話則是透過切換音軌取得純音樂部份。在播放 DVD 時可能必須調整聲音設定,將輸出混合成立體聲後才能被錄製。
  2. 在 audacity 中按下錄音鍵後即會開始錄音,比較有趣的是 audacity 似乎只會錄製左邊道(麥克風太爛?)及麥克風的聲音,在播放伴唱 VCD 時還可以順便聽人聲部份加以練習。
  3. 按下停止錄音鍵後可立即重聽、修改、或匯出成一般聲音檔,然後就可以做各種想像不到的應用。有那些應用呢?我還沒想到....
錄製成果:此次測試僅錄了一首歌 - 陪妳卸粧,一樣上傳到 Xuite 去但不建議看官真的去聽,即使已經再三聲明本格責任撇清特別宣言的內容,還是希望在聆聽過程中隨時保持可執行救助的第三者在場為佳。

責任撇清特別宣言

  • 本格不對該上開聲音、影像、或類似作品所產生之噪音、聲調、畫面等負任何民事、刑事、行政、或政治責任,若聽完後有心悸、耳鳴、頭暈、目眩;看完後有噁心、腹痛、或其他不明原因身體不適等等症狀者請自行就醫,本格勢將回絕任何賠償請求!

2007年8月30日

關於 SVN 的 Encoding 設定

為了支援多國語系,所以 SVN 有一個指定檔案編碼的選項: --encoding ENC 。

因為先前沒有特別指定(預設就使用系統編碼),所以每次看到代換出來的 Date 關鍵字都有一些亂碼(其實是 UTF-8)。這個亂碼雖不會影響到整個檔案的使用,但看久了也會煩,因此決定試試上面那個選項看能不能解決這個問題。

我不論是在 import 時或是做 porpset 設定都特地指定 ENC,結果 commit 之後確定 Date 關鍵字仍然是沱亂碼,唉… 真是令人眉頭深鎖啊…

試用 Subversion

最近為了文件/源碼版本控管的需求,裝了 subversion 1.3.2 來用。

感覺

  1. 不知為何,在 Gentoo 2006.1 on Pentium2 266 上的 Subversion 很容易 hang 住。現在重新編譯 subversion 1.3.2 中,將一些支援選項先關掉看看能否正常。
  2. 反過來說,Windows 上的 Subversion 很穩定,這部份可以參考 嘟嘟老窝 的安裝手記將 svnserve 轉成 service 模式。
  3. Subversion 和 CVS 在版本管控認知上有很大的差異:
    1. CVS: 以檔案為主,每個檔案的修改版次各自獨立控管,所以 release 一個版本時很難知道某個檔案的某版號究竟屬於那個 release 版。
    2. Subversion: 以完整系統為主,所有檔案統一歸到一個修改版次上,在 release 一個版本時會有完全一致的修改版號。
  4. 因版本管控認知差異所造成的使用方式改變:
    1. 對於異動次數多的與次數少的,可能不方便放在同一個檔案庫下。
    2. 多個專案必須對應到多個檔案庫中,否則會造成一版次一直遞增,但實際上線的版本即始未曾改動卻差了幾十、幾百版次。

建立多檔案庫的方法:

為免一個小更動造成各專案/文件之版次變動,因此要建立多檔案庫。
  1. 所有檔案庫必須歸到同一主目錄下,如:SVN_ROOT=/home/svn
  2. 在主目錄下可以再建子目錄,作為檔案庫分類之用
    1. mkdir $SVN_ROOT/docs # 儲放文件檔
    2. mkdir $SVN_ROOT/projects # 儲放專案資料
  3. 利用 svnadmin 建立所需檔案庫
    1. svnadmin create $SVN_ROOT/docs/document1 # 第一份文件庫
    2. svnadmin create $SVN_ROOT/docs/document2 # 第二份文件庫
    3. svnadmin create $SVN_ROOT/projects/project1 # 第一份專案庫
    4. svnadmin create $SVN_ROOT/projects/project2 # 第二份專案庫
  4. 將 svnserve 的 --root 參數指向 $SVN_ROOT 上, Gentoo 上是編緝 /etc/conf.d/svnserve 這個檔
    SVNSERVE_OPTS="--root=/home/svn"
  5. 設定 $SVN_ROOT 目錄的擁有者,此例是指派給 svn 用戶
    chown -R svn:svn $SVN_ROOT
  6. 設定一下 svnserve 執行時的身份(配合 $SVN_ROOT 的擁有者身份),同樣編輯 /etc/conf.d/svnserve 檔
    1. SVNSERVE_USER="svn"
    2. SVNSERVE_GROUP="svn"
  7. 啟動 svnserve 吧!
    /etc/init.d/svnserve start
  8. 如果是 Windows 平台的話,那檔案權限設定的部份可以跳過。

Subversion 的權限控制

  1. 請參閱 Subversion的权限控制,先讓所有的檔案庫可以參照到同一份 authz 及 passwd 。在 Windows 上可以 copy 方式統一所有設定檔;在 Linux 上則乾脆用 soft link 比較省事 (這麼做是否有問題還待測試,原因是實際操作時總是發現 svnserve 會 hang 住)
  2. authz 這個檔案的設定是為了賦予各檔案庫不同的權限,以 [name:path] 方式對檔案庫 (name) 的路徑 (path) 進行區分。其中 name 是檔案庫相對於 $SVN_ROOT 的路徑;path 則是相對於檔案庫本身的子目錄。
  3. 以 $SVN_ROOT/docs/document1 這個檔案庫來說,對應的的設定方式就是 [docs/document1:/];若是要設定到檔案庫下的某個子目錄時,就變成 [docs/document1:/rfp] 或 [docs/document1:/proposal] 分別表示 document1 檔案庫下的 rfp 目錄或 proposal 目錄。

Windows 平台補充

2006-11-13 補充

  • 如果在 Linux 平台上操作 svn 時會出現系統 hang 住的情形時,請檢查一下 dev-libs/apr ( Apache Portable Runtime Library ) 是否編入 urandom 支援(Gentoo 預設是不開啟的),若未編入的話請重新編譯並加入此選項。

參考資料:

  1. 嘟嘟老窝:Subversion安装手记
  2. Subversion 中文站:Subversion快速入门教程
  3. Subversion 中文站:Subversion的权限控制,這是建立多重檔案庫的重要參考資訊。

Subversion 的備份機制

根據 Subversion中文站论坛 這篇討論(Subversion备份)的說明,Subversion 有三種備份方式:完全備份、增量備份、異地檔案庫同步。

為了同時備份到多個地方,個人決定選擇增量備份方式作為工作專案的備份機制。流程大致如下:

  1. 透過 hooks 記錄每次 commit 的檔案庫名稱(也就是路徑)及版號,這個記錄檔暫稱為異動記錄檔。
  2. 每日檢查前一日異動記錄檔中是否包含異動情形,如果有的話就使用 svnadmin dump 指令以 增量記錄方式匯出成增量記錄檔。
  3. 對增量記錄檔計算 md5 後,連同增量記錄檔本身壓縮成 .bz2 檔備用。
  4. 將 bz2 檔透過 sftp 方式上傳到遠端 Subversion 伺服器上。
  5. 透過執行遠端指定命令稿將 bz2 檔還原成增量記錄檔及 md5 記錄檔,檢查檔案是否有所異常。
  6. 在遠端 Subversion 系統中將沒有異常的增量記錄檔透過 svnadmin load 方式匯入相應檔案庫中,結束遠端呼叫。
  7. 將 bz2 檔 mail 至某 EMAIL 帳號(是的,我只想到 GMAIL)中。
  8. 如果允許的話還可以順便將 bz2 檔案複製到他處,做為第三份備份。
  9. 刪除 bz2 檔,結束當日備份作業。
以上,是目前考慮的作法。

2007年8月22日

超爆笑圖片聊天

與輔大猴等部落格畫家不同,PCDVD 目前有一個以電影、動畫、或漫畫擷圖為主的聊天話題: 余筱萍轉換跑道不順

雖然發文者可能有些○殘,不過後續的圖片回覆卻令人不禁捧腹大笑…

2007年8月20日

華航琉球那霸機場爆炸事件

新聞:
  1. 東森新聞報:華航意外/降落前15分鐘已有濃煙味? 或降落才引擎爆炸
  2. 東森新聞報:華航意外/日本官方:左翼引擎著火 疑似燃油外漏引起
  3. 東森新聞報:華航意外/著陸→爆炸僅8分鐘 目擊者:還在疏散就爆炸
  4. 東森新聞報:華航意外/飛安會、民航局、華航9人小組 將赴琉球協助
維基百科: 看法:
  1. 雖然媒體又一窩蜂的批評起華航的空安記錄不佳,不過就機組員可以在爆炸發生前將全體乘員疏散,大幅降低乘員傷亡的結果來看,華航對機組員的日常訓練成效至少可算是成功的。
  2. 個人對於華航發言人提前施打預防針,一再且過份的強調華航的維修等等相關作業是完全無缺失的言論的作法深感不妥。
  3. 畢竟整起事故無論怎麼看都像是引擎所引發的,是維修不當?是設計不良?還是其他不可抗力因素?在一切都尚未進行調查前就猛打預防針的作為只是予人欲蓋彌彰的感覺。
  4. 此事故中引擎為何會發生爆炸的原因是一件很值得研究的課題。曾看過影片介紹過一顆噴射引擎應該能夠承受內部爆炸的衝擊從而避免乘客受到傷害,但此一事故似乎變成了該影片的反例。個人倒是蠻希望 Discovery ChannelNational Geographic Channel 可以針對此一事故做一次追蹤報導,如果噴射引擎不只會爆炸還會順手把飛機給燒了這種事是很令旅客擔憂的。畢竟下一次類似事故不一定還是在地面上發生,有沒有機會疏散旅客以避免人員傷亡都還是個問號哩!

2007年8月18日

Youtube 上的交響情人夢

最近緯來日本台已經播畢日劇交響情人夢了,隨後年初的動畫版也看完了, 也許 會寫篇 blog 做點記錄,不過現在先來看看 Youtube 上有關的交響情人夢影片。
  1. 動畫:請自行尋找 Nodama Cantabile 關鍵字即可,不過受限於播放工具限制的關係需要一點點耐心和容忍小畫面的不便。
  2. Nodame Cantabile - Most Romantic Scene:這是千秋和野田妹最浪漫的一刻,不過日劇版本(也許 Youtube 上有,但是我找不到… )的感覺更強烈。對了,這是英文字幕版,很可能這部片子也受英美人士所注目。
  3. 拍攝花絮:
  4. 由動畫中剪輯製作的 MV:
  5. NG 片斷 1:聽說有中文字幕版,但是一時找不到。
  6. NG 片斷 2:
2007-08-22 補充:
  1. 最後一幕就是上面提到的日劇版本的 Most Romantic Scene:
  2. 巴黎篇預告(英文版):

中樂透或發票時可再多領一小筆

來源: 感想:
  1. 下次記得先準備好購買證明以便預先扣稅啊!

2007年8月15日

馬市長的政績

來源: 感想:
  1. 看來馬市長真的有了政績了,不是貓纜、不是隨袋徵收垃圾處理費、更不是把台北圓環給搞倒了這些芝麻小事,因為他真正的替公職人員謀求到實質加薪的福利了。
  2. 不用管我中午前在胡說些什麼,我已經下定決心要讓我的小孩(雖然八字都還沒沾墨水哩)設法考取公職,領取實質補助的特支費以貼補家用。
  3. (謎之音:你的改變未免太快了吧?)
  4. 咳… 誰會跟錢過不去呢?

馬英九市長特別費 Round 2 開打

新聞:
  1. 東森新聞報:特別費案/馬英九獲判無罪 余文判刑1年2個月
  2. 東森新聞報:快訊/特別費案/地院一審宣判 馬英九無罪
  3. 判決書全文轉錄:馬英九特別費案一審判決書(全文一~~十)
評論: 看法:
  1. 若首長特別費不為公款且屬於實質補貼的話,那陳水扁國務機要費案是否也算是總統的實質補貼?我不知道,不過如果這兩個類似的案子最後卻因審理法官的不同而有完全不一樣的認知時,那麼台灣司法根本一點也不公正、公開。
  2. 如果首長特別費不為公款,那麼余文幹嘛那麼努力要完成銷帳程序?余文辛辛苦苦幫主子銷帳不只得不到主子的稱讚。除了被判刑外,主子還把責任推的一乾二淨,從此處來看整個特別費案中最嘔、最倒楣的就是余文了。
  3. 聽說余文打算上訴表清白,如果此事為真就很有趣了。是馬英九授意要求使用發票銷帳?還是因為馬英九什麼都不給(用途不給、支出證明不給)導致余文必須自救呢?
  4. 不過國民黨應該會全力阻擋余文的上訴吧… 怎麼擋?通常是條件交換吧… 我想...
  5. 另外,對法院以宋代公使錢補貼來解釋特別費的方式深感莫名其妙,兩者間的客觀條件也完全不相同,這和 拿明朝的劍斬清朝的官 有啥差別?
  6. 還有,拿主觀犯意有無作為無罪的判決條件之一也很有趣。畢竟恐怖份子從來都不覺得自己很恐佈啊。
  7. 我一直覺得為了避免一審法官為求迅速結案且提告、被告雙方必然因不服審判結果上訴的預期心理導致一審隨意亂判,台灣的司法審查制度應該納入陪審團機制以避免審判結果受法官的個人情緒左右。然而與政治有關的法律問題顯然仍無法就此獲得解套,什麼時候會出現真正公平、公正的法官呢?
  8. 話說回來法官本身也許是公平、公正的,不過如果有某些壓力(政黨、惡勢力、或其他)的話,能否一本初衷又是另外一回事了。
  9. 對於馬英九無罪宣判後股市立即飆漲百點一事,只能說台灣的股市真的太過政治化了。
  10. 首長特別費案的影響其實才剛要開始而以...

2007年8月13日

台灣司法受民眾所信賴嗎?

新聞:
  1. 東森新聞報:特別費案/國民黨吳敦義:判馬英九無罪才是正道
看法:
  1. 台灣司法改革喊很久了,不過到目前為止民眾只能期昐但仍然無法信賴司法配稱之為最終正義。
  2. 不用說,第一個原因就是政治人物越俎代庖替法官做出莫名其妙的判決。吳敦義如此,邱毅也是(見 又是邱毅,水果日報的過期新聞要登入後才能檢閱非常令人討厭!),馬英九(參選總統以示清白?)也一樣。
  3. 檢察官/法官本身的政治傾向:結果變成藍營檢察官/法官辦綠營人士;而綠營檢察官/法官又辦藍營人士。從這層面來看要說有多公平、公正是很難服人的。
  4. 少數腦殘檢察官與腦殘法官的存在:腦殘在那?在對法律有獨特而高深的見解,譬如 豬哥捏胸10秒鐘… 無罪?。等到腦殘判決出爐被轟後還會用法律要講求證據之類的說詞來掩飾,雖然最高法院/高等法院最終都會將案子發回更審,但接二連三的腦殘判決已經讓人民對司法的信任打了點折扣。

2007年8月10日

真心期昐衛生筷廠商能多重視一下品質管理

目前全世界正流行著一個無聊的比賽 - ClickClickClick,在台灣的主要資訊交流地則在 PTT 的 HOT_GAME 版中,同時也有許多來自日本的朋友陪著鄉民們在裡頭瞎攪和。

其中有一篇是由 japan221b 所發表的 [外交] 介紹日本(made by Japanese clickers) ,在裡頭閒晃了一陣子後莫名其妙的發現到日本動畫 千と千尋の神隠し/神隱少女 似乎是到台灣九份來 取景,隨便點了一個頁面後竟然看到了以下這張圖(見 日々非日常@なんとか隊 - 台湾DAY5):

這位日本朋友留下的訊息是:箸の長さは不揃い 台湾クオリティー。

雖然不懂日文,但是我的第一個反應其實是 台灣的筷子真有趣,竟然是一長一短耶! 。然後使用翻譯網站翻譯過後的結果則是 筷子的長度不成套台灣品質

呃,還是希望台灣的竹筷生產商能重視一下品質,讓日本朋友看到這種情形真是令人窘到不行啊…