2010/04/28

CHT8000 如何省電

上次寫了一篇我的3G手機 CHT8000 使用心得,再來貢獻一篇。

是有發現3G手機一下子就沒電了,所謂的一下子,就是撐不到一天。哦?那應該沒人敢用了吧。當然是有發現若用 3G 功能,會耗電很兇,一開始我在晚上睡覺時是直接關機,後來發現開網頁時若把螢幕關閉(輕按左上外側按鈕)的話也會背景抓網頁,所以就沒事關螢幕。

現在則是發現,「飛航模式」下(長按左上外側按鈕))非常省電。若是只是要玩遊戲,請記得把飛航模式開啟。

另外,常常背景有應用程式在執行,我是一開始就去抓了一個軟體,叫 Process Manager, 也下載一個移除軟體叫 AppRemover。前者可以很容易讓我看哪些應用程式在背景跑,沒什麼在用就刪了。

講這議題,就得說說我另一個軟體,叫 fring, 可以讓我用手機上 skype, msn, 目前猜測它會常常三不五時上網,因此沒事我還是得把它關閉。總之總之,沒要上網時開啟飛航模式,不過,這飛航模式也會讓你的手機無法接收來電,對我是沒差,要用此招時請自行評估

遠端桌面 remote desktop

遠端桌面當然有各種協定,有各種工具,底下來講一下兩種方法。

一、用 Ubuntu 的設定:
a. 用GUI 設定:「系統」->「管理」->「登入畫面」,切換到「遠端」的Tab,將「風格」改成「當成本地端」
b. 或是編輯 /etc/gdm/gdm.schemas, 確認一下是不是有把 xdmcp 設成 Enable, 或是看看是不是有這行<key>xdmcp/Enable</key>,若是 Disable 請改成 Enable
c. 「系統」->「偏好設定」->「遠端桌面」, 勾選「允許其他使用者觀看您的桌面」、「允許其他使用者控制您的桌面」、「使用者需要輸入密碼」,並且輸入密碼,而「詢問您以確認」則不要勾選,不過若基於安全考量,你想手動決定別人是否可以用遠端桌面的話,這項反而要勾選。這邊的密碼,是用 vnc viewer 從遠端要連線時輸入用的,可以的話最好不要跟登入密碼相同。

這個方法會讓你從遠端與你的桌面共用。這句話是要仔細看的,也就是兩個人的桌面是相同的,有點像早期我用過的 PC anywhere。也就是,因為一次只能有一個人登入到桌面,所以一次也就只有一個人可以用此方法連線,相較於下面的方法而言,也就不必設定 Port 號,只需要在連線軟體填入該機器的網址即可。

二、用 vnc4server
a. 確定有安裝 vnc4server
b. 用你的帳號執行 vnc4server, 第一次執行的話,它會讓你輸入密碼,說明同上。這個動作會在 $HOME 建立一個 .vnc 目錄,裡面會放個檔案叫 passwd。若需要更改密碼,也可以透過 vncpasswd 來修改。
c. 請注意上面執行的結果訊息,我的如下:
$ vnc4server

New 'wade-laptop:1 (wade)' desktop is wade-laptop:1

Starting applications specified in /home/wade/.vnc/xstartup
Log file is /home/wade/.vnc/wade-laptop:1.log

d. 此時在 PC 端,我是下載 tightvnc,連線時要搭配執行 vnc4server 的訊息,注意到上面是 wade-laptop:1 嗎?如果網路環境設定好,當然可以在 vnc viewer 中填這個值,不過我懶得設,所以直接填 XXX.XXX.XXX.XXX:1

這個方法當然比較麻煩,若重新開機過,你就得自己再下一次 vnc4server 命令,而且每次的 Port 都不見得一樣。要注意的是,若這台機器是多人使用的話,而且大家有在用這種方式連線的話,port 大於 1 是正常的,但是若只有你用,而你看到 port 大於 1, 那代表你執行了兩次,看是要刪掉哪一個,命令是 vnc4server -kill :1

2010/04/27

跨平台環境的建立 .... 你會怎麼用?

這一篇文章簡述了幾種可能用來 cross compile 的選項。另外,我個人很喜歡 scrachbox 的方式,其中經典之作就是 GeeXboX,不過 GeeXboX 你不能只是看首頁,一定要照著下載 source code 來編譯過後才會知道其精神。

乾淨的貓 netcat

貓,通常是有靈性的。嗯嗯,有點太抽象了,netcat 有如 busybox 一樣的萬用特性,在網路上它扮演著非常強的功能,只是一般人都不會用。這一篇文章講解怎樣用 netcat 來發信。該文講的很認真,我就不多說了

2010/04/26

我的3G手機 CHT8000 使用心得

我原本有在用台灣大哥大的 3G 上網,可是啊,台灣大哥大費用800不說,當初只送了一張 usb 3G上網小老鼠,合約到了又不主動給我降價,一氣之下,就跑去中華電信,把我的 3G 上網跟我的手機結合。我家很久沒在用寬頻上網了,將來小孩長大後就再來研究吧,目前是我的手機跟 3G 結合,感覺就很方便。

在還沒談之前,先說說分開與合併的優缺點。
合併優:隨時可以上網,缺:老婆要上網必須要我的手機在她身邊
為了鼓勵大家愛用 Android, 再說一下,最方便的是,非常非常多好玩的遊戲也好、應用也好、輸入法也好,統統是免費的!當然,開發 android 軟體,據說只要得到5星評價夠多,還可以得到免費的 Google Nexus One 手機一台。最需要鼓勵的是,Android 軟體非常自由,不必破解就可以滿足我絕大部份需求,何況,上面還有我要的所有 google 應用。
還有一項要長久才看得出功效的,就是電池可以更換!大家都知道手機一、兩年後就很難待機,而3G手機更是如此,常常要充電,那如果,連基本的電力都保持不住,又要怎麼用?

我到中華電信,選了 CHT8000, 之所以選這個,純粹是因為 Android 手機,竟然只有兩款!好吧,至少這款不必再負擔手機的錢,費用上,也跟我原本的組合式用法差不多,雖然要預繳12000元,但是可以分12期繳,感覺並沒有增加負擔任何費用。

CHT8000要上網,不管是在 WinXP or Ubuntu, 也都很方便。在 XP 有隨附的光碟可以安裝,叫 CHT DialUp, 不過若要在 Win7 的話,千萬千萬不要用隨附的光碟安裝,請參考 http://5i01.com/topicdetail.php?f=423&t=1410153&last=18261051,或下載這個網址下的撥接程式,或是適用 Win7 版的安裝軟體,後者的解壓密碼是小寫的 hw 兩個字,我猜測是「華為」的縮寫。比較常見的情況是,已經在 win7 裝了光碟版的軟體,我試過這樣做的話,想用前面提到的軟體來更新,結果是 FAILED! 不過,還好的是,簡單的去控制台新增移除軟體將原來的(或更新失敗的)的軟體移除後,再重新安裝即可。

至於 Ubuntu 下,只需要在掛載內建 driver 時指定 pid/vid 即可,例如:
$ sudo modprobe usbserial vendor=0x12d1 product=0x1502

若要系統自動認得的話,可以增加 /etc/modprobe.d/usbserial.conf 把上述資料加進去即可。
options usbserial vendor=0x12d1 product=0x1502

最後,我是愛用嘸蝦米沒錯,也喜歡自己修改對應按鍵,剛好 Android 上有一套 LIME 輸入法可以容易做到,請參考 LIME 網站自創對應表,或是參考這邊

最後補充,我的 CHT8000 上用 LIME 時,一開始一直還是出現手寫輸入法,後來利用 gmail 的寫信畫面來當輸入框,才有辦法照文件上的「長按」叫出更改輸入的畫面出來。

2010/04/24

accountability 當責.問責.負責




這是憲哥的一堂課,請見當責

課堂上,老師,也就是憲哥,一直在講什麼叫「負責」什麼叫「當責」,也一直在講「授權」與「賦權」的差異。其實,照我的理解,很多主管根本連什麼叫負責都不知道,完全做不到授權,要跟這些人談當責與賦權,我覺得有點對牛彈琴,只是多舉辦這種課,想必能觸發更多人的神經吧。

先說說我自己,這堂課我很想上,可是朋友剛離開廣達,難得回來跟我吃午餐,害我忘了上課時間,請見諒。三點時又跑去面試了一個小時,為了上這堂課,害我面試時不專心,沒問到對方重點。可見我是真的很重視這課的。現在就來稍微把理解中的當責講講。以下大部份來自上課心得(與講義),不過別以為看了我的文章,你的功力就大增,還是得多上這類的課才有用,親身體驗絕對不一樣的學習成就。

當責的核心精神:
.挹注成果(從頭到尾講的重點就是成果)
.執行力(講成果本來就要靠執行力)
.紀律(這一點非常難解釋,舉個例,公司一直在講要節約,多走樓梯,但是有多少人真的是走樓梯的?)

因為要講執行力,有四項執行力的特質:
.首先要有當責的觀念(要將當責精神深植內心是非常難的)
.能激發同仁活力(自己不先死掉就很高興了,所以真的是很難)
.擅於後續追蹤(不會五分鐘熱度)
.面對棘手問題能迅速做出決定(通常能避則避,或常見猶豫不決)

當然課堂講了很多其他的重點,不過先來談談當責與負責:(常常我們在講負責任的人時,是很貼近當責的,只是當責不止是負責這麼簡單而已)
當責是:
.對別人所訂下的承諾並交出符合的結果
.在責任、在成果上達成目標
.體認與接受並負起發生在管轄範圍內任何活動的全部責任,無論原因為何(是個經理人)
.做對的事
負責是:
.對自己所訂下的承諾並交出符合自己預期的結果(這一點定義我不是很認同)
.有責任感的確實執行被交付的任務
.執行特定任務或上級分派的工作,或圓滿達成被授權的職務內容(是個專業者)
.把事情做對

從上面,可以見到老師企圖把當責引導到更具「成果導向」的路上。上面也提到授權一事,現在再來談談這兩個的差異。(同樣的,這邊對賦權的定義,有時我也是以授權來理解的,有點硬要分成兩個詞的感覺)

授權(Delegation)是:(我發現我之前一直只做到這一階段而已)
.分身分勞
.工作下屬去做,責任上司承擔
.獲授權者揣摩上意,依規依約行事,缺乏獨立思考及判斷(這一點我是有企圖不讓它發生)
.講責任(responsibility)
賦權(Empowerment)是:(我一直很希望遇到這樣的上司,我的前上司或許也這麼自認為)
.全權處理(看似全權處理,很容易變成放羊吃草的境地)
.下屬一併承擔責任(這一點要有同舟共濟的精神,很難做到)
.需有充分資訊,充分能力,充分訓練,充分溝通,要下屬成長,獲賦權者有決策能力,要完成目標(這一點就是我與前主管間缺乏的部份)
.當責(accountability)

課堂上,老師一直在講,當責精神是要給下面的句子加上問號,要大家去質疑:
.雖敗猶榮?
.沒有功勞也有苦勞?
.重視過程而不重視成果?
.志在參加不在得獎?
.只問耕耘不問收獲?
==>當責的精神是,不僅要努力耕耘,更要有收獲,還要將本求利

老師把員工依X(被動-->主動)及Y(負面-->正面)分成四種人:
  .囚犯:就是那種等死的人,一切都在等待
  .過客:就是參與感不重的,叫他做事做的好好的,我稱這種人為混吃的人
  .抱怨者:這種人很積極參與,卻常抱怨。我反省一下,我很常落入這種狀態,不過有點像關起門來抱怨。也很應該改進。
  .玩家:就是積極又正向的當責精神

課堂上,老師講了兩個詞,很值得玩味:
  .分工合作。從小我們就在聽這個詞,但是分工了,就能合作嗎?這也是我一直在懷疑的,老師用下面的詞來說明
  .合作分工。有了共同的目標,再來看怎樣分工。這樣做事才會有「共識」,才能真正犧牲小我完成大我。可是很難,就算危機意識夠強也不見得能做到。就像即使要亡國了,仍然會有漢奸一樣。在講這一點的時候,老師提到賽局理論裡面很有名的「犯人的困局」,若是多人犯案被抓到,警察通常分開問訊,而且,許諾問案對象坦白從寬,抗拒從嚴,通常通常,人在「人不為己天誅地滅」的想法下,都會替自己求最大利益,因此坦白。

所以,來看看當責的七個重要行為:
  .了解公司與您的工作夥伴(嗯嗯,我們常自掃門前雪)
  .設定明確的目標與優先順序
  .實事求是
  .後續追蹤
  .論功行賞(很難,常常是做的要死被念的半死)
  .傳授經驗(也常常被忽略,都有藉口說很忙,或是自己學比較快)
  .了解自我的情緒韌性(不要只會抱怨)

最後最後,來講講 X-Y game

  明明,大家都知道要追求團體最大利益,可惜,這堂課一直到最後,都還是有人只追求自己的最大利益。明明大家都發誓的。遊戲過程我很難在這邊講清楚,我只能說,當考量到私人利益時,團體利益常常是被擺在最後的,殊不知,船沉了,就自己也活不了。當然,職場上,常常大家都會說,此處不留爺,自有留爺處。唉。難矣哉。

剛剛有空跟朋友聊天,把遊戲講過一遍,所以就貼下來,憲哥別罵我(不過我也知道這遊戲其實也是他抄來的,我以前就看過了)。

先說說遊戲規則,要看好哦:
  .整堂課,學員們分六個組
  .每個組,只能選擇X或是選擇Y之一,就是說,你可以選X,也可以選Y,但是不能同時選X及Y
  .我這麼囉嗦的說,只是在說,每一組有選擇權,可以自由選X或是選Y,但是事先你不知道別組選 X or Y
  .所以,最後若六組的結果如下的話,其獎懲也列在下面:
   ○ 6X: 則每一組都扣100元
   ○ 5X1Y: 則選X的組各得100元,選Y的組扣500元
   ○ 4X2Y: 則選X的組各得200元,選Y的組扣400元
   ○ 3X3Y: 則選X的組各得300元,選Y的組扣300元
   ○ 2X4Y: 則選X的組各得200元,選Y的組扣200元
   ○ 1X5Y: 則選X的組各得100元,選Y的組扣100元
   ○ 6Y: 則各組各得100元

我把題目寫在最後,請看的朋友們自己好好看清楚題目:
請你們各盡所能,求獲得最多的錢

其實不管題目如何,如果,如果能大家都投 Y, 就從頭到尾大家都會是贏的。可是拿我的組來說好了,就有組員一直在講,萬一別人投X呢?我說又說不過,一直在第五局之後才說服了大家,堅持從第5局到第10局都投Y。這已經很難了。但是但是,我前面也說了,一直到最後,也沒出現過6Y。這,就是廣達,嗎?

再來補充一點,在個人利益與團體利益的兩難情況下,你會如何選擇?
最後再說一點,題目,其實是求團體的最大利益,選 6X 就是負的,選 6Y 就是正的,其他都是 0, 答案很明顯。
最後最後再說一點,課堂上,根本都沒「錢」,何必一直有人跑票選X,這一點讓我苦悶到現在。
最後最後的最後,上面的那個問句,希望有人能看懂。(這,就是廣達,嗎?)

2010/04/20

shell script 處理空白字元

請參考這篇

一個方法是用 find 來解決,另一個是透過更改 IFS 的環境變數來解決,底下直接列範例:


#!/bin/bash
SAVEIFS=$IFS
IFS=$(echo -en "\n\b")
for f in *
do
echo "$f"
done
IFS=$SAVEIFS




#!/bin/bash
SAVEIFS=$IFS
IFS=$(echo -en "\n\b")
# set me
FILES=/data/*
for f in $FILES
do
echo "$f"
done
IFS=$SAVEIFS


或直接拿來分析 /etc/passwd


while IFS=: read userName passWord userID groupID geCos homeDir userShell
do
echo "$userName -> $homeDir"
done < /etc/passwd


用 find 也行

find . -print0 | while read -d $'\0' file
do
echo -v "$file"
done

2010/04/14

chromium 的建立與執行...under ubuntu -1

我在摸索階段,是完全根據 Chromium OS上的說明來玩的,有些措詞會讓人看不懂。若你的目的是,下載 source code, 自己編譯, 進行「測試」,的話,那麼希望我的文章可以減少您摸索的時間。

一、開發環境的建立

我是直接把我的電腦安裝成 Ubuntu 64, 請見我的前一篇文章。我不想去解決 x86-32 環境是否可以 build, 反正改變自己的系統比較簡單些。

安裝套件:
$ sudo apt-get install bison fakeroot flex g++ g++-multilib gperf \
libapache2-mod-php5 libasound2-dev libbz2-dev libcairo2-dev \
libdbus-glib-1-dev libgconf2-dev libgl1-mesa-dev libglu1-mesa-dev \
libglib2.0-dev libgtk2.0-dev libjpeg62-dev libnspr4-dev libnss3-dev \
libpam0g-dev libsqlite3-dev libxslt1-dev libxss-dev \
mesa-common-dev msttcorefonts patch perl pkg-config python \
python2.5-dev rpm subversion apache2 wdiff lighttpd php5-cgi sun-java6-fonts \
msttcorefonts ttf-dejavu-core ttf-kochi-gothic ttf-kochi-mincho \
  lib32asound2-dev lib32bz2-dev git-core

甚至我還安裝了 virtualbox, qemu 等套件

二、取得原始碼

取得原始碼的話,我是遵照這一篇裡面的安裝 depot_tools來做,把 gclient 放在自己的家目錄中。

有了 gclient, 可以透過 gclient config http://src.chromium.org/svn/trunk/src 來設定 gclient 的環境,不過,請確定你要放 source code 的目錄位置再做此動作。以文件中的方式先放別的地方,再用 link 的方式也是可行。底下講的都是指這個放 source code 的目錄而言。

接下來就是抓 source code, 命令很簡單,就是 $ gclient sync

當然要抓很久很久....建議你去休息看個書,明天再來看。不過,沒理解錯的話(還需要確認),browser 的部份是採用 binary 的這種已編譯好的,若還需要另行編譯 browser 的話,需要參考編譯 Chromium OS裡面的 Option 說明。

三、建立開發系統

在編譯前,我建議一定要有一個認知再去讀原始文件,那就是建立 chromium os 的整個動作,它是建立一個新檔案系統,然後是用 chroot 進去執行的,所以,文件中有 "Inside", "Outside" 分別指的就是在 chroot 裡面,還是外面。換言之,Outside 就是一般你開機後的環境,也就是開發環境。而 Inside 是要透過 ./enter_chroot.sh 之後的環境。這一點尤其在看Running Tests一文時特別要注意。

有了上面的理解之後,當然要先來建立 chroot 的環境,請執行
$ ./make_chroot

建好環境後可以透過下面的方式進入,注意 chroot 環境不必常常重建,以後想要用,也只需要直接執行下面的步驟:
$ ./enter_chroot.sh

四、設定開發對象

接下來是設定環境,首先是設定要給什麼樣的平台使用,這邊只有兩種選擇,一個是 x86-genenric, 一個是 arm-generic,這只是開發環境,因此這兩類也就夠了。我是選 x86-generic
cd ~/trunk/src/scripts
./setup_board --board=x86-generic
echo x86-generic > ~/trunk/src/scripts/.default_board


五、建立測試帳號

ChromiumOS 開機後會需要以 google 帳號登入,或是 ssh 登入,此時請透過底下的方式建立此測試帳號:
./enable_localaccount.sh TEST_ACCOUNT
./set_shared_user_password.sh


六、編譯

就不多說了,直接用下面的命令建立套件及產生影像檔
./build_packages --board=x86-generic
./build_image --board=x86-generic


七、轉換成 virtualbox 或 vmware 虛擬機器環境的影像檔:

./image_to_virtualbox.sh --from=../build/images/x86-generic/0.7..... 這命令會產生一個 os.vdi 在 ../build/images/x86-generic 目錄下

2010/04/08

Chromium OS -- initialize

不知道為什麼,我似乎跟 chromium 脫不了關係,原因就不多說了,現在則要專心來讀讀這個流行的東西。

首先要說的是,chrome、chromium、chrome OS 與 chromium OS 的關係,我底下的認知不見得正確。

一、google 推出的,才叫 chrome, 才叫 chrome OS, 其他人推出的,都只能叫 Chromium 及 Chromium OS
二、Chrome OS 想當然,就是一個極類似 ubuntu or special for qualcomm 的 linux 加上 chrome
三、上面這說法還不見得正確,比較正確的是 Chromium OS 想當然,就是一個極類似 ubuntu or special for qualcomm 的 linux 加上 chromium
四、在編譯上,chromium os 需要 x86_64 的環境,這就導致下面的需求

若你想自己編譯 chromium os, 最好的方式是去 http://cdimages.ubuntu.com/ 找 amd64 的 iso 檔 來安裝。

若想拿到比較新的資訊,可以至 chromium查閱文件。

2010/03/21

致勝讀後心得-winning by Jack Welch

最近在讀致勝,傑克威爾許的中文版,非常值得所有人花點時間閱讀,我相信,在職場上的問題,或多或少都可以在這本書找到答案。

我很慶幸,在家裡,跟老婆相處,我能做到坦誠,書中非常重要的觀念。至於職場?若有看我前面的心得就會知道,我何其不幸。不過,永不言敗,我還是努力的去做好我的角色。

跟過我的人就會知道,我一向有話會直接跟他們說,有時我也會反省,我會不會講太多反而有傷害?我一直在跟我帶的伙伴們說,就算會有擔憂,我還是寧可選擇坦誠。

先講點簡單的,我認為,坦誠是雙向的,甚至是全面的,若只是上對下的坦誠,會變成比較接近溺愛,甚至是包疪,若只是下對上坦誠,會變成愚忠。只有雙向的坦誠,才是健康的環境。

2010/03/19

態度決定一切心得摘要 Attitude is everything

這一本書很久以前讀的,書也不知道被我放到哪兒了,甚至心得也寫下很久了,卻懶得查作者什麼的,請有興趣的人自行翻查。請參考簡報版本


  • 態度決定一切:永不放棄,無欲則剛,除死無大事
    • 工作就意味著責任:
      • 人人應把工作視為使命,負責任做到好。
      • 負責=信任
    • 勇敢地承認錯誤:
      • 能承認錯誤並負起責任者,方能委以重任。
      • 認錯=戰勝自己
    • 工作中無小事:
      • 人人都是螺絲釘。
      • 勿以善小而不為,勿以惡小而為之。
    • 像水牛一樣勤奮:
      • 只有勤奮才能與老闆獲得雙贏。
      • 滾石不生苔
      • 把工作當成自己的事業:
        • 從工作中實現夢想
      • 用心去工作:
        • 勤奮並非把工作當成機械性工作
      • 勞與逸的結合:
        • 最神秘的力量來自日夜交替,四季更替。
        • 終點是再出發的好地方
      • 繼續努力:
        • 鬆懈、安逸與放棄,永遠到不了終點
    • 盡職盡責才能盡善盡美:
      • 盡職只是本分,盡責把工作做好才能完美自己
  • 不要為自己找藉口:別學陳水扁
    • 藉口就是推卸責任:
      • 積極樂觀,持之以恆
    • 沒有任何藉口:
      • 服從、負責、榮譽、貫徹上級意志
      • ☆藉口:不關我事、我很忙、以前不是這樣的、這件事我不會、他比我適合
    • 服從是美德:
      • 覆誦命令、然後守紀律、盡己所能做好它
    • 不要成為藉口的奴隸:
      • 藉口是一種習慣,養成讓藉口遠離的習慣(工作文化)
      • 當老闆需要你時,為他加班、主動承擔任務、對工作表現興趣與熱忱、不做與工作無關的事
  • 這種事不用老闆交待:主動直接的行動為自己為公司爭利益
    • 主動與老闆溝通:
      • 只有學會與老闆溝通,才能把事情做好
      • 學會與老闆溝通才能與他的思想同步
      • 溝通時的態度:
        • 簡潔、不卑不亢、傾聽、勿貶低他人、勿踩在他人頭上
      • 養成注意小細節的習慣
      • 找到溝通的方式:每個人都有不同的溝通方式
      • 替他人留面子
    • 做好自己的工作,不需要老闆分咐:
      • 做好自己的工作是基本要求,卻是成功要素
      • 公司的工作都是自己的工作
      • 主動了解老闆與公司有助於自己工作的推展
    • 為老闆分憂解勞:
      • 這樣的人,誰都喜歡
      • 充實自己,隨時為上級分憂解勞
      • 正確看待工作,設法自己創造職位
    • 自動自發地工作:
      • 別在上級看不到時放鬆自己
      • 君子不欺暗室。
        • 禮記:莫見乎隱,莫顯乎微,故君子慎其獨也
      • 去發現需要的工作,哪怕那不是你的工作
  • 養成積極主動的習慣
    • 每天多做一點點:
      • 不止盡職盡責,不懈怠,成就自己與別人
    • 不要只為薪水工作:
      • 經驗的累積,從工作中創造自己的價值
      • ☆指的是對工作敷衍了事、到處兼職、隨時準備跳槽
    • 公司的每一件事,都值得我們去做:
      • 做好每件事者,方對公司最有價值
      • 即使日常生活中最平凡的事,也值得全神貫注地完成
      • 不積跬步無以至千里之外,不積小流無以成江海之大
    • 向老闆積極表現自己:
      • 不要以為這樣會踐踏別人,也別嫉妒別人
      • 提高自己的悟性,多用心體會上級的用心與用意
      • 設法讓自己與上級的思想同步,並適時予以鼓勵與理解
      • 關鍵時刻露一手:勇敢承擔重大的任務
      • 常用肯定的語氣
      • 讓老闆知道你的成績
      • 讓自己忙碌
      • 蛋糕若像一坨大便,再怎麼好吃也不會被看中
    • 比老闆更積極主動:
      • 老闆之所以是老闆,正因為他或他的祖先積極主動
      • 行動在老闆前面,並以此時刻勉勵自己
  • 把信送給加西亞:
    • 老闆看重的是具行動力的員工
    • 克服懶人的毛病
      • 懶是人類的大敵
      • 人無法完美,卻能從克服缺點做起
      • 煮青蛙的故事
    • 杜絕拖延:
      • 把握好時間,不要拖延,並追根究柢。
      • 勿以完美做藉口
    • 愈急的事要愈放慢腳步,冷靜仔細做好
    • 立刻行動起來:
      • 埋怨與等待對工作完全沒幫助
    • 最悲哀的一句話:
      • 我當初真該那麼做 ((卻沒有做))
    • 做一匹高效率的千里馬:
      • 耐跑而且會真的跑
    • 分清工作的輕重緩急
    • 不要延長你的工作時間:
      • 加班並不會讓人有效率
      • 延長工作時間會帶來藉口

2010/02/26

員工的心聲-25-悶燒與揭盅

悶燒應該對上「掀鍋」才對,不過我要講的不是爆發這種掀鍋行為,比較接近揭盅

賭博裡面有一種寶盅,裡面什麼牌,總要等到揭盅那一刻才會呈現在大家眼前。職場也常這樣,常搞神秘,常常發生「我」是最後一個知道的,上司在想什麼總是跟你不一樣。我之前有寫過一篇請下凡人間指的是要聽屬下的心聲,還有一篇請告訴我做的好不好這也是類似的,常常在要你離職那一刻主管把你視為糞土。

而相對的,員工也是,這篇主要是在講身為員工的我,之前犯的一個重大毛病就是,有心事都不會主動跟主管講。原本我以為離開前工作時我就學到了,因為當時該部門副總直接來找我談的時候,就指出員工在遇到部門有改進之處時,應該主動越級上報。問題是這邊的文化讓我遲疑,讓我寧可旁觀,請見我前面的心聲就可以知道我的想法。

員工自己也是常常發生「直到要離職了才告訴主管你在想什麼」,這也是非常要不得的現象。我知道大家的想法,因為我也是員工的一份子,畢竟,你的考績掌握在主管手裡,所以絕大多數的人總是不願意講,怕一講就影響自己在主管心中的印象。但是請想想,若主管沒雅量廣納建言,那再跟著這樣的主管只是平添苦悶而已,我是指,不講結果就是待不下去,講了也許還有改進空間。問題是現實生活就是這樣,離開了這個工作恐怕很難再找到相當的工作,甚至還有可能就此失業,因此導致很多人不敢提建言或指出組織的問題。

對公司或是整個部門來說,把心事放在心中然後直到下定決心離職的員工,對公司或部門並沒有任何好處,相反的員工因不平而離開,這中間過程會把壞的影響留下來。所以,我在整個事件過程中,我下定決心要中止這樣的我。

其實很多時候,主管都只聽到片面的訊息,如果每個人都能敞開心胸做好溝通的話,我相信事情會好轉,就算是我目前的處境也是。我不會再讓事情重演!如果把話講明了,主管不能接受,到時候再處理會比把心事一直悶燒在心裡好。

最近發生了很多事,整個事件讓我知道,包括我之前羞於與人打招呼,這些都可以做的更好。

2010/02/24

員工的心聲-24-我不會讓她撒野 I will not let her act wildly

一個主管的重要性不必我多說,可惜的是,我現在遇到的就是主管不對。

既然叫主管,總是有帶人,帶一個團隊有其必須具備的基本職能,包括如何激勵員工,如何讓團隊同心協力,如何協助員工解決問題。可是這邊的狀況卻是全然看不到這樣子的基本作為。我一直以「混亂」來形容這邊的現況,而對這邊的主管,我則給予「亂搞」的評價。當然,在說別人之前要先檢討自己,我為了怕落入這種狀況,一直採取明哲保身的態度在做事,這當然非常要不得,可惜這邊的問題太複雜了。

我講一個很簡單的情形來說明我的苦處。很多人很愛貼標籤,總愛「自己人」,總想要建立「自己的團隊」,其實我一開始也在這個自己人當中,問題是我只想做事,我不想跟他們搞團隊的事,所以我不跟這些愛搞圈圈的人吃中餐。搞團隊也沒什麼不好,只是我就看不慣我所屬團隊的行事作風,從一開始就看不慣。這就很慘,我又不能屬於別的團隊,而在我有了自己的 team 之後,我還怕落人口舌,直接導致我也無法跟我的 team member 吃中餐。很慘不是?

在我可以見到的情形下,幾乎每一個團隊都非常的混亂,在我確定要離職後,我才有比較好的心情去進一步了解,竟然得到一個結論,發現主其事者一直認為「做前段」的人非常重要。他親口對我說,「我保護你」,把我擺在後段保護起來,問題是綜觀全局後就會發現,他重用的人都是所謂前段的人。看到這兒也許你會問:我是覺得不受重用才想離職嗎?並不是,因為我的這個認知是在我確定離職後才發現的。

大頭的這個作法讓無德無能的人當主管,給予豐厚的薪水、股票、績效,就算不符公司用人政策也蠻幹使其升職甚至是位居高位。這樣的用人政策會帶來立即的衝突,在上位者無法御下,事實上對只想好好做事的屬下來說這或許還不是最嚴重的問題,更慘的是這樣的主管要嘛是不會做事,要嘛就是亂搞。

有個被大頭重用的副理級,甚至可以把他的主管搞走,就更不用說底下被搞的雞飛狗跳。他基本上專業職能不會也就算了,連自己負責的職務都不會,做前段就什麼都不會,要如何帶人?亂下指令也就算了,竟然還背著某人的背後對其他屬下說了一句經典的話「我不會讓她撒野」。這是當主管應有的處事作法嗎?

很可憐的是,我遇到比較好的主管,要嘛不是失敗,要嘛就是我選擇離職。失敗有時不是主管的問題,而離職更是整個公司的問題。我遇到最稱職的主管,其公司在其專業領域內是世界第一。除此之外,我甚少遇到具備不管是上課或是書上所說的「領導」職能的主管。嗚乎哀哉。

我們常在談什麼:新加坡能為何台灣不能,或是日本能為何台灣不能,或是韓國能為何台灣不能,甚至是中國能為何台灣不能。我在想,若每個人的專業職能都訓練好了,有組織有章程的做事,想必要成功就近了吧。

2010/02/23

員工的心聲 -23-小細節決定勝負

自從去年12月寫完「員工的心聲」後,就再也沒力氣去修改,那些其實寫的很亂,也沒有全部寫完。最近過了個不錯的年,趁心情還不錯再來補充一下。

以前,我曾經有一個新工作在報到後,不管是座位、文具、電話、甚至「注意事項」或是「長官講話」什麼的都準備好了。而某些工作的狀況卻是:文具?哦,請寫申請表,電話?還需要申請,垃圾桶?還沒買.....例如我現在旁邊那位就是,他的垃圾桶還是因為我要離開了把我的給他用才有(註)。這邊舉例的兩家公司都很大,但是一個是全台第一,世界排的上號,另一個卻有逐漸走下坡的風險。

會講這個說真的非常小的細節的事,是因為我現在要離開這個工作了近兩年的部門,就是一切小細節都不在乎,這狀況讓我非常非常忍受不了。我自認為自己已經是一個不注重小節的人,可是竟然還能遇到讓我受不了的部門,實在也算是神奇。

我的部門會發生像,工廠發出 email 來呼鑰 RD and PM, 請他們尊重公司的生產規則。然後也發生過,一個產品的生產流程可以從 A stage-->B stage-->C stage 再變回 A Stage....這麼誇張的事都會發生,神奇。這邊舉的只是一點點小故事,而且已遠遠超過小細節的範疇,主管人員若還無法警惕到而做些改變,其未來真的令人擔憂。

早上我要出門前,我會看看我的鞋子是不是很髒了,因為有人說,從鞋子可以看主人。每天上班,我會稍微檢查一下我的服裝儀容,因為有時我會發現我的拉鏈竟然沒拉上。細節決定一個人的成功,所以我也會養成在某些小事的注重。當然每個人看重的東西不一樣,譬如我上班會盤腿坐,但是我每天必定穿戴整齊出門,就算每天看起來都穿同一套衣服。

再舉例來說,我的桌面是亂的,但是很少東西互相疊來疊去的,又譬如像有些垃圾是可以資源回收的,我會多走幾十步路去分類置放。如果可以像我的部門這樣,我從報到起算十來個月就可以搬七次座位,似乎也可以預見某些未來吧!

註:寫這篇文章的起因,就是垃圾桶事件造成的,標題本來想寫成「請給我垃圾桶」

2010/02/12

what is success? 什麼叫成功?

當 RD....一個最起碼的成功,個人覺得至少有三個面向:

「老闆拚命幫我加薪」、「(team)持續成長」、「做出大賣的產品」

「老闆要拚命幫我加薪」

貫徹執行上級命令,與其他 team 合作愉快,突出的績效(不止完成上級交辦任務而已),主動解決問題,了解上司的喜好並滿足之,發明王(新技術、新產品),豐富自己不斷成長的潛質(例如能夠學習怎樣更有效學習)

「(team)持續成長」

team 不是只有一直找人就好,要有低的流動率,高的工作效率,接受任何艱鉅任務,有高效執行力,能有效善用 team 的能力,不斷累積專業技術,與團隊合作默契極佳

「做出大賣的產品」

產品要有高毛利(用最少的人賺最多的錢),高品質,差異化(比別人強比別人好比別人更多功能),要很會 Demo(推廣時需要),知名度高,產品黏著力強(就是人家愛用,常用),高創意(別人想不到,而且大家愛用),高附加價值

這三個都能做到,我想,也就算成功了吧,當然,這邊在講的是指軟體方面的,譬如帶負責應用程式 team, 但是相同的思考應用在不同的專業上應該也是可以互通的。

2010/01/18

build handvu-beta3 on ubuntu

HandVu 是一套利用 OpenCV 來做手勢控制的函式庫,作者大概已經沒空再維護了, 有興趣的人可以自行參考。

在 ubuntu 9.10 上編譯,建議使用 OpenCV 1.0, 但是會遇到幾個錯誤,底下把 Patch 貼上來

diff -ruN handvu-beta3/cubicles/CascadeFileParser.yy handvu/cubicles/CascadeFileParser.yy
--- handvu-beta3/cubicles/CascadeFileParser.yy 2004-10-10 01:04:53.000000000 +0800
+++ handvu/cubicles/CascadeFileParser.yy 2010-01-18 09:24:21.000000000 +0800
@@ -60,6 +60,7 @@
////////////////////////////////////////////////////////////////////

%{
+#include <string.h>
#include "Cascade.h"
#include "Classifiers.h"
#include "IntegralFeatures.h"
diff -ruN handvu-beta3/cubicles/IntegralFeatures.cpp handvu/cubicles/IntegralFeatures.cpp
--- handvu-beta3/cubicles/IntegralFeatures.cpp 2005-10-29 01:47:04.000000000 +0800
+++ handvu/cubicles/IntegralFeatures.cpp 2010-01-18 09:19:54.000000000 +0800
@@ -62,6 +62,9 @@
////////////////////////////////////////////////////////////////////


+#include <limits.h>
+#include <alloca.h>
+
#include "cubicles.hpp"
#include "IntegralFeatures.h"
#include "Exceptions.h"
diff -ruN handvu-beta3/cubicles/IntegralFeaturesSame.cpp handvu/cubicles/IntegralFeaturesSame.cpp
--- handvu-beta3/cubicles/IntegralFeaturesSame.cpp 2004-11-11 09:58:58.000000000 +0800
+++ handvu/cubicles/IntegralFeaturesSame.cpp 2010-01-18 09:20:34.000000000 +0800
@@ -65,6 +65,7 @@
////////////////////////////////////////////////////////////////////


+#include <alloca.h>
#include "cubicles.hpp"
#include "IntegralFeatures.h"
#include "Exceptions.h"
diff -ruN handvu-beta3/cubicles/IntegralImage.cxx handvu/cubicles/IntegralImage.cxx
--- handvu-beta3/cubicles/IntegralImage.cxx 2005-02-12 10:00:59.000000000 +0800
+++ handvu/cubicles/IntegralImage.cxx 2010-01-18 09:41:57.000000000 +0800
@@ -64,6 +64,8 @@
////////////////////////////////////////////////////////////////////


+#include <stdio.h>
+#include <string.h>
#include <math.h>
#include <ostream>

diff -ruN handvu-beta3/cubicles/Scanner.h handvu/cubicles/Scanner.h
--- handvu-beta3/cubicles/Scanner.h 2005-02-12 10:00:59.000000000 +0800
+++ handvu/cubicles/Scanner.h 2010-01-18 09:41:34.000000000 +0800
@@ -63,6 +63,7 @@
#ifndef __SCANNER_H
#define __SCANNER_H

+#include <limits.h>
#include "IntegralImage.h"
#ifdef HAVE_FLOAT_H
#include <float.h>
diff -ruN handvu-beta3/handvu/CubicleWrapper.cpp handvu/handvu/CubicleWrapper.cpp
--- handvu-beta3/handvu/CubicleWrapper.cpp 2005-10-31 05:16:03.000000000 +0800
+++ handvu/handvu/CubicleWrapper.cpp 2010-01-18 09:53:24.000000000 +0800
@@ -21,6 +21,7 @@
* $Id: CubicleWrapper.cpp,v 1.13 2005/10/30 21:16:03 matz Exp $
**/

+#include <limits.h>
#include "Common.h"
#include "CubicleWrapper.h"
#include "HandVu.hpp"
diff -ruN handvu-beta3/handvu/FileHandling.cpp handvu/handvu/FileHandling.cpp
--- handvu-beta3/handvu/FileHandling.cpp 2005-08-16 08:14:26.000000000 +0800
+++ handvu/handvu/FileHandling.cpp 2010-01-18 10:12:57.000000000 +0800
@@ -21,6 +21,13 @@
* $Id: FileHandling.cpp,v 1.6 2005/08/16 00:14:26 matz Exp $
**/

+#include <string.h>
+
#include "Common.h"
#include "FileHandling.h"
#include "Exceptions.h"
@@ -135,8 +142,8 @@
fname[0] = 0;
ext[0] = 0;

- char* slashpos = strrchr(path, '/');
- char* dotpos = strrchr(path, '.');
+ char* slashpos = strrchr((char*)path, '/');
+ char* dotpos = strrchr((char*)path, '.');

if (slashpos==NULL) {
if (dotpos==NULL) {
diff -ruN handvu-beta3/handvu/HandVu.cpp handvu/handvu/HandVu.cpp
--- handvu-beta3/handvu/HandVu.cpp 2006-01-04 08:55:29.000000000 +0800
+++ handvu/handvu/HandVu.cpp 2010-01-18 09:50:37.000000000 +0800
@@ -24,6 +24,7 @@
// HandVu.cpp: main library implementation file
//

+#include <limits.h>
#include "Common.h"
#include "CubicleWrapper.h"
#include "Skincolor.h"
diff -ruN handvu-beta3/handvu/Mask.cpp handvu/handvu/Mask.cpp
--- handvu-beta3/handvu/Mask.cpp 2005-08-16 08:14:26.000000000 +0800
+++ handvu/handvu/Mask.cpp 2010-01-18 10:01:45.000000000 +0800
@@ -21,6 +21,8 @@
* $Id: Mask.cpp,v 1.7 2005/08/16 00:14:26 matz Exp $
**/

+#include <cstring>
+#include <stdlib.h>
#include "Common.h"
#include "Mask.h"
#include "Exceptions.h"

2010/01/13

洪朝貴之「扭曲的智財宣導及評鑑制度 迫使大學追逐『內耗型競爭力』」

請見洪朝貴之「扭曲的智財宣導及評鑑制度 迫使大學追逐『內耗型競爭力』」一文,或至洪教授 blog

這篇文章講了很重要的課題,專利、創新、與進步的關係。把章節標題摘述如下:

一、創新
二、擴散
三、忘記擴散的創新
四、傷害擴散的創新
五、讓真相擴散吧!

站的更高,就應該看的更遠

欲窮千里目,更上一層樓。

上面這句話是對的,但是站的更高,就能看的更遠嗎?常常很令人遺憾,有些人站的高卻只會產生更害怕的心,有些人站的高了卻因為目光短淺,反而眼前基本的事都看不到。

站的更高,就應該看的更遠,走的最前,就應該更鋒銳。

2010/01/07

你在「打造菁英」,還是「改造菁英」?

這標題是大師輕鬆讀353期〈新時代指揮官〉裡的,很早就想貼了,底下把該網址所摘要出來的觀點貼一下:

.觀點一:正視「高階菁英」自我發展的意願及可塑性
.觀點二:勿將「菁英培育」與「績效改善」混為一談
.觀點三:移轉焦點至關注「初階菁英」的培育

綜觀上面的觀點,若細看內容,有不少跟我貼過的員工的心聲很像,總共寫了二十幾點,也算嘔心瀝血之作。

觀點一,主要是講「個人意願」,其實這是可以引導,或是可以討論的,但是很大部份的情況是根本就沒有尊重個人意願,也沒去引導,沒有討論。很多長官以為尊重就是員工想做什麼就讓他做什麼,其實這真的是大錯特錯。尊重是一個日常生活上,尊重是心靈上與思維上的,巨細彌遺。正因為如此,引導的過程很花時間,而且容易讓人失去耐性,所以真正能「正視『高階菁英』自我發展的意願及可塑性」幾乎不存在。

觀點二,其實可以看成菁英是才是菁英,而不是要把爛人變菁英,需要做的是把菁英變的更好用。爛人之所以爛,就是因為爛,是沒辦法變好的。我以前是個農夫,爛掉的菜從來不可能變成生機勃勃。所以重點有時會變成,找出怎樣才是菁英人才。以前種菜時,你可以很容易從葉子一眼看出是好是壞,人才呢?是不是也有明顯的標記?答案是有的,但是不想在這邊多說,但是很肯定的,那種平常沒事在你身邊哈拉的,通常只是吃菜葉的蟲,而不是生機勃勃的菜。

觀點三,其實在講的是伯樂問題,已經是菁英的人自己會努力奮發向上,自己會主動學習,而沒經驗的優秀人才,幾年後常常會懷才不遇。不過....

若統合上面三點來看,其實有根本的二個問題,一個是溝通不足,這邊的溝通也可以說是篩選,另一個問題是管理上的制度與執行面問題。這邊不想說太多,只希望身為管理者能多好好想想,不要老是只看眼前,不要老是只急著獲利,重視菁英的發掘與培育。

2009/12/23

2009 微軟多點觸控大賽亞軍