2009-01-26

去廬山冇泡湯


View Larger Map

今天跟家裏的兩位老人家開車出外踏青,有一陣子沒有開車進山中。一路話題聊不完,我也想要跟 Cinphy 他們家一樣去搭帳篷。覺得廬山還頗有山中的冷空氣感覺。見到很多桃紅色的櫻花,還有台 14 埔里路段中央分隔島的粉紅色盆栽,覺得很有過年的氣息。

去到廬山只是下車走走所謂的災區路況,沒有多去哪。去到廬山才知道離合歡山不遠,才知道奧萬大國家森林遊樂區變得很「不遠」的感覺,哈!顛覆以前以為奧萬大國家森林遊樂區很遠的印象。

很多年前我曾去過清淨農場,這幾年它儼然已經熱的像是地面上的台南花園夜市一樣人擠人,我很不喜歡這樣的清淨農場。

2009-01-16

第二次工作面試

今天親自開車上台北汐止,老爸因為有些事情也和我一起上去。2pm 到東方科學園區樓下,上 19F 找 Jeff。一進 office 感覺滿少員工的,約十個左右。Jeff 是個比較熱情的人,親切地招待我進小 office 填寫個人資料 form。

Jeff 後來進來拿著我寫好的 form 認識我的資料,開口問了一些經驗上的問題。例如,有無利用 open source project 開發過程式、對 wireless protocol 熟嗎?玩 Linux 的程度到如何。之後,Jeff 拿著他們公司的產品讓我認識公司生產的東西定位。有 wireless 功能的室內暖氣 controller,IP Phone。三樣產品簡單的介紹,沒有多餘深入的技術討論,謹此而已。

這次顯得輕鬆多了,也膚淺多了。Jeff 說年前只是想要面試人而已,年後才會通知是否錄取。

2009-01-15

甲和乙的對話

年關將近,甲和乙討論要送什麼樣的賀年卡。甲想要送給乙特別的賀年卡,如是問了甲:

甲: 可是我在想我要不要去買別的信封帶
甲: *-)我只剩紫色的…真不合適
乙: 問我勒~ 這是妳的卡片耶 :D
甲: 我隨便說說不行喔= =
甲: 你小心你的卡只有 一張白紙加字XD
乙: 太超過了!
乙: :D
甲: (6)
甲: 請問你要彩色的 還是經典燙金?
甲: (H)
甲: 塗案皆防水
乙: 甲問乙:我要送給你的禮物要什麼樣式的,你來挑好了。 -___________-"
甲:哈哈哈哈
甲: 你想要影涉我就對了
乙: 甲還繼續問乙說:你在說我嗎?
甲: 你又不知道我葫蘆裡賣什麼藥
乙: 我要把這段經典的對話放到 blog...
甲: = =

兩則小偏方

“氣管功能差的人(如氣喘),多爬樓梯或慢跑會改善狀況。”
“常會閃腰的人,多喝雞湯會改善狀況”


這篇主要的用意,完全都是遵從我 偉大的母親大人所指示照辦的事項。她要我把這兩則小偏方分享給大家,希望能幫助大家。用這樣的 title 或許對她有些不禮貌,但是內容完全遵照她的指示。雖然她不會看我的 blog,但是遵辦的事項還是得向她報告,哈!

2009-01-14

說走就走,內灣。


View Larger Map


下午,堂哥突然找我說要不要去內灣,很突然,不過老三也要去,就這樣出發了,哈!說走就走,先是從國一彰化接國三,到竹林交流道接竹 120 直接開進內灣,很快。

下車後,覺得內灣風速不像埤頭刮的那麼大,不過也會有一種山中冷空氣的氣候。沒什麼人,吃了薑湯的芋圓豆花,堂哥和老三點了像是“貢丸湯”的“三顆裝芝麻湯圓”,說是難吃。堂嫂買了幾盒麻糬,我們在小品店買了我要送禮的小禮物,堂嫂也買了一些小飾品。老街上,見到一位戴著老虎帽的微胖男,看起來實在很好笑,效果挺好的。我臨時起意要去買四個給大家戴,想當然大家會說不要囉,哈!走了吊橋,到一半而已堂哥說是會頭暈,真是老人家的身體。回程走了上面的路,看了櫻花還有老舊的警察局。但是沒有見到經典的「淘氣機器人」,大家也沒有強烈的意願想要看,所以就沒有堅持要去找。因為是臨時起意要去內灣,所以沒有找太多景點。

回程因為堂哥會頭暈,換成我開車。走國一回台中的逢甲夜市,哈,這算是我第一次逛逢甲夜市,地方還滿大的。吃了大腸包小腸和菲力牛排,挺飽的。堂嫂一直看鞋子,最後終於下手買了一雙短靴。逢甲夜市的鞋子和包包都滿便宜的,是適合常常換包包的人。喜歡去專櫃買經典款的人,應該不會喜歡去逢甲買東西。逢甲夜市的道路比起台南的花園夜市大太多了,逛起來比較輕鬆,沒有壓迫感。而且,有時候人擠人的感覺還滿噁心的,哈!

我們家三個小孩除了我不抽煙,老二和老三都會抽煙。這次在逢甲夜市堂哥和老三抽煙的感覺,多少讓我覺得不自在。除了煙臭味,還有 1/11 新上路的菸害防治法規定,像是逢甲夜市這樣的公共場所不允許抽煙,他們不應該這樣抽煙吧! :)

堂哥說是過年想要邀我們兩家的小朋友一起去九份遊玩,可能會租一台 VW T4 來個三天兩夜吧,挺好的,我贊成! ;-)

2009-01-07

第一次工作面試 (結論)

1. 後來才想到 Mr. Q 打的策略,我中招了,幹!
2. 忘記太多以前學過的東西
3. 現在所會的東西不夠滿足 OS programmer 的需求
4. 太快回答問題,想的不夠仔細就作答,而且沒有 require hints
5. 投簡單一點的公司
6. 父曰:你可以嘗試看看,不行的話要接受自己被迫換工作內容的現實。 (好沈重)

第一次工作面試 (Shawn)

Mr. Q 挫了我的心很嚴重,我的信心動搖了,顯得六神無主。過了五分鐘,Shawn 禮貌地敲了門進來。Mr. Q 嚴肅的對待襯托出 Shawn 的和善。Shawn 拿著我在 104 的 resume 全部內容,一五一十地問了寫程式的經驗。大約如下:


1. 試述遇過最嚴重的問題,之後怎麼解決。
Hmm... (心中一直覺得待會的答案會很虛,可是還是鼓起勇氣說了) 之前去 NCHC 參加比賽,一開始遇到一個很大的 gap,一時忘了 stack & heap 的用途。只把 huge array declare stickly,執行的時候一直會 overflow,找不出問題在哪。之後,朋友知道我的問題才跟我講說,為甚麼不用 heap 的空間呢?之後,我才想到 os 在 Memory Management 的觀念。雖然沒有很難,但是這是我近期遇到的大頭問題。


2. 試述自己喜歡的語言,及對語言的認知。
我喜歡 C/C++,但是 C++ 後面的 template 章節還沒有很清楚。我喜歡 C 可能受到網路社群的影響,像 jserv 這種厲害的 hacker,就很令人崇拜。
Shawn: 你也認識 jserv?熟嗎?
a2n: 喔,我跟我另一個朋友 (c9s) 有跟他聊過,我朋友比較熟。
Shawn: 喔,那你們可能跟他還沒有很熟。因為他現在在我們公司。
a2n: @____________@!!!! 驚!!!!!!!!!!!!!


3. 有參加過社群哪些 open source projects?
老實說,我沒有親自跟著社群的 committer hacking,大多都看 documentation 和讀 mailing-list 而已。


4. 試述 device 對 os 發出 interrupt 之後的處置。
Hmm... device 對 os 發出 interrupt 後,os 會根據發出訊號的 device check 它的 priority 決定去 swap in/out 正在執行的程式。之後就針對 request response。
Shawn: 根據什麼 priority?
a2n: Hmm... i don't know
Shawn: 根據 interrupt vector table,mapping 後對 os request 才有 response。
a2n: 啊... ... 我忘了有 vector table。 (心想將近 5 年前楊老師上的 Computer Architecture 這次我都沒有 review 到,糟)


5. 試述 Vitrual Address mapping to Physical address 的詳細過程。以 Linux kernel tree 中的 VA with two levels.
Program 知道的 VA 其實是 mapping 到 PA,所以都需要 indirect。
Shawn: Hmm... two levels 呢?
a2n: @_@??
Shawn: L1 VA mapping to L2 VA, finally mapping to PA.


之後我跟 Shawn 說 FreeBSD 的 PAE, Shawn 問我對 TLB 的了解,想也知道我不認識 TLB。聊 gdb 怎麼直接取得 PA。和 HW R&D 一起 debug,SW R&D 好奇示波器怎麼顯示,說是滿有趣的。問我的英文口音是怎麼來的,聊 refactoring,splint,assembly。後來有哪些話題已經忘了... 之後 Shawn 說是時間到了,出去約五分鐘又進來,說第三位正在 meeting 不能過來,Shawn 又和我聊了不少。他還一時讓我產生一種錯覺,因為他聊了很多工作的內容,還主動要我多問一些工作內容;那種感覺就像是你已經 pass 第一階段了,現在在引導你早點進入職場狀況。

之後,我們還是結束話題,因為實在沒有話題了。我問的最後一個問題是:「請問我錄取的機會大嗎?」
Shawn: 現在還不能給答案,因為我們內部還需要討論才會有答案,我們會在日後通知你。

第一次工作面試 (Mr. Q)

用一個漢字形容:挫。

第一次的工作面試經驗壤我受到打擊,因為自己的表現實在不佳,面試過程中被問倒。面試過程才知道社群名人 jserv 也在這家公司,在面試前竟沒想到之前 c9s 收到 jserv 給的面試機會就是這家公司。我客觀的認為,這家公司的水準在中上或上級。所以我不能因為這次的經驗就打擊甚大,要更振作!以下就盡我所能描述可以出現的面試過程。


6 Jan 13:50
進去 Si-Soft 大樓 3F,call Shawn Lin。Shawn 是 AndesTech 第一個和我接觸的人,他在 104 HR Bank 看到我的 resume 後 mail 給我,給我一個面試的機會。Shawn 先帶我進一個約四坪大的小 office,兩張桌子,和隔壁的 Manager (?) 類似擺放。Shawn 給我一張雙面的 A4 資料 form 填寫 basic info。填了 15 mins 時門打開了,有一位頭髮些許白色看似 40 yrs 的先生走進來,暫且稱他 Mr. Q,我有氣無力地跟他說聲好。

五分鐘後他遞給我一張空白 A4 的紙張,上面寫了兩行英文,要我造句:

Not only... but
Abundant a malice

第一句我造的很虛;Not only expensive but tiny space. Mr. Q 用了很疑惑和不滿意的眼神和口氣回應我的句子。接著我說看不懂第二行的單字,老老實實地跟 Mr. Q 說。他更是用強烈懷疑和不滿意的疑問聲音回應我,之後點頭示意 ok, next。接著問我擅長的語言 C/C++,問了大概七個問題。

Q1: How to convert that OO method and template to C.
ans: OO method could be presented as function pointer in C. But, the template is ... hmm, i am not sure whether it could be achieved or not, i've no ideas about it.


Q2: Explain volatile in C++.
ans: It tells compiler that the variable which declared with volatile, should be free after whole function call exits.


Q3:
struct
{
int a;
long b;
short c;
} X;
sizeof (X) = ?
ans: 1 + 4 + 2 = 7 bytes
Q: Don't you consider about the alignment?
ans: I've no ideas about alignment...


Q4: Plz implement a reverse function out with char* type parameter.
ans:
void
reverse (char* str)
{
char *result;
result = (char*) malloc (sizeof (char) * 100);
strcpy (result, "");
int i;
for (i = strlen(str); i >= 0; --i)
{
strcat (result[strlen() - i], str[i]);
}
printf ("result: %s\n", *result);
}
Q: There are many problems over you codes.
ans: I did a fixed size, it's result variable.
Q: Yes, and it allocates a space, wastes too much time request to os.
ans: Hmm?? I've no ideas to enhance.


Q5: Explain these statements,
int a[10];
int *a[10];
int (*a)[10];
ans:
1. Ten units of int type.
2. Ten units of pointer that point to int.
3. Hmm... ten units of int type that point to a.


Q6: Explain what difference between "Call by address" and "Call by reference".
ans: Passing the variable address to somewhere, getting the variable content refer to the address. It's "call by address". Passing the variable to somewhere, getting the address refer to variable's content. It's "call by reference". (I know it's wrong that "call by reference".)


Q7: Show code that link-list has double nodes, wiht typedef.
ans:
struct
{
void* a;
void *b;
} X;

typedef X link;
Q: "void*" has a problem, without the cast.
ans: Hmm... (I don't understand what you are talking about) But, "void*" can accept anything.
Q: Yes, but it is really has problems over it.


Q: 我的時間快到了。你有問題想要問嗎?
ans: Hmm... Hmm... 我看到網頁上的 os 好像是跟美國的 Mentor... what 合作。
Q: 那是 XXOO XXOO (blah 好多,我整個呆著聽)
ans: 這些 OS 都有 follow POSIX 嗎?
Q: POSIX 不夠 efficient.
ans: oh...
Q: 好吧,我時間到了,要離開了。
ans: 謝謝你,謝謝。

2009-01-05

自我深耕

若是把很多事情比擬成農作物的種植,而自己是栽種人。之前曾經熱絡參與的園地,經過一陣子的荒廢,現在回首觀看園地到處雜草叢生,深覺得沒有什麼事情需要放棄施種此園地的初衷。我需要振奮起來好好的深耕,不要再讓園地變雜草園,實在不想這樣!!

擬幾個 TODOs 把實際的想法和作法寫出來,好好的給自己 dead line 去達成!


加油!!

出糗

主動 offer 我第一個 interview opportunity 的 Jeff 人很善良,可是我卻很邪惡地把人家的名字拼錯成「Jess」,哈! 我怎麼不乾脆拼成「Blue」 or 「Sofa Music」?

很糗。不知道他會不會因此還不想回覆我的 meeting checking.懇求他大人有大量,哇哈哈!!!

---
Dear Jess,

I am ready to have a interview with your opportunity, how about it at
2pm on 7 Jan?


Regards
Alan Lu
---


---
Dear Jeff,

I am so sorry, that spell your name wrong, my apologies.


My Apologies
Alan Lu
---

面試需要準備什麼

一顆不緊張的心,一身乾淨整齊的打扮,一口不結巴的英文,一副誠懇的態度。

2009-01-03

Gonna be "Regardless"

Dear Raven,

I have read your blog article which you had a trip in this new-year-holidays, it looks you are gonna be fall in love with a big boy. Actually, I felt a little bit of sadness when I saw that picture and description. I shall, however, be sincerely to wish you will have a felicity life with the big boy. So, wish you will really meet your Mr. Right.

I, indeed, have unsubscribed your blog feed, that because I should not regard your life that with the big boy, that will make me feeling uncomfortable, so you know, I done it, be regardless on your life.


Best Wish
Alan