Skip navigation.

Log in | Sign up

學著積極 學著樂觀

Crazy and enjoying

通才?專一?

看了通才專一等字眼
突然想到一個東西

通才 感覺是學的廣
專一 感覺是學的深

但是什麼是廣 什麼是深
倒是還沒有實際定義過


學的深
似乎領域中總有人了解的比自己多
所以可以往那個方向前進?
可是有時候會懷疑,
那那些頂尖者呢?
是不是藉由互相討論,來了解自己的不足?
(也是一種廣度增加?)


然後突然想到,
像是打電動一樣,
每個角色可能都有一些數值,
要知道有這些數值,可能難度不高,
(有點像是看說明書就可以知道)
但是知道以後,要了解怎麼運用這些數值,
就可能要知道某個東西比較高或比較低時的特性,
相較之下的微小差距,造成的結果。
有時候就是,贏就是贏,輸就是輸,哪管只差一點點。

選個方向,慢慢前進。

整個回想起來,完全是錯誤示範阿XD

記得第一次踏進實驗室的時候,
我以為這是一間閒閒的實驗室。
相較於大學時代,塞了很多課在課表,
卻總覺得學不好(覺得是時間問題),
多一點自己的時間好像也不錯。

的確,在老師底下實做東西,
的確沒什麼壓力,反正好像有進度就好。
可是當時在做東西的時候,
也許是覺得自己的程式能力沒什麼問題,
可以擔當一些比較難的東西
(雖然那時候我對小吳的能力一無所知XD),
所以在mobile agent和UI之間,
我選擇了mobile agent,
也許是因為不希望做雜事吧。

接著又因為對自己有的沒的要求與想法,
跑去交大修fuzzy和高等java。
也許是習慣吧,不管什麼樣的課程,
都習慣很認真的看待,
也因此總覺得沒有什麼課程是比較簡單的。

又覺得對freebsd的gui不是很懂,
加上當時使用SATA硬碟的機緣,
bios會當機的原因,
陰錯陽差就把lab自己用的電腦灌了freebsd。
這些事情都有好有壞,
灌了freebsd在架server上方便很多,
想裝什麼,對一些特別用在freebsd的軟體,
也可以想裝就裝。
不過很多東西都是在windows下很方便,
freebsd下還要自己瞭解與設定,
就感覺很麻煩。

又想說要閒閒的,卻又跑去忙東忙西的,
怎麼可能阿XD

突然想到的C array和pointer

, , , ...

這是測試用C語言含有指標的程式碼
  int arr[5];
  int *p = arr;
  p[2] = 3;


下面是gcc -S翻出來的部份組合語言
leal    -40(%ebp), %eax
movl    %eax, -44(%ebp)
movl    -44(%ebp), %eax
addl    $8, %eax
movl    $3, (%eax)


根據推測
leal -40(%ebp), %eax
movl    %eax, -44(%ebp)

相當於p = arr; 把-40(%ebp)的有效位址複製到eax,
再複製到-44(%ebp)

movl    -44(%ebp), %eax
addl    $8, %eax
movl    $3, (%eax)

movl -44(%ebp), %eax ==> 而-44(%ebp)的內容複製到%eax,這邊就是-40(%ebp)的位址。
addl $8, %eax ==> 將eax的數值+8 (2個int),
movl $3, (%eax) ==> 將3複製到%eax所指位址



如果是array的寫法:
  int p[5];
  p[2] = 3;


翻出來是
movl    $3, -32(%ebp)

就直接將$3移到-32(%ebp)這個位置

crontab簡易說明

,

crontab在unix-like作業系統裡面,
允許我們在指定時間週期執行某個指令。
以下說明主要以FreeBSD作業系統為對象。

crontab除了系統性的/etc/crontab這個檔案外,
還有每個使用者自己的crontab。

系統性的/etc/crontab理論上一開始就有設定一些數值,
裡面也有相關欄位註解。
#minute hour mday month wday who command
就註解來看,各欄分別為
分(0-59) 時(0-23) 日(每月的第幾天,1-31) 月(1-12) 星期幾(0-7,0或7是Sunday) 執行身分 命令

一般使用者自己的crontab則大致和上述相同,
只是少了who那個欄位。

而crontab每分鐘都會執行,如果所設定的時間符合條件,就會執行對應的命令。
填入*的欄位代表從開始到結束(也就是那個欄位都符合)。

command則是相當於你要執行的命令,
不過這邊可能要注意一下PATH(執行檔搜尋路徑)和SHELL等環境變數的問題,
不然可能會發現找不到命令。
通常所執行的command,以絕對路徑方式表示(如/bin/ls而非只寫ls),可以減少因為PATH造成的問題,
若有需要,也可以藉由設定PATH變數,來設定自動搜尋的執行檔位置順序。
至於PATH等變數設定方法,可以參考/etc/crontab對應位置的寫法。
如果使用shell script等需要執行外部命令者,可能需要注意到script內指令的寫法,
可能也要注意到PATH變數的影響(怕crontab時的PATH變數和平常命令列下不同產生問題)。

詳細寫法可以
man 5 crontab


關於各使用者的crontab,可以使用
crontab -e
編輯自己的crontab檔。

或是
crontab 檔名
將指定檔名的檔案內容當成是你的crontab。

利用
crontab -l
可以顯示目前使用者的crontab內容。

這邊舉例一下各使用者的crontab寫法:
3 * * * * perl /root/ifconfig_log.pl > /dev/null 2>&1

這樣寫在每個小時3分的時候,去執行perl這個指令。
之所以不用寫絕對路徑,是因為他放在/usr/bin中,
而/usr/bin剛好在PATH中。
另外,想知道某個指令的絕對路徑,可以使用which這個命令:
~>which ping
/sbin/ping

其中/root/ifconfig_log.pl是餵給perl這個指令的參數,
而> /dev/null 2>&1則是sh(預設的SHELL)的輸出輸入導向寫法。

Plurk under Opera in FreeBSD

, , , ...

終於找到為什麼我的Opera在unix下,plurk的編輯沒辦法點開的問題。
原來是因為plurk有個soundalertsmanager.swf,
變成會啟動flash,可惜unix下的flash支援度又不夠。

其實我是一直不懂為什麼windows下的opera可以,
而unix(freebsd)下的不行,可是感覺只像是hang住了,
剛剛用pstree看了一下,才發現原來plurk好像有用到flash,
可是gnash感覺就是支援的沒很完全,
導致那些編輯等等視窗,完全沒辦法點開。

小孩子的學習

現在會覺得說,小孩子的學習,
應該盡量讓他們去碰東西,
學習這個社會是長什麼樣子的。

當然有時候有些東西會危險,
那可以用講的代替讓他們實際經驗,
有時候講的可以配合實際經驗。

我們所知道的其實有限,
而且每個人的想法不同,
與其灌輸一種想法,
不如讓他們自己去摸,去感受。

我們所學習到的知識,
很多時候只不過是現有所知裡面,
最好的一種。

然後想著想著,我就想到了,
建構式數學,與所謂的背誦。

我是很討厭背誦的,
相較於思考。

不過也許記憶是一種很有趣的東西,
人和人之間才有一種相同的記憶可以談論。
短期記憶、長期記憶、重複,各種不同的組合,
因為後來覺得,也許就是東西這麼多的組合變化,
才是所謂的有趣。

和我們想像不同p:

生活經驗,逐漸形成我們的看法。

歸類

感覺如果有人將人群歸類後,
會有種偏向類別中心的傾向。

有些說法是,
對人的期望會讓人往那個方向發展。


景色依舊

之前總會覺得,留在交大好像會比較好,
不過今天回系計中看看,突然發現,好多人不認識,
大家都去不同的地方,過著各自的生活。
也許有時候就是這樣,有時候明明覺得怎樣比較好,
還是依賴著情感的直覺p:

關心

後來覺得關心一個人似乎要主動而且有計劃性。

testing

,

以前對於testing沒什麼感覺,
想說反正程式邏輯對了,
結果就會正確。

可是今天想了想,
才突然想到,
世界上不是每個東西都自己寫的,
總會有別人的code,
所以需要當成一個黑盒子一樣,
測試輸入輸出,
如果一樣的輸入,得到預期的輸出,
這樣至少不會錯。

之前是都會想到,
就算做的測試都對,但是也只是幾個case,
程式邏輯不對,那又有什麼用。

不過確定別人的code太累了XD,
也許這就是所謂的最低保證吧:smile:
December 2009
M T W T F S S
November 2009January 2010
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31