成立 PCMan Facebook 專頁

之前常被許多網友要求加 Facebook,但是數量過多難以管理,大部分也都不認識,無法一一加入,所以成立 PCMan FB 專頁。未來長篇的文章還是會放 Blog 上,而平常的小動態會放在 FB。
另外,現在也可以使用 http://blog.pcman.im/ 來連到本網站

2008年8月20日 星期三

小醫院小醫師

我想我解釋得夠多次了...
家屬們總會點點頭表示了解,然後隔天再問一次

我想我也說明得夠多次了,
但是家屬總是會提出不合理要求,然後硬是要跟你盧

跟你說這樣是違法的,硬要當作是我們不肯幫忙,那我也沒辦法
我老闆都說不行了,你一直來盧我是想怎樣?

我雖然是菜鳥,也輪不到你家屬來指揮我該開什麼藥
好心幫忙,順你的意,給你一些非必要的東西,
竟然還回來怪說我開漏了,你在講我都沒有在記
你以為你是誰?你以為我這裡是西藥房?
還是你以為我這裡是餐廳,你點餐我上菜?

我的時間很貴,沒有空跟你盧,
就暫且忍一忍,順你的意吧,這樣對大家都好。
即使沒有錯,還是要陪笑臉。

這些醫界大老真的是不食人間煙火,才會整天把倫理道德掛在嘴邊,
硬是要給這個行業強加一個不合理的光環和枷鎖。
醫療很明顯是個不折不扣的服務業
在不違反法律和善良風俗的情況下,盡力處理客戶的問題,
給他們最大的滿足,這樣不就好了嗎? 有需要搞得這麼神聖嗎?
把這個行業講得很神聖,並不會讓你的病人更好
反而是落實服務業顧客至上的核心精神,可以實踐得更好些。

我真的非常相信,如果要突破目前醫院的困境,
現代醫療人員,需要的不是空泛又可笑的「嘴上」醫學倫理
而是應該要像空服員、麥當勞、或是各種成功的服務業一樣
接受整套完整的相關訓練,訓練如何應對得宜,如何了解顧客的需求
如何處理顧客的不滿情緒,而且最好有個經理,可以出來處理各種鳥事
不要是像現在這樣,套一件白袍,就丟你到病房去自生自滅。

真的不是每個人應對能力都一樣好的,尤其當你還是新手的時候...

2008年8月11日 星期一

凸出來的釘子,就是會被人敲下去

這樣的社會,是不會進步的。
為何年長一輩的很多人,老喜歡因為自己當年做不到
而不遺餘力的試著消滅後輩的熱情呢?
對,我們還很嫩, but... So what?
也許我也做不到,也改變不了什麼,
但在沒有更好的選擇時,至少我學習用積極的態度面對。

2008年8月7日 星期四

我們的 LXDE 計畫,順利到舊金山 LinuxWorld 參展

今天,我的心情非常複雜。
兩年前,我因為一些因素,意外創立了 LXDE 計畫 (http://lxde.org/)
希望可以提供一個輕量級的 Linux 桌面環境。
2006 年剛開始那時候,很淒涼,幾乎 95% 程式只有我自己一個人在寫,
大部分的東西也處在沒辦法用的狀態,中間更是因為私人因素停頓一年多。
到了 2008 年,因為有新血的加入,我們重新投入了這個專案的研發,
經過幾個月的奮鬥,和無數的熬夜,半年內我們完成了真正可用的解決方案
我已經記不清楚我前後到底花了多少私人的時間在這上面,
雖然沒有時間,但難得有機會把它做起來,還是得犧牲重要的私人時間來弄。
畢竟現在我還是得維護 LXDE 裡面超過六成的程式,而專案目前還在長大當中...
最核心的部份,還是有許多待解決的問題,但目前也沒有人能夠接手。
幸好,這些努力並沒有白費,最後的成品終於得到一些使用者(和廠商?)的肯定
雖然投入超過兩年,我個人除了有拿到一兩台贊助的機器之外,口袋沒半毛進帳,
但我最大的心願並不是錢,而是這個來自台灣的作品,有機會躍上國際舞台。
今天,我們做到了。

在某些單位的贊助,和 Joy Tang 等許多朋友的努力奔走之下,
我們的作品終於有機會,參加在舊金山舉行的 LinuxWorld Expo
向國外的朋友介紹來自台灣的自由軟體專案,正式的走向國際化
原本,這天我應該是最開心的,因為多年的心願之一,在這幾天,終於實現了,
但今天,我其實心情有點失落。

專案的重要成員 Andrew Lee 和 Fred,和我們的好朋友 CW,目前人在舊金山
和來自美國的 Glen 和德國的 Mario 正非常努力的,在跟參觀的國外朋友介紹。
而在這個對我們來說最重要的一刻,這次,我卻缺席了。
看著 Fred 拍攝的展場照片,看著 Andrew 等人發出的 Press Release
身為專案創始人及主要開發者,本來我應該要在會場和大夥一起努力的
但現在,我卻像個局外人,除了透過網路,偷看他們的進度之外,
一點都無法參與了。 有點不知道該感到高興還是難過。
最近都不敢開 E-mail 信箱,太多關於軟體開發的信了,
國外翻譯者寄來的軟體翻譯,我到現在沒有時間整合進我們的專案
我真的深怕一開啟這些東西,就會玩個沒完沒了,打亂我的讀書計畫。

今天,我是內科住院醫師了,我正在醫院上班,手上有需要照顧的病人
無論發生什麼事情,我有責任,在這裡堅守我的崗位。
想要雙重身份,就是需要付出雙倍代價。外人所看到的光鮮亮麗永遠只是表面
現實和夢想,有時不能兩全,而工作,就是這麼回事。
因為責任,所以得放棄很多自己喜歡的事。
我想,離開學校後,我失去的不只是一張學生證而已。

接到好友訴說新工作不順的電話,我還可以若無其事的給予安慰
但實際上,我心理現在也有種說不出的失落感...
也許再過幾年,我就會忘了程式要怎麼寫了吧...

今天下班前,又去巡了一次我負責的病人,確定他們狀況都穩定
閒聊了幾句,看到病人笑著說謝謝,心理的失落感也少了些。
晚上 call 機響了,本以為是醫院的事情,卻意外發現是接到某好友的簡訊
人生有些事情很無奈,但在無奈之中,還是會有些事情讓人感到溫暖的吧。
加油了!明天是要值班的日子,希望一切順利。

2008年7月31日 星期四

上班第一天

因為之前 server 掛掉太久,差點忘了我有 blog
話說,今天是非常平淡無奇的上班第一天
不過,新手上路,平淡就是一種幸福。

就像某好友說的:「你每次都說這次完了,可是真的遇到事情,
最後還是都平安度過了。」
或許吧!希望這次也是。
這意外的小小空檔可以喘息,剛好可以把握機會,
彌補之前欠的很多東西
這正是一個可以重新開始的好機會。

今天,把作息正常化,將之前日夜顛倒造成的時差調回
定了兩個鬧鐘,換了全新的電池。
手機全部充滿電,不能讓人 call 不到
早上鬧鐘一響起,馬上準時起床,
一改以往賴床的惡習,完全不敢耽擱。
把頹廢的一臉鬍渣徹底刮乾淨,將一切準備就緒
上緊發條,也把全部的時鐘,都撥快了五分鐘

就這樣,我開始了全新的一天,和過去判若兩人。
我想,我今後不會再遲到了。
人果然是需要壓力才會有成長。

2008 年 8 月 1 日,在一些複雜的情緒中,我開始上班了
今天起正式完全脫離學生身份。

我想,接下來會慢慢上軌道吧,加油!

2008年6月17日 星期二

[程式] PCMan 私房密技 - 用 glib 的 GKeyFile 來處理 IPC

不知道我是不是第一個發明這樣搞的人,但這絕對是個有用的密技

在 C 語言裡面,處理程式的命令列參數,一直是很討厭的事情。
在 UNIX 類系統上,伴隨 GTK+ library 而來的 glib,很方便的提供了現成工具
GOption commandline parser

這在每一台 Linux 桌面的機器上都有,所以不用裝額外的 library
加上在寫 gtk+ 程式時本來就是直接用 glib 現成的工具比較方便
GOption 可以很方便的幫你把 argv 翻譯成各個變數的數值,大幅度簡化程式
不過,這樣方便的工具,還是有他的限制。

當你需要做 single instance 程式時 (我不知道正確的名稱,總之,就是讓
同一個程式多次啟動時,可以共用同一個 process,避免資源的浪費,
例如你打 firefox 指令,並且傳給他網址當參數,他會去找執行中的 firefox
process,然後把參數傳過去開新視窗,避免再重複執行另一個 firefox)
在這種情境下,GOption 變得不方便了,因為他無法處理由其他 process
傳過來的參數,只能處理 main() 裡面的 argv,而且只能處理一次。
第二次再傳給他另一個 argv,就會出問題了,所以無法用在這種用途。
這種設計上的缺陷,大大的限制了他的可用性。

於是,你有兩個選擇:

1. 不用 GOption,自己寫個函數來處理 argv 的參數,這樣從其他 process
透過 IPC 傳過來的參數,也可以用同樣方式處理。

2. 使用 GOption,但是在每個啟動的 process 都先用 GOption parse 過
把 argv 轉成你程式當中的變數,再透過你自己設計的方式,用 IPC
把這些變數傳遞給 single instance 的主 process

不管是哪一種,都很累,也很麻煩。
但是,透過 GKeyFile 的協助,第二種方式將變得簡單。以下是密技:

在 main 當中,先用 GOption 把 argv 翻譯成在程式內有意義的變數
然後,要透過 IPC 傳給主 process 之前,先把他寫成 INI 格式!
這樣一來,在主 process 收到的參數,就不再是一堆無意義的 argv
而是形同收到一個有 key/value pairs 的 ini 檔案。

這時候,透過 g_key_file_load_from_data 這個 glib 提供的 ini parser
可以很容易的,把收到的參數,轉回程式可了解的變數。
使用起來不但簡單,而且程式相當的可讀,乾淨。
比起實做自己的資料編碼/解析方式,透過 GKeyFile,以 ini 格式編碼
IPC 時傳輸的資料,要簡單的太多了,程式可讀性也會好很多。
因為是 UNIX socket 傳輸,而不是寫入 on disk 的 ini 檔
所以實際運作並不會有明顯的效能損傷,但會大幅簡化程式的設計。
適當使用手邊現有的工具,做讓人意想不到的結合,就可以創造出新的價值

以上是對很多人沒有任何用處的 PCMan 私房 GTK+ 密技,
亂無章法,隨手記下,也沒時間寫範例,但希望對看得懂的有緣人有幫助...

2008年6月15日 星期日

發現有趣的新軟體 - MyPaint

很有趣的新繪圖軟體,有 Linux 和 Windows 版本
http://mypaint.intilinux.com/
操作很簡單,有很多種有特色的筆刷
據說,有支援壓力感應的裝置,我沒有所以無法測試
對專業軟體來說,這很陽春,
但是以一個相當於小畫家等級的軟體來說,這個棒透了!

Screenshot: http://mypaint.intilinux.com/wp-content/uploads/2008/04/mypaint_sshot_v04.jpg

2008年6月9日 星期一

EeePC 701 實測

今天我實測了手上這台 EeePC 701 的效能,以及電池
Asus EeePC 701 + 重灌 Debian lenny 系統,LXDE 桌面
CPU: Celeron 600 MHz, RAM: 512 MB, 原廠硬體設定,未改裝
用 EeePC 播放 xvid 影片,全速操 CPU

影片是從 DVD 直接用 mencoder rip 下來,
影片長度 1:50,480 x 320,檔案大小約 600 MB
影像用 lavc codec 壓縮 (壓縮率不詳),
音效用 lame mp3 壓縮 (br:128)
在充滿電的情況下,連續全螢幕播放,非常流暢沒有 lag

放完全片約兩小時,還剩下 30% 電力
我重開檔案,重新播放,又放了四十分鐘掉到 10%
出現低電量警示,為了避免損壞,我沒有硬撐到完全沒電為止

昨天我也實測過播放 rmvb 檔案
還外接到投影機 1024 x 768 全螢幕播放,
大致上也還算流暢,沒有明顯的延遲,和網路謠傳的並不一樣。

由此可知到,EeePC 701 的效能表現,在日常用途上
跟一般筆電無異,不但不會慢,而且還非常夠用
電力表現也不輸給一般在3萬到4萬元等級的筆電。

非常低階的硬體規格,相當於七八年前的老電腦
被很多網友批得一無是處,彷彿不升級硬體就完全不堪用
但實際測試的結果,卻相當讓人滿意。

我很好奇這些到處宣稱記憶體一定需要加到 2G 才夠,
CPU 一定要超頻到 900 還嫌慢的玩家,到底都做什麼用途?

在盲目的升級硬體前,不妨先實地測試過,了解自己的需求
而不是跟著網路上的謠言,胡亂的砸錢升級硬體。
像那樣胡亂升級,淘汰很多還很好用的硬體設備,
不過是在浪費錢,又製造更多污染而已。