Monday, November 21, 2011

DIR-300 B1 版 AP 回復原廠 Firmware 的方法

關閉 DIR-300 的電源,先按下 DIR-300 背面的 Reset 鍵不要放開,再開電源還是要按著 Reset 鍵不放等超過 10 秒,這時 DIR-300 應該已經進入急救模式下,可以放開 Reset 鍵,電腦用網路線接上 LAN port,要設定電腦的 IP 為 192.168.0.2,之後就可以在急救模式下進 http://192.168.0.1 在急救模式網頁中去選擇原廠的 DIR-300 B1軔體檔案即可刷回。

Wednesday, September 07, 2011

Build Emacs 23 on Ubuntu 6.06 LTS

1. Packages to be installed before build Emacs
sudo aptitude install build-essential libxpm-dev libungif4-dev libtiff4-dev libjpeg-dev libgtk2.0-dev xaw3dg-dev libdbus-glib-1-dev libgpmg1-dev libgnome-dev libotf-dev

2. Configure and make Emacs
tar axf emacs-23.3.tar.bz2
mkdir bld
cd bld
../emacs-23.3/configure --without-pop --with-x-toolkit
make

3. The result (click to see the rendering of TrueType font)
4. If only console mode Emacs is needed, configure and make Emacs as
tar axf emacs-23.3.tar.bz2
mkdir bld
cd bld
../emacs-23.3/configure --without-x
make

Thursday, September 01, 2011

自己編的 library 無法被系統使用

在使用 Ubuntu 時,有些自己編的 library DSO 沒有辦法被系統自動引用,解法是先把要加入 library search path 的路徑加入 /etc/ld.so.conf,再使用 ldconfig 來重建 DSO 的搜尋 cache。


$ tmux
tmux: error while loading shared libraries: libevent-2.0.so.5: cannot open shared object file: No such file or directory
$ cat /etc/ld.so.conf
/usr/local/lib
$ sudo ldconfig -v
$ tmux
....

Speedup KVM disk access



http://arstechnica.com/civis/viewtopic.php?f=16&t=1143694


virsh -c qemu:///system edit devubuntu


change from
        <driver name='qemu' type='raw'/>
to
        <driver name='qemu' type='raw' cache='none'/>

找出所有行尾含有空白字元的檔案


find . -name *.[ch] | xargs egrep -l "[[:space:]]+$"

Friday, May 06, 2011

Flush Disk Cache

sync; echo 3 > /proc/sys/vm/drop_caches

NFS client


$ sudo apt-get install nfs-common
$ showmount -e 192.168.63.1
Export list for 192.168.63.1:
/tvixhd1 (everyone)
/tvixhd2 (everyone)
/tvixhd3 (everyone)
/tvixhd4 (everyone)
$ mkdir qq
$ sudo mount -t nfs 192.168.63.1:/tvixhd1 qq

Windows 上的免費 NFS server

Here is a list of free NFS server for Windows:
http://www.serassio.it/download/download.htm
http://sourceforge.net/projects/winnfsd/

http://sourceforge.net/projects/sossnt/

Friday, April 01, 2011

免安裝 dos2unix 就可以達到一樣的效果

cat orig_file | col -b > new_file
tr -d "\015" < orig_file > new_file

你說那 unix2dos 呢?
對不起,沒有這種需要。

Install telnetd

如果只是為了要開發用,在 virtual machine 上裝 SSH server 實在是有點浪費 CPU,因為中間的連線都是在本機上,卻還要做不必要的 encryption/decryption。

可以只裝 telnetd 就好了,像這樣:

sudo apt-get install telnetd
sudo /etc/init.d/openbsd-inetd start

然後就可以 telnet 進去了,心裡上會快一點。

Friday, March 25, 2011

Install NFS

1. NFS server install

$ sudo apt-get install nfs-kernel-server
$ cat /etc/exports
# /etc/exports: the access control list for filesystems which may be exported
#      to NFS clients.  See exports(5).
/data/work     *(rw,sync)
$ cd /etc/init.d
$ sudo ./nfs-kernel-server restart

2. NFS client install

$ sudo apt-get install nfs-common
$ showmount -e 192.168.0.105
Export list for 192.168.0.105:
/data/work    *
$ mkdir /work
$ sudo mount -o soft,intr,rsize=8192,wsize=8192 192.168.0.105:/data/work /work

Friday, March 18, 2011

運將老爸的眼淚


運將老爸的眼淚

文:張傑

人,天生就不自由,因為無法選擇父母。

生在一個破碎家庭,注定從小要承受更多心理煎熬、旁人的異樣眼光,甚至冷嘲熱諷;儘管比別人加倍努力,還不一定能出人頭地;一不小心,就會安於平庸,把家庭背景當成自甘墮落的藉口。

這兩年,台灣社會更加M型化,貧富差距拉大,教育資源的差距也跟著拉大,在討論教育問題時,常有人用「命定論」的口吻,給那些弱勢家庭的孩子宣判死刑:認為他們沒錢讀雙語幼稚園、沒錢補習、沒錢讀貴族私校、考不上明星高中,輸在起跑點,注定矮人一截。

但真的這麼宿命嗎?

底下我要講的這個故事,是我跑教育新聞十幾年來,少數在採訪過程強忍住不掉淚的感人故事。男主角是個不向命運低頭的單親技職生,是如此拚命向上,讓人心疼、憐惜,更讓人不禁豎起大拇指,要為他致上最高敬意。

他原本有個美滿家庭,但在國一時,父親經營車行失敗,欠了大筆債務,房屋被查封,媽媽非常瞧不起丈夫,就收拾行李離婚跑人了,在理髮店工作,留下他和他姊姊;更悲慘的是,連他姊姊也唾棄爸爸,從沒給好臉色看,最後也跟著離家出走,不知去向,留下父子倆相依為命。

為償還大筆債務,爸爸靠行開計程車維生,車子是租的,每天固定要繳錢回車行,遇到不景氣時,跑不到客人,有時都還要倒貼租金,某次繳完租金,身上只剩下十塊錢坐公車回家,連飯都沒得吃。

他中學六年全勤、早早到校,這是孝順爸爸最好的方法因為收入少,父親只好在關渡山上租間廉價的小房子,他每天上學要步行半小時才能到關渡捷運站搭車到校,但他從國中到高職都拿全勤,每天總是班上到校最早的前幾名,因為他說,「這是孝順爸爸,不讓他擔心最好的方式」,父親無法給他什麼,一切得靠自己努力。

在青春期遇到父母離婚,加上生活困頓,他國中成績很難不被影響,高中考得不理想,後來就讀學費比較便宜的南港高工模具科,也就是專門培養「黑手」的地方。

在台灣,中學生被畫分成兩種階級,一種是將來準備考大學的普通高中生,另一種是為就業準備,或只能考次一級四技二專的高職生。

很奇怪地,台灣的高中和高職生很少交流,且後者常被前者看不起。

這些高職生往往來自弱勢家庭,卻因在升學之路矮人一截,就被歧視為「次等國民」;尤其讀高職模具科當黑手,更形同以前國中放牛班,前途不被看好,好像一步「死棋」。

但他並未因此自甘墮落,高職三年依舊拿全勤獎,成績永遠保持前三名,平時同學討論哪裡有好玩好吃的,他都是默默聽著、一聲不吭,因為他沒有錢,更沒時間讓他揮霍青春。

他是個不偷懶的好孩子,生活有理想、有規畫,他擔任學校日研社副社長,通過日語四級檢定;還利用假日到師大外語中心學法文,班上他最小,卻最認真;他不像許多明星高中生很自私、只會死讀書,課餘他當志工,是學校圖書館及動物園的長期義工,證書獎狀厚厚一疊。他善用生命中的每一刻,高職畢業時已考上兩張證照,拿過科展優等,是北市特殊優良學生,還榮獲十大傑出高職生獲教育部長表揚。

被北一女同學拋棄,刺激他出人頭地

但真正推他一把的,卻是拋棄他的北一女學生!

他和她是國中同學,彼此互有好感,沒想到畢業後,一個上北一女,一個卻只考上南港高工,兩人等於被分發到不同世界,北一女交一個南港高工的男友,潛意識可能覺得丟臉、擔心被人笑。但她並未因此和他斷絕來往,他的電腦繪圖能力很強,總是幫女孩應付所有大大小小的美編、壁報;北一女選修電子計算機概論,老師出了六道習題,都是他抓刀代答。

有一天,他終於忍不住愛意,問她:「妳能不能當我女朋友?」沒想到她冷淡地說:「我們只是同學而已。」更讓他傷心的是,她說已有男友,也就讀明星高中。

「讀高職的男生,就不是人嗎?就不能公平競爭嗎?我長得也不差呀!(事實上,他長得滿帥的)」

他知道這女孩,就像他的媽媽瞧不起他爸爸一樣,這讓他憤憤不平,覺得被利用,轉成激發他向上的強烈動機。

就在這個時候,他發現爸爸在外面有了「阿姨」,最近很少回家;媽媽聽說也交了男友;姐姐又不知去向。他深受雙重打擊,覺得全天下只剩自己孤單一人,無依無靠,唯一的目標,只能不斷往前衝。

「老師,只剩高三這一年,我不補習考得上國立大學嗎?」有天他找模具科的邱老師面談,老師聽他娓娓道出心路歷程,覺得好心酸,發誓一定要拉這孩子一把,鼓勵他大有機會。

於是他每周訂定讀書計畫,鎖定推甄台科大高分子工程系,才高三上就已準備好厚厚一疊推甄資料,果然順利錄取。爸爸知道兒子考上台科大,真的很高興,卻也很憂心,因為,他爸爸還沒還清債,根本出不起學費,只好很難過地告訴他:「要讀,只能自己想辦法出學費。」

他大學四年,打工了六個多學期,還賺錢給老爸。就這樣,大學四年來,他沒向爸爸要過一毛錢,除了第一學期用助學貸款,其他六個多學期,他都拼命打工付學費跟生活費,甚至還拿錢給爸爸補貼家用。

但他並未因此犧牲功課。這四年來,他犧牲所有休閒、玩樂,不像一般大學生逛街、花錢、治裝打扮、到處聚餐、唱KTV,他根本沒時間,也沒本錢。他連女朋友都不敢交。生活除了打工,就是讀書。

由於對於高職學的模具、機械較有興趣,大四那年,他跨組考研究所,竟然榮登台科大自動控制所榜首,同時更考上台大機械所。

放榜當天,他去找教授,教授一個個問錄取生讀什麼高中、什麼大學畢業?每個幾乎都是建中、附中、竹中、台、清、交大,一路讀明星學校。

問到他時,他很坦然地說,台科大。教授說:「哦∼不錯啊!什麼高中畢業?」「南港。」「南港高中?」他搖搖頭:「南港高工。」教授看著他,點點頭。他大概是所有錄取生「出身」最低的一個,也就格外讓教授好奇與敬佩。

兒子考上台大,老爸為何覺得丟臉,泣不成聲?

他錄取台大後,先向高職邱老師通報喜訊,找完台大教授,再打電話給正在開計程車的爸爸,告訴爸爸,他考上台大研究所了,要爸爸也要勇敢活下去。

他爸爸接完電話,當場淚如雨下,再也無法做生意,一路開著車回家,然後打電話給邱老師,一邊講、一邊哭:「老師,真的很感謝你──(啜泣),今天我在大業路紅綠燈下,接到兒子考上台大的電話,一時全身發麻無力開車,隨後放聲大哭,把後座的乘客嚇壞了。」

明明兒子考上台大,是件很光榮的事,運將老爸卻一點也高興不起來:「因為我覺得好愧疚,這四年來,我沒給過這孩子一毛錢,他考大學、研究所,我沒出過半點力,他卻這麼爭氣。我這苦命的孩子,爸爸沒有盡到做父親的責任,讓你自己長大.....」落魄的老爸泣不成聲。

「這些年來,女兒沒給過我好臉色看,早已唾棄我,目前離家不知落腳哪裡。只有兒子對我不離不棄,還常問我『爸爸你過得去嗎?』、『爸不用擔心我,我已領薪水了』、『爸,開車不要開得太晚』,他考上台大,我只有慚愧,不敢有喜悅......。」(聽邱老師講到這一段時,我別過頭,因為眼裡已泛滿眼淚)

當老婆跟女兒相繼離去後,若非這兒子還在身邊,勇敢地為了自己和爸爸而活下去,三不五時給老爸噓寒問暖,這一文不值的運將,早已沒有活下去的勇氣。台大研究所放榜那天,兒子打電話來,鼓勵老爸,也要勇敢活下去,讓他徹徹底底潰堤了,一個客人都不能載,就這樣哭了一整天。

邱老師後來把這個故事告訴鄭姓同事,同事再轉述給就讀台大中文所的女兒聽,她聽了熱淚盈眶,曾寫下這個故事,很多網友轉載。

她文末說:「我想,這孩子一定會成功的,在那樣的逆境,是我怎麼想都沒辦法想像的,從來不愁吃不愁穿的我,真的可說是十分汗顏,當我還在想著買多少化妝品、買多少衣服時,當我還在計較著怎麼我的錢都不夠我吃喝玩樂加打扮時,有人這麼辛苦而又勇敢的生活著。」

「這是千真萬確的事實,就發生在今天的台灣。在這個時代,勇敢的人,依然存在。」

(謹以本文獻給每天奮鬥不懈的單親兒,及每天鼓勵弱勢中小學生的偉大老師!)

Tuesday, March 15, 2011

在 Emacs 中使用 Shift Function Key

1. 這是 key mapping,使用 S-F1 C-h l 來取得的:
S-F1
ESC [ 2 3 ~

S-F2
ESC [ 2 4 ~

S-F3
ESC [ 2 5 ~

S-F4
ESC [ 2 6 ~

S-F5
ESC [ 2 8 ~

S-F6
ESC [ 2 9 ~

S-F7
ESC [ 3 1 ~

S-F8
ESC [ 3 2 ~

S-F9
ESC [ 3 3 ~

S-F10
ESC [ 3 4 ~

2. 在 .emacs 中這樣加:
(global-set-key (kbd "ESC [ 3 2 ~") 'whatever) ; S-F8

安裝 Samba server 使得 VMware 中的資料可以被 Windows 訪問

1. 裝 Samba
sudo apt-get install samba

2. 新增 Samba user 並設定 account
sudo smbpasswd -a $USER

3. 修改 Samba 的設定,使得 Windows 可以訪問
sudo emacs /etc/samba/smb.conf

改成這樣:
[global]
# Let Samba share follow symbolic links
follow symlink = yes
wide symlinks = yes
unix extensions = no

[homes]
comment = Home Directories
browseable = no
valid users = %S
writable = yes
create mask = 0664
directory mask = 0775

4. 重啟 Samba server,使得新的設定生效
sudo /etc/init.d/samba restart
在較新版本的 Linux 中,可能要這樣
sudo restart smbd

5. 測試看看新建好的 Samba server
sudo testparm

高雄路名由來

網路上找到的:

一心 萬眾一心
書經,泰誓:〔予有臣三千惟一心。〕

二聖 文聖孔子 武聖關公
(或 周文王、周武王)

三多 多福 多壽 多男子。多富音似多福。
莊子,天地:〔使聖人富,使聖人壽,使聖人多男子。〕

四維 禮 義 廉 恥
管子,牧民:〔國有四維:一曰禮,二曰義,三曰廉,四曰恥。〕

五福 長壽 富貴 康寧 攸好德 考終命
書經,洪範:〔五福:一曰壽,二曰富,三曰康寧,四曰攸好德,五曰考終命。〕

六合 天 地 東 西 南 北。天地四方,宇宙之意。
莊子,齊物:〔六合之外,聖人存而不論;六合之內,聖人論而不議。〕

七賢 嵇康 阮籍 山濤 向秀 劉伶 阮咸 王戎
西晉竹林七賢

八德 忠 孝 仁 愛 信 義 和 平
我國傳統八個德目

九如 詩經,小雅,天保:〔如山如阜,如岡如陵,如川之方至,以莫不增,
如月之恆,如日之升,如南山之壽,不騫不崩,如松柏之茂,無不爾或承。〕

十全 十全十美
周禮:〔歲終則稽其醫事,以制其食,十全為上。〕

用什麼心態對待水平糟糕的程序員[不靠譜的程序員、思路紊亂的程序員]?

http://www.cnblogs.com/jirigala/archive/2011/03/13/1982538.html

用什麼心態對待水平糟糕的程序員[不靠譜的程序員、思路紊亂的程序員]?
2011-03-13 02:10 by C#.NET走火入魔, 3072 visits, 網摘, 收藏, 編輯

這些年遇到了很多糟糕的程序員,其實真正是寫程序料的人,普通IT公司大概只佔1/3左右吧,其實有2/3的人都太適合當程序員,還不如早點兒改行該幹啥就干啥了,其中有1/10的人往往是相對比較糟糕的。

01:招聘時,一定要仔細看簡歷,核實簡歷的真實性,儘量防止把糟糕的程序員招聘到公司裡來。

02:招聘時,一定要有筆試,筆試題目可以不難,就看看基本功如何?表達能力是否可以?編程能力如何?

03:招聘時,儘量別一個人做主,儘量2個人以上面試,有筆試面試比較好。

04:招聘時,一定要有試用期,一般行規是工資打8折,若遇到糟糕的程序員,就把試用期延長一些。

05:若發現一個程序員比較糟糕,那抓緊跟你的上級領導匯報情況,長痛不如短痛,該請神回去就得請神回去了。

06:比較糟糕的程序員寫出來的代碼也是很糟糕,後期的維護改進是永無止境的痛苦,寧可不讓他寫了,就算委會別人的代碼,也是很越維護越糟糕了,不要指望奇蹟能出現。

07:糟糕的程序員,一般是為人思路紊亂,能把一個不靠譜的人培養成靠譜的人那需要遇到高手才可以,一般人沒有這個培養能力,還是讓別人去培養吧,若想把不靠譜的人編成人才,那你是大師級的人才了。

08:遇到不靠譜的程序員,就委婉的建議他幹其他行業,這個行業他沒希望混下去了。

09:不要指望經過指導培養就能編成靠譜的程序員了,他已經成長了20多年了,若是人才,早就是蠻厲害了,不要總指望能奇蹟發生,若經常發生類似的奇蹟,你可以去考慮購買彩票了。

10:不靠譜的程序員與學歷是無關的、與工作年限是無關的(工作年限並不能代表啥,例如我幹了10來年了,是狗屁用煤的)程序員就好比建築工地上的工人,能否幹好建築工地上的活兒能於學歷直接掛上嗎?

11:碰到不靠譜的程序員,開除吧又不夠人性化,不開除吧,他的不靠譜還會影響公司的其他人,就像一桶牛奶裡放了一滴唾液,雖然牛奶是有一桶,但是最終結果還是很讓人難受。所以不要指望不靠譜的程序員能短期提高成長,不加薪,不轉正自然就會自動辭職了。

12:我從我老闆哪裡學了幾招,乾脆不招聘不靠譜的程序員到公司,不給任何機會,經過一年的觀察發現,我們老闆招開發人員還是有他的一套,經過1年的招聘,居然公司的面貌有了明顯的改善,工作氣氛等都變得非常好。

13:千萬不要為了省錢為目的招聘幾個不靠譜的程序員,因為他們相當於是飯桶,不大可能幹出啥業績來,很容易製造一大堆麻煩給你,你為了管理好他們,把自己搞得死去活來,還不如乾脆就不招聘這樣的人了,何必跟自己過不去呢。

以前往往被不靠譜的程序員氣得半死,現在對不靠譜的程序員有免疫力了,一點兒都不急。不是我不靠譜,我也不指望你能成才,成長啥的,隨便你自生自滅,何必為別人來氣,自己生氣傷自己,還傷了大家的和氣。

以前看到不靠譜的程序員,第一個想到的就是開掉,現在一碰到不靠譜的程序員,就會想到,人家為了謀生,何必跟人家過不去呢,他過他的不靠譜的日子,我過我的程序人生。

心態變了,發現生活變得如此和諧,如此美麗。說不定不靠譜的程序員還會請我吃頓飯,再他眼裡我還是牛人,哈哈。

Saturday, March 05, 2011

使 xterm 可以顯示 256 色

如果沒有設定的話,使用 SecureCRT, Xshell, PuTTY 等工具連入 Ubuntu 時,都只有 16 色可以使用,想要可以顯示 256 色的話,要先:
sudo aptitude install ncurses-term
然後在 .bashrc 中加入

# hack for remote sessions
if [ "$TERM" == "xterm" ]; then
export TERM=xterm-256color
fi

Thursday, February 03, 2011

Palm Calendar Data 2 Android



Finally, the data on my old Palm Treo 680 are sync'd to Google Calendar!

I had tried to send them through Bluetooth, but the new Android phone, Moto Defy, does not like to accept it. The tranfer is done by installing Outlook 2003 first. Install the original Palm Desktop from Treo 680 and let it sync with Outlook. Finally, use the tool kindly provided by Google to sync Outlook to Google Calendar. Boom! The data are copying to the Cloud.

Tuesday, January 11, 2011

[轉貼] 二顆小石頭與太陽能熱水器的故事

http://blog.udn.com/kerrier/4774755

二顆小石頭與太陽能熱水器的故事_20110108

2011/01/10 15:49:46 瀏覽325|回應1|推薦3

這是一個討論「什麼是專業」,與「判斷什麼是專業」的故事。

這是一個顯示消費者弱勢與無奈的故事。

[事情不是花了錢就一定能解決的]

如果二顆指甲大小、路邊就可撿到的小石頭叫你花二千元買下,你願不願意?

承上,如果你能事先預知這二顆小石頭的存在會導致你因此要額外破費五萬大洋時,那你願不願意先花二千元把它們買下以避免後面更大的損失?

悲慘的是,當你以為你花了二千元可以解決問題的同時,卻眼睜睜地看著來處理的人將問題惡化,讓你不得不額外再花五萬元來彌補這個錯。那會是什麼樣的心情?

[生活中聽聞的實例]

故事發生的背景與經過大致是這樣的:

一、某戶人家的一樓安裝了馬達抽水到頂樓的水塔,該水塔出水管線同時連接同樣位於頂樓的太陽能熱水器(此熱水器本身含有太陽能真空管與電熱棒二種供熱系統)。

二、因為從一樓馬達抽到頂樓水塔的進水量很弱,供水速度太慢以致太能陽熱水器所需的水量不足,便找來水電工處理。

三、水電工調整了水塔內的浮球裝置但未改善一樓馬達至水塔進水量的問題,卻建議該戶人家要在水塔至太陽能熱水器的供水管線之間加裝抽水馬達以解決熱水器進水量過小的問題。

四、水電工來安裝馬達修改熱水器管路並封閉熱水器原有的透氣孔,完裝完畢馬達啟動進水加壓的結果造成太能陽熱水器的結構受損,儲水桶爆桶,真空管與儲水系統間的接觸面皆漏水。

五、該水電工將新裝設的馬達管路拆掉,把太陽能加熱相關管線拔除,改成只單用電熱棒供熱的狀態(i.e. 水塔管線直接注水儲水桶,並未通過太陽能真空管加熱)。

六、該戶人家見情形不妙,質問水電工。結果該水電工僅回答這樣也有熱水可用,並匆匆走人。

七、該戶人家找了其他廠商來看,紛紛回答該太陽能熱水器的結構已受損無法維修,換同等級新品的話要五萬元左右。

八、事後,該水電工僅賠付數千元,該戶人家大事化小,認賠不追究。

故事交待完了,如果是各位的家裡遇到這等鳥事,會怪在誰的頭上?水電工?還是自己?

以日常新聞裡看到美國人將對方告上法院的案例,該戶人家必須告得水電工付出「整副全新的太陽能熱水器 + 精神賠償 + …」的高額代價才能罷休。因為這太過份了,找來專業人員的代價竟然是如此的不堪,不好好懲罰對方怎麼吞得下這口氣?是吧!

也許,有人真的是佛心來的,覺得水電工是自己找來的,做壞了也不敢責備對方,打算摸摸鼻子認裁。

[什麼是專業?]

照我的認知,專業是解決特定問題的能力。水電工的專業就是解決水電相關的能力,而這必須花上許多時間才能學到足夠的知識與經驗。一般人對 DIY 不行的,面對水電管路的問題,自然得求助於水電專業人士。消費者花了錢卻解決不了事,那就是該水電工不夠專業。

以該故事裡的情節來看,該水電工沒有釐清並解決從一樓抽水到頂樓水塔進水量太小的問題,反而建議加裝熱水器進水馬達,我覺得這是一種便宜行事的心態,而且再加一顆馬達對他又是一筆進帳。他會這麼建議很正常。

糟糕的是,該水電工專業不足,不知道這類有通氣孔裝置的太陽能熱水器的結構是無法承受馬達進水加壓的。以他想當然爾的做法裡,加壓進水時,為了不讓水外洩,便施工將通氣孔封死,但卻反而造成整個熱水器結構受損漏水這種不可收拾的結果。

(這裡附帶一提的,消費者由於相關專業不足,找來解決問題的若非親朋好友便是客戶舊識,一旦出包的時候,礙於人情不便追究,如同上述故事一般。我覺得這是消費者本身應該更改的習慣 -- 不是把事情交待給認識的人就完全不管他怎麼做,適時的瞭解是必要的。)

沒人喜歡找自己麻煩,消費者哪會料到遇人不淑,水電維修能力這種東西又不是像基金一樣有長期評比,只能靠口耳相傳,不確定性很高。這種東西想避開地雷的話,消費者只能學著「判斷什麼是專業」。

[判斷什麼是專業]

「判斷什麼是專業」的方法、管道很多,在此案例要判斷水電工專不專業,最直接的一種就是去學習水電維修的知識,比如去瞭解抽水馬達的種類特性、瞭解出水量不足的可能原因、瞭解如何故障排除……。當消費者懂的愈多,愈容易判斷水電工所做所言是不是在唬弄消費者。

該水電工並沒有解決一樓抽水到頂樓水塔的水量過小的問題,可消費者也沒覺察到,反而聽信了加裝馬達的建議,這就犯了一個無法「判斷什麼是專業」的缺失。

為什麼無法去判斷呢?因為消費者對一樓抽水馬達的規格不瞭解,他們只知道水太小,但卻無法判定正常馬達抽水量為何(其實馬達上面都清楚載明其規格,也包含每分鐘抽水量)。

[當不夠專業的消費者遇上不夠專業的水電工]

最倒楣的,消費者接受水電工建議,以為花二千元在水塔與太陽能熱水器之間的管線加裝另一顆進水加壓馬達,希望可以改善熱水器進水量不足的問題,結果專業知識不足的水電工卻使得整個太陽能熱水器結構受損。

這一受損可不得了,原有的就毀了,要換新的得花五萬元才能買到同等級的產品。

[你會不會遇到?]

這類無妄之災,相信每個人多少都碰過。消費者不禁要想:「如果我懂、我會修的話,那又何必有水電工存在的必要呢?」

處於資訊不對等的狀態下,是消費者相對弱勢不得不然的結果。

[小石頭大關鍵]

前面提過,路邊隨處可拾、指甲大小的二顆小石頭,你願不願意花二千元去買?這樣的問法籠統了些,我再形容細一點:

「若你是該戶擁有太陽能熱水器的主人,當你發現從一樓馬達抽到頂樓水塔的進水量太小而找來水電工,水電工檢查過後拿出二顆小石頭跟你收二千元,你會覺得被水電工坑了嗎?」

還太籠統?那我再解釋多一點:

「該水電工檢查水管,發現進水量太小的原因是因為管路被塞住,所以他根據判斷找出塞住的位置,進而發現是那二顆小石頭是肇事者。取出後,一樓抽水馬達可正常發揮功能,到頂樓水塔的進水量充足了,太陽能熱水器缺水的問題也一併解決了。」

現在再重問一次:

「以該戶人家欲求得正常熱水供應的狀況下,你覺得花二千元換二顆小石頭划算呢?還是等機器被弄壞了再花五萬元重新買一組太陽能熱水器划算?」

「水電工的專業知識與技術,你打算用多少錢去換?」

[行行出狀元]

下次做出「看輕某行某業、視之無足輕重」的判斷前,先想想我們自己有多少能力去取代人家的專業。否則我們都可能去遇到同樣的事。

個人看法,謹供參考。

Thursday, January 06, 2011

[轉載] 21 天教你學會 C++

下面是一個《Teach Yourself C++ in 21 Days》的流程圖, 請各位程式設計師同仁認真領會。如果有必要,你可以查看這個圖書以作參照:

看完上面這個圖片, 我在想, 我學習 C++ 有 12 年了, 好像 C++ 也沒有學得特別懂, 看到 STL 和泛型, 還是很頭大。不過, 我應該去考慮研究量子物理和生物化學, 這樣, 我才能重返 98 年殺掉還在大學的我, 然後達到 21 天搞定 C++ 的目標。另外, 得要特別提醒剛剛開始學習 C++ 的朋友, 第 21 天的時候, 小心被人殺害。呵呵。

當然, 上面只是一個惡搞此類圖片, 學習一門技術, 需要你很長的時間, 正如圖片中的第三圖和第四圖所示, 你需要用十年的時間去不斷在嘗試, 並在錯誤中總結經驗教訓, 以及在專案開發中通過與別人相互溝通互相學習來歷練自己。你才能算得上是真正學會。

這裡有篇文章叫《Teach Yourself Programming in Ten Years》, 網上有人翻譯了一下, 不過原文已被更新了, 我把網上的譯文轉載並更新如下:

用十年來學程式設計 Peter Norvig
為什麼每個人都急不可耐?

走進任何一家書店, 你會看見《Teach Yourself Java in 7 Days》 (7 天 Java 無師自通) 的旁邊是一長排看不到盡頭的類似書籍, 它們要教會你 Visual Basic、Windows、Internet 等等, 而只需要幾天甚至幾小時。我在 Amazon.com 上進行了如下搜索:

我一共得到了 248 個搜索結果。前面的 78 個是電腦書籍 (第 79 個是《Learn Bengali in 30 days》, 30 天學會孟加拉語)。我把關鍵詞「days」換成「hours」, 得到了非常相似的結果: 這次有 253 本書, 頭 77 本是電腦書籍, 第 78 本是《Teach Yourself Grammar and Style in 24 Hours》 (24 小時學會文法和文體)。頭 200 本書中, 有 96% 是電腦書籍。
結論是, 要麼是人們非常急於學會電腦, 要麼就是不知道為什麼電腦驚人地簡單, 比任何東西都容易學會。沒有一本書是要在幾天裡教會人們欣賞貝多芬或者量子物理學, 甚至怎樣給狗打扮。在《How to Design Programs》這本書裡說「Bad programming is easy. Idiots can learn it in 21 days, even if they are dummies.」 (壞的程式是很容易的, 就算他們是笨蛋白痴都可以在 21 天內學會。)
讓我們來分析一下像《Learn C++ in Three Days》(3 天學會 C++) 這樣的題目到底是什麼意思:
    • 學會: 在 3 天時間裡, 你不夠時間寫一些有意義的程式, 並從它們的失敗與成功中學習。你不夠時間跟一些有經驗的程式設計師一起工作, 你不會知道在 C++ 那樣的環境中是什麼滋味。簡而言之, 沒有足夠的時間讓你學到很多東西。所以這些書談論的只是表面上的精通, 而非深入的理解。如 Alexander Pope (英國詩人、作家, 1688-1744) 所言, 一知半解是危險的 (a little learning is a dangerous thing)
    • C++: 在3天時間裡你可以學會 C++ 的語法 (如果你已經會一門類似的語言), 但你無法學到多少如何運用這些語法。簡而言之, 如果你是, 比如說一個 Basic 程式設計師, 你可以學會用 C++ 語法寫出 Basic 風格的程式, 但你學不到 C++ 真正的優點 (和缺點)。那關鍵在哪裡?Alan Perlis (ACM 第一任主席, 圖靈獎得主, 1922-1990) 曾經說過:
      如果一門語言不能影響你對寫程式的想法, 那它就不值得去學
      」。另一種觀點是, 有時候你不得不學一點 C++ (更可能是 Javascript 和 FlashFlex 之類) 的皮毛, 因為你需要接觸現有的工具, 用來完成特定的任務。但此時你不是在學習如何寫程式, 你是在學習如何完成任務。
    • 3 天: 不幸的是, 這是不夠的, 正如下一節所言。
10 年學程式設計
一些研究者 (Bloom(1985), Bryan & Harter (1899), Hayes (1989), Simmon & Chase (1973)) 的研究表明, 在許多領域, 都需要大約 10 年時間才能培養出專業技能, 包括西洋棋、作曲、繪畫、鋼琴、游泳、網球, 以及神經心理學和拓撲學的研究。似乎並不存在真正的捷徑: 即使是莫扎特, 他 4 歲就顯露出音樂天才, 在他寫出世界級的音樂之前仍然用了超過 13 年時間。再看另一種音樂類型的披頭四, 他們似乎是在 1964 年的 EdSullivan 節目中突然冒頭的。但其實他們從 1957 年就開始表演了, 即使他們很早就顯示出了巨大的吸引力, 他們第一次真正的成功 - Sgt.Peppers – 也要到 1967 年才發行。Malcolm Gladwell 研究報告稱, 把在伯林音樂學院學生一個班的學生按水準分成高中低, 然後問他們對音樂練習花了多少工夫:
      在這三個小組中的每一個人基本上都是從相同的時間開始練習的 (在五歲的時候)。在開始的幾年裡, 每個人都是每週練習 2-3 個小時。但是在八歲的時候, 練習的強度開始顯現差異。在這個班中水準最牛的人開始比別人練習得更多 – 在九歲的時候每週練習 6 個小時, 十二歲的時候, 每週 8 個小時, 十四歲的時候每週 16 個小時, 並在成長過程中練習得越來越多, 到 20 歲的時候, 其每週練習可超過 30 個小時。到了 20 歲, 這些優秀者在其生命中練習音樂總共超過 10,000 小時。與之對比, 其它人只平均有 8,000 小時, 而未來只能留校當老師的人僅僅是 4,000 小時。
所以, 這也許需要 10,000 小時, 並不是十年, 但這是一個 magic number。Samuel Johnson (英國詩人) 認為 10 年還是不夠的: 「任何領域的卓越成就都只能通過一生的努力來獲得; 稍低一點的代價也換不來。」 (Excellence in any department can be attained only by the labor of a lifetime; it is not to be purchased at a lesser price.) 喬叟 (Chaucer, 英國詩人, 1340-1400) 也抱怨說: 「生命如此短暫, 掌握技藝卻要如此長久。」 (the lyf so short, the craft so long to lerne.)
下面是我在程式設計這個行業裡獲得成功的處方:
    • 對程式設計感興趣, 因為樂趣而去寫程式。確定始終都能保持足夠的樂趣, 以致你能夠將 10 年時間投入其中。
    • 跟其他程式設計師交談; 閱讀其他程式。這比任何書籍或訓練課程都更重要。
    • 程式設計最好的學習是從實踐中學習。用更加技術性的語言來講, 「個人在特定領域最高水準的表現不是作為長期的經驗的結果而自動獲得的, 但即使是非常富有經驗的個人也可以通過刻意的努力而提高其表現水準。」 (p.366), 而且「最有效的學習要求為特定個人制訂適當難度的任務, 有意義的反饋, 以及重複及改正錯誤的機會。」 (p.20-21) 《Cognition in Practice: Mind, Mathematics, and Culture in Everyday Life》 (在實踐中認知: 心智、數學和日常生活的文化) 是關於這個觀點的一本有趣的參考書。
    • 如果你願意, 在大學裡花上 4 年時間 (或者再花幾年讀研究生)。這能讓你獲得一些工作的入門資格, 還能讓你對此領域有更深入的理解, 但如果你不喜歡進學校, (作出一點犧牲) 你在工作中也同樣能獲得類似的經驗。在任何情況下, 單從書本上學習都是不夠的。「電腦科學的教育不會讓任何人成為內行的程式設計師, 正如研究畫筆和顏料不會讓任何人成為內行的畫家」, Eric Raymond, 《The New Hacker's Dictionary》 (新黑客字典) 的作者如是說。我曾經僱用過的最優秀的程式設計師之一僅有高中學歷; 但他創造出了許多偉大的軟體 (XEmacs, Mozilla), 甚至有討論他本人的新聞組, 而且股票期權讓他達到我無法企及的富有程度 (譯註: 指 Jamie Zawinski, Xemacs 和 Netscape 的作者)。
    • 跟別的程式設計師一起完成專案。在一些專案中成為最好的程式設計師; 在其他一些專案中當最差的一個。當你是最好的程式設計師時, 你要測試自己領導專案的能力, 並通過你的洞見鼓舞其他人。當你是最差的時候, 你學習高手們在做些什麼, 以及他們不喜歡做什麼 (因為他們讓你幫他們做那些事)。
    • 接手別的程式設計師完成專案。用心理解別人編寫的程式。看看在沒有最初的程式設計師在場的時候理解和修改程式需要些什麼。想一想怎樣設計你的程式才能讓別人接手維護你的程式時更容易一些。
    • 學會至少半打程式語言。包括一門支援類抽象 (class abstraction) 的語言 (如 Java 或 C++), 一門支援函數抽象 (functional abstraction) 的語言 (如 Lisp 或 ML), 一門支援語法抽象 (syntactic abstraction) 的語言 (如 Lisp), 一門支援說明性規約 (declarative specification) 的語言 (如 Prolog 或 C++ 模版), 一門支援協程 (coroutine) 的語言 (如 Icon 或 Scheme), 以及一門支援併行處理 (parallelism) 的語言 (如 Sisal)。
    • 記住在「電腦科學」這個名詞裡包含「電腦」這個詞。瞭解你的電腦執行一條指令要多長時間, 從記憶體中取一個 word 要多長時間 (包括暫存命中和未命中的情況), 從磁碟上讀取連續的數據要多長時間, 定位到磁碟上的新位置又要多長時間。 (答案在這裡)
    • 嘗試參與到一項語言標準化工作中。可以是 ANSI C++ 委員會, 也可以是決定自己團隊的程式風格到底採用 2 個空格的縮進還是 4 個。不論是哪一種, 你都可以學到在這門語言中到底人們喜歡些什麼, 他們有多喜歡, 甚至有可能稍微瞭解為什麼他們會有這樣的感覺。
    • 擁有盡快從語言標準化工作中抽身的良好判斷力。
抱著這些想法, 我很懷疑從書上到底能學到多少東西。在我第一個孩子出生前, 我讀完了所有「怎樣……」的書, 卻仍然感到自己是個毫無頭緒的新手。30 個月後, 我第二個孩子出生的時候, 我重新拿起那些書來複習了嗎?不。相反, 我依靠我自己的經驗, 結果比專家寫的幾千頁東西更有用更靠得住。

Fred Brooks 在他的短文《No Silver Bullets》 (沒有銀彈) 中確立了如何發現傑出的軟體設計師的三步規劃:

    • 儘早系統地識別出最好的設計師群體。
    • 指派一個事業上的導師負責有潛質的對象的發展, 小心地幫他保持職業生涯的履歷。
    • 讓成長中的設計師們有機會互相影響, 互相激勵。
這實際上是假定了有些人本身就具有成為傑出設計師的必要潛質; 要做的只是引導他們前進。Alan Perlis 說得更簡潔: 「每個人都可以被教授如何雕塑; 而對米開朗基羅來說, 能教給他的倒是怎樣能夠不去雕塑。傑出的程式設計師也一樣」。

所以儘管去買那些 Java 書; 你很可能會從中找到些用處。但你的生活, 或者你作為程式設計師的真正的專業技術, 並不會因此在 24 小時、24 天甚至 24 個月內發生真正的變化。

Tuesday, January 04, 2011

中國人說英語為什麼聽起來沒有禮貌?

http://www.ibtsat.com/archives/2208

中國人說英語為什麼聽起來沒有禮貌?【無老師力薦】

無老師題:做人,長期看的是品質,短期看的是禮儀,但是中國留學生在剛出鍋(國)的時候,往往給西人一種十分沒有禮貌的感覺,但是我們的留學生並不知道這一點,這到底是為什麼呢?是我們的留學生很粗魯麼?一個兩個也許會有,但是如果很多留學生都給人類似的感覺的話,那麼這就不是一個禮儀問題,而是一個能力問題,那麼到底哪裡出問題了呢?希望無老師今天找來的這篇文章能給大家一點啟示。^_^

中國人的英語以 Chinglish 或 Chenglish 聞名於世;中國人最大的英語發音問題就是沒有連讀,但這都不是最主要的語言問題。老外們時常議論,很多中國人在說英語時,聽起來沒有禮貌;並不是這些中國人本身沒禮貌,而是他們還沒有習慣英語的禮貌表達方式。

比如,中國人在餐廳或咖啡廳,會說:「我想要一個漢堡包。」或者「我想要一杯咖啡。」但是,如果直接把這些話翻譯成英語 "I want to have a hamburger." 或 "I want to have a coffee." 老外們會覺得這樣說話很沒有禮貌,當然他們也不會直接告訴你。而在西方國家,老外們一般會說:"Could I have a hamburger, please?" 或 "Can I have a coffee, please?"

再比如,中國人在拒絕別人邀請的午宴或晚宴時,會說:「抱歉,我不能去,我還有別的安排。」翻譯成英文就是 "Sorry, I can't. I have another appointment." 如果這樣說,那別人第二次也許不會再邀請你了。老外們一般會這樣說:"That is a good idea! I would like to join in but I have another appointment today."(無老師題:原來托福聽力考的就是這個呀!)

我們可以從中總結一些「有禮貌」的技巧:

1. 西方人(主要指有一定修養的歐美人)在與他人交流時,比較多地使用情態動詞:can、could、may、might、would 等等;情態動詞(Model Verbs)又稱為情態助動詞(Model Auxiliaries),表示說話人的語氣,可表達建議、要求、可能和意願等,使得說話的語氣比較有禮貌;

2. 比較多地使用虛擬語氣,比如 would (had) rather、would (had) sooner、would (just) as soon 等等,或者在陳述句中使用過去式表示虛擬語氣,或者使用 if 等引導的從句表示「可能性」。這樣說話可以使人感覺表達者是在考慮達到最佳的結果或方式,儘量避免不好的結果或方式,或者推測可能出現的問題,並找出可能解決的辦法;

3. 往往在句尾加 please,而不是在句首加 please。當 please 用在句首的時候,語氣聽起來就比較強,聽起來像命令。比如請求別人做某事的時候,我們中國人會說「請在週一前給我回覆。謝謝。」但是如果你直接用英語說 "Please reply to me by Monday. Thank you." 聽者會覺得你是在命令他,一點禮貌也沒有。而如果這樣說:"Could you please reply to me by Monday? Thank you." 就顯得有禮貌了;

4. 在陳述句的表達可能顯得生硬、沒禮貌時,儘量使用疑問句、否定句或從句,儘量避免自己的主觀判斷或武斷,以積極的、建議的、比較的、人性的語氣,代替消極的、命令的、直接的、武斷的語氣;

5. 說話要以他人為中心,以肯定他人、贊同他人為前提,讓自己顯得謙卑、渺小。說完之後,還要附帶一句 "Thank you" 或 "Thanks"。其實,這種禮貌的表達方式是來自古老的中國。這是東西方文化的共同點,也是為人處世的基本原則。瞭解英語中禮貌的表達方式,儘量讓自己的英語表達更有禮貌,融入社會。