Label Cloud

2009年11月20日

使用Perl script 執行makefile的錯誤

今天在寫perl要在Linux下make出新的driver時,發現一個問題。

我們的Makefile的程式:

obj-m += Andes-Ice-Driver.o
all:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules
clean:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean

在手動執行make時都是正常的,但是我寫了一個Perl 的Script make.pl
#!/usr/bin/perl
chdir "/home/users/josesun/driver";
print `make`;
在make時就會發生錯誤
scripts/Makefile.build:13: /home/users/josesun/Makefile: No such file or directory
make[2]: *** No rule to make target `/home/users/josesun/Makefile'. Stop.
make[1]: *** [_module_/home/users/josesun/] Error 2
make: *** [all] Error 2
後來發現原來$(PWD)這個變數會一直記錄原始的目錄/home/users/josesun,但一跳到/home/users/josesun/driver開始make時,雖然我已經在perl內指定要跳到/home/users/josesun/driver了,但系統卻還保留原本的變數值/home/users/josesun/,以致會發生錯誤。

後來找了一個小時,才發現這是個只發生在sript執行makefile時才會出現的錯誤,因為大部份的makefile都設計成手動執行,因此手動執行時並不會發生錯誤。

後來修改了Makefile的程式,就能使用script正確make出driver、也能使用手動來makefile了。

obj-m += Andes-Ice-Driver.o
all:
make -C /lib/modules/$(shell uname -r)/build M=$(shell pwd) modules
clean:
make -C /lib/modules/$(shell uname -r)/build M=$(shell pwd) clean

[+/-] 繼續閱讀...

2009年11月19日

安裝 perl module Term::ReadKey

因為在perl script內使用了ReadMode 'cbreak' 和ReadMode 'normal'的指令,所以需要在Perl內安裝Term::ReadKey這個Module。

安裝步驟

  1. 使用者切換成root
  2. 設定perl的選項。除非要改Perl的設定值,不然都可以在一開始執行設定時就選[auto]。
    perl -MCPAN -e shell

  3. 安裝Term::ReadKey
    cpan> install Term::ReadKey

  4. 當畫面最後出現
    Running make install

    就表示安裝已經完成。

[+/-] 繼續閱讀...

2009年11月18日

我的TOEIC經驗

對於想要精進英文的上班族而言,通過TOEIC測驗是最直接、有效的方法。
多益30小學堂

TOEIC

TOEIC(Test of English for International Communication,TOEIC)是由美國教育學習服務社(ETS)在1979年針對母語非英語人士所設計出以職業環境為基準的英語能力測驗,所以已經有30 年的歷史了。

TOEIC的測驗內容和專業知識或詞彙沒有關係,以日常使用的英語為主。TOEIC分數則反映出受測者在職場上與他人溝通的英文程度。

測驗方式包括兩類:聽力與閱讀測驗。而且根據Wiki的說法


測驗皆取材自商業用語,避免使用艱澀少見的專業術語。多益的閱讀測驗中,單字與語句架構比聽力測驗中的較為艱深;若測驗中出現少見的單字和語句架構,則它們必然是國際職場中不可或缺的。


所以對一般公司或求職者而言,直接採用TOEIC成績,可以減少證明英文能力的麻煩,所以TOEIC漸漸成為求職必備證照。

因為我只是去報名補習班,在沒有準備的情況下就直接考試,成績不大理想:閱讀350分,聽力125分,總分475,以滿分990來說,剛好接近一半。因為朋友的壓力,所以我只能寫自己考模擬考的(失敗)經驗和大家分享。

以閱讀而言

閱讀有100題的題目,很多人在某些題目上花了太多時間,以致於後面的題目就直能用猜的,以致於分數不能反映出實際的英文程度。

我建議大家改變一下答題的策略:先花一點時間看一遍所有題目後再開始答題,不要硬著頭皮從第一題開始寫,改從你有把握的部份開始。像有一些「照片描述題」,老實說對我還比較容易一點。

另外,我都直接跳過看不太懂、或太多段落的題目,因為反正一時也看不懂,你白浪費時間在上面也沒有什麼用,等答完所有有把握的題目後,再回過頭來回答題,這樣比較容易獲得高分。

所以,我得坦言,我的閱讀測驗分數中,確實有些是藉由答題技巧拉高分數的。

以聽力而言

聽力也有100題的題目。

但我想關於聽力測驗,我就沒法提供什麼答題技巧了(如果我有,也不會考這麼差了)。而且新版的聽力測驗除了美國和加拿大籍的口音外,還加入了英國和澳洲口音。

英國口音大家可以上BBC網路廣播就可以聽得到,在某些字的發音和重音的位置與美式發音有所不同,但還算容易聽懂;但澳洲口音就真的是聽不太懂了,有點鴨子聽雷。

所以以我個人的TOEIC聽力測驗而言,倒覺得確實能忠實的反應我的能力。

小結

對我而言,最需要加強的就是聽力,因為如果連聽都不太懂了,就很難和其他人溝通。而且以目前的職場來看,每個產業都有不同的外國人說英文,像軟體業的外包就有很多的印度人,所以在職場上聽到夾雜了各地的口音的英文也是一種普遍的現況。

因此,考過TOEIC的四種英文口音算是很基本的要求,如果真的找個印度人、或菲律賓人錄音來考試的話,我想可能就更難聽得懂了。

但不論如何,就我在軟體業看到的現況,有效提高英語聽力,提昇英語溝通能力,確實是增加競爭力的不二法門啊!

TOEIC台灣區官方網站:http://www.toeic.com.tw

[+/-] 繼續閱讀...

Linux內常用但不易記的指令

為了避免自己忘記,我在這裏記載了一些在Linux內常用的指令。

系統設定

  1. cat /etc/redhat-release 印出Linux版本
  2. vi /proc/version:看系統版本
  3. top :看目前系統資源的使用情況
  4. export PATH=$PWD:$PATH :將目前的目錄設在PATH內
  5. set|more :顯示系統內的設定值
  6. source .bashrc.private :再將.bashrc.private重新執行一次
  7. ifconfig :相當於windows的ipconfig
  8. ps -aux:查看系統中正在執行的程式之程序資料
  9. ps -ef | grep XXC 列出XX程式正在執行的狀況
    -a:其它使用者執行的程式一併顯示出來
    -c:只顯示執行程式的名字
    -e:顯示執行程式的環境變數
    -f:顯示執行的路行群
    -i:顯示各程式的詳細執行情況
    -l:長格式顯示
    -m:顯示記憶體分配情形
    -r:顯示前景執行的程式
    -s:顯示各程式的訊號名稱
    -u:顯示使用者名稱和起始時間
    -v:顯示虛擬記憶體使用情況
    -w:若訊息一列無法容納,則換列顯示
    -x:顯示所有程序
  10. kill 刪除某個運作中的程式
  11. 設定系統IP,修改:
    \etc\hosts
    \etc\sysconfig\network
目錄/檔案管理
  1. cp :複製檔案
    -r :複製目錄
  2. scp :跨網路複製檔案
  3. pwd:列出目前工作目錄的完整路徑
  4. ls -la:列出這個目錄內檔案的完整資訊
  5. rm -rf 目錄/檔案:強制刪除這個檔案或目錄(類似DOS下的Deltree)
  6. mv -f 目錄/檔案:強制移動/更改檔案或目錄
  7. find 字串:印出這個目錄下所有符合字串的目錄和檔案
  8. clear(ctrl+l): 清除螢幕,相當於Dos下的cls
其他
  1. vncserver :開啟VNC的連線
  2. vncserver -kill :1 :關閉VNC的連線
  3. ldd 判斷某個可執行的 binary 檔案含有什麼動態函式庫,以及該函式庫是否存在

[+/-] 繼續閱讀...

2009年11月17日

我的工作桌面

看了電腦玩物-《Productivity Wallpaper 原來一張電腦桌布也可以做很多事》後,我也著手製作我公司電腦的個人桌面。


我參考了Simple Help-《5 Desktop Wallpapers that will increase your productivity》內的第三個《EZ Access Desktops》的圖面後,再加上我個人的習慣作出了以上的圖面(1280*1024)。

特點說明

這個桌面能幫助我達成:

  • 管理Applilcation、Link、File;
    這樣我就不用再多花時間,找桌面上的連結了。
  • 追蹤正在進行的工作。
    藉由PDCA流程圖,了解手上工作的進況。
如何使用這張圖片
  1. 點選下面的連結,將圖片存在某個位置。
    1280 * 1024
    1024 * 768
  2. 在桌面上按滑鼠右鍵 > 選「属性」> 點「桌面」> 點「瀏覽」> 選剛剛下載的圖片。

  3. 點「確認」,桌面就會換成你所選擇的圖片。
  4. 在桌面按滑鼠右鍵> 選「排列圖示依」> 取消勾選「自動排列」和「貼齊格線」。

  5. 接下來你就可以自由隨性的排列桌面上的icon到圖面上的相關位置,並隨時知道工作近況了。

[+/-] 繼續閱讀...