
本篇出自:Dream Tour
正義的胖虎 發表在 痞客邦 留言(0) 人氣(374)
本篇是在轉寄中的mail看到的,原始出處不可考。
1.放棄
把握的反面就是放棄,選擇了一個機會,就等於放棄了其他所有的可能。
當新的機會擺在面前的時候,敢於放棄已經獲得的一切,這不是功虧一簣,這不是半途而 廢,這是為了謀求更大的發展空間;或者什麼都不為,只因為喜歡這樣做,因為,年輕就是最大的機會。
人,只有在三十歲之前才會有這個膽量,有這個別資本,有這個資格。
2.失戀
不是不在乎,是在乎不起。
三十歲前最怕失去的不是已經擁有的東西,而是夢想。
愛情如果只是一個過程,那麼正是這個年齡應當經歷的,如果要承擔結果,三十歲以後,可能會更有能力,更有資格。
其實,三十歲之前我們要做的事情很多,稍縱即逝,過久地沉溺在已經乾涸的愛河的河床中,與這個年齡的生命節奏不合。
3.離婚
不是不在乎,是一切還來得及。
一位三十八歲的女友與老公結婚十五年,冷戰十三年,終於分手。
她說:「如果說後來不願意離婚是為了孩子,那他第一次提出離婚我沒有同意,現在想來真不知道為什麼。如果那個時候早分手,我的生活絕不會是今天這個樣子。現在再重新開始,總覺得一切都晚了。」
4.漂泊
漂泊不是一種不幸,而是一種資格。
趁著沒有家室拖累,趁著身體健康,此時不飄何時飄?當然,漂泊的不一定是身體,也許只是幻想和夢境。新世紀的時尚領袖是飄一代,渴望漂泊的人惟一不飄的是那顆心。
5.失業
三十歲以前就嘗到失業的滋味當然是一件不幸的事,但不一定是壞事。
三十歲之前就過早地固定在一個職業上終此一生也許才是最大的不幸。
失業也許讓你想起埋藏很久而塵封的夢想,也許會喚醒連你自己都從未知道的潛能。
也許你本來就沒什麼夢想,這時候也會逼著你去做夢。
6.時尚
不要追趕時尚。
按說青年人應該是最時尚的,但是獨立思考和個性生活更重要。
在這個物質社會,其實對時尚的追求早已經成為對金錢的追求。
今天,時尚是物慾和世俗的同義語。
7.格調
這是小資的東西,「小資」這個詞在今天又二度流行,追求格調就是他們的專利。
小資們說,有格調要滿足四大要件:智慧、素養、自信和金錢。格調就是把「高尚」理解成穿著、氣質、愛好的品味和室內裝潢。
也就是大老粗只會表現談吐的庸俗,「小資」們已經有能力庸俗他們的心靈了。
主流觀念倒不是非要另類,另類已經成為年輕人觀念的主流了,在今天,老土倒顯得另類。
關鍵是當今社會是一個創造觀念的時代,而不是一個固守陳舊觀念的時代。
8.評價
我們最不應該做出的犧牲就是因為別人的評價而改變自我,因為那些對你指手畫腳的人自己也不知道他們遵從的規則是什麼。
千萬不要只遵從規矩做事,規矩還在創造之中,要根據自己的判斷做每一件事,雖然這樣會麻煩一點。
9.幼稚
不要怕人說我們幼稚,這正說明你還年輕,還充滿活力。
「成熟」是個嚇人的詞兒,也是個害人的詞兒。
成熟和幼稚是對一個人最大而無當、最不負責任、最沒用的概括。
那些庸人,絕不會有人說他們幼稚。不信,到哪天你被生活壓得老氣橫秋,暮氣沉沉的時候,人們一定會說你成熟了,你就會知道「成熟」是個什麼東西。
10.不適應
在一首搖滾裡有這麼一句:「這個城市改變了我,這個城市不需要我。」
不要盲目地適應你生存的環境,因為很可能這環境自身已經不適應這個社會的發展了。
11.失敗
我的老師曾經跟我說,一個人起碼要在感情上失戀一次,在事業上失敗一次,在選擇上失誤一次,才能長大。
不要說失敗是成功之母那樣的老話,失敗來得越早越好,要是三十歲,四十歲之後再經歷失敗,有些事,很可能就來不及了。
12.錯誤
這是年輕人的專利。
13.淺薄
如果每看一次《泰坦尼克號》就流一次眼淚,每看一次《大話西遊》就笑得直不起腰,就會有人笑你淺薄。
其實那只能說明你的神經依舊非常敏銳,對哪怕非常微弱的刺激都會迅速做出適應的反應;等你的感覺遲鈍了,人們就會說你深沉了。
14.明星
不是不必在乎,是不能在乎。
明星在商品社會是一種消費品,花了錢,聽了歌,看了電影,明星們的表現再好,不過是物超所值而己,也不值得崇拜呀?
就像你在地攤上花五十塊錢買的裙子,別人都猜是八百塊錢買的,物超所值了吧?你就崇拜上這身裙子了?
15.代價
不是不計代價,而是要明白做任何事都要付出代價。
對我們這個年齡的人來說,這絕不是一句廢話。
否則,要到三十歲的時候才會明白自己曾經付出了多少代價,卻不明白為什麼付出,更不明白自己得到了多少,得到什麼。
16.孤獨
這是為自由付出的代價。
17.失意
包括感情上的,事業上的,也許僅僅是今天花了冤枉錢沒買到可心的東西,朋友家高朋滿座自己卻插不上一句話。
過分在乎失意的感受不是拿命運的捉弄來捉弄自己,就是拿別人的錯誤來懲罰自己。
18.缺陷
也許你個子矮,也許你長得不好看,也許你的嗓音像唐老鴨......那麼你的優勢就是你不會被自己表面的淺薄的亮點所耽擱,少花一些時間,少走一些彎,直接發現你內在的優勢,直接挖掘自己深層的潛能。
19.誤會
如果出於惡意,那麼解釋也沒有用;如果出於善意,就不需要解釋。
專門說到「誤會」倒不是因為一個人在三十歲之前被人誤會的時候更多,而是這個年齡的人想不開的時候更多。
20.謠言
這是一種傳染病,沈默是最好的疫苗。
除非你能找出傳染源,否則解釋恰恰會成為病毒傳播最理想的條件。
21.瘋狂
這是年輕人最好的心理調適,只能說明你精力旺盛,身心健康。
說你「瘋狂」是某些生活壓抑、心力交瘁的中老年人惡意的評價,他們就像一部年久修的機器,最需要調適,但只能微調,一次大修就會讓他們完蛋o。
22.穩定
三十歲之前就在乎穩定的生活,那只有兩種可能,要麼就是中了彩票,要麼就是未老先衰。
23.壓力
中年人能夠承受多大壓力檢驗的是他的韌性;年輕人能承受多大壓力,煥發的是他的潛能。
24.出國
也許是個機會,也許是個陷阱。
除非從考大學的那一刻你就抱著這個目標,否則,對待出國的態度應該像對待愛情一樣,努力爭取,成敗隨緣。
25.薪水
只是給人打工,薪水再高也高不到哪兒去。
所以在三十歲之前,機會遠比金錢重要,事業遠比金錢重要,將來遠比金錢重要。
對大多數人來說,三十歲之前幹事業 的首要目標絕不是掙錢,而是掙未來。
26.存款
這倒不一定是因為我們錢少,年輕人現在誰都知道錢是有生命的。
機會這麼多,條件這麼好,可以拿錢去按揭,做今天的事,花明天的錢;也可以拿錢去投資,拿 錢去「充電」。
錢只有在它流通的過程中才是錢,否則只是一疊世界上質量最好的廢 紙。
27.房子
除非你買房子是為了升值,要嘛就是你結婚了。
我有個同學,家在外地,大學畢業之後,單位沒有宿舍,家裡就給他買了一套房子。
他曾經有過去北京工作的機會,但是他覺得剛買了房子就離開這座城市說不過去,就放棄了。
到現在他工作穩定,但一事無成。
唯一的成就就是結婚了,並且有了孩子,因為他覺得不該讓這房子永遠空著,所以房子變成了家。
房子是都市生活的寓言,這個寓言不應該過早的和我們相關。
28.年齡
女孩子一過二十五就開始隱瞞自己的年齡,其實大可不必。現在青年期都延遲到四十五歲了,二十五又算得了什麼呢?
29.在乎正義的胖虎 發表在 痞客邦 留言(0) 人氣(99)
今年(2009)有幾個新年的目標:
1.減肥20公斤 (去年只減了10公斤Orz)
2.每天至少念一個小時的英文。(為2010年出國遊學做準備)
3.增加工作上的技能與知識。(儘量去參加進修的課程;ex:程式、英文。)
正義的胖虎 發表在 痞客邦 留言(0) 人氣(105)
本篇全文出自:鳥毅的Blog
最近由於某些新進同仁都使用WebMail,但又不砍信,造成Mail Server繁忙,只好請他們自行砍信/移信。有些皮比較癢公務繁忙的同仁沒空處理,只好抽空寫支小程式處理。
由
於Openwebmail的限制,不能用maildir,只能維持使用mailbox,這是系統loading高的主因。由於許多原因以及沒有功能更齊全
的webmail前提下,只能暫時如此處理。本來要用比較熟悉的Java寫,但是搜尋之下並沒有功能完整的library,而Python內建就支援
mailbox處理,在缺乏其他支援/資源的情況下也只能硬著頭皮寫。因為我比較懶,裡頭有用到一個date parser,使用前請先安裝。
這裡的環境針對FreeBSD + Postfix+Openwebmail,sendmail/qmail應該也適用,我在Ubuntu開發,所以在Linux"應該"也能正常執行。
完整程式如下:正義的胖虎 發表在 痞客邦 留言(0) 人氣(253)
本文是在批踢踢兔(ptt2.cc)看到的
作者 zuzu7472 (zuzu wu) 看板 PickleZu
標題 C語言測試
時間 Thu Nov 6 23:53:15 2008
───────────────────────────────────────
挺有難度的,除了嵌入式方面的問題回答不出來之外,其他還算可以orz
看樣子我以後要失業了...
==============================================
C語言測試 想成為嵌入式程序員應知道的0x10個基本問題
原文出處 A 'C' Test: The 0x10 Best Questions for Would-be Embedded
Programmers: http://www.embedded.com/2000/0005/0005feat2.htm
以下是網路上找到中文版,作者不詳。
==============================================
C語言測試是徵選嵌入式系統程式員過程中必須而且有效的方法。這些年我既參加也組織
了許多這種測試,在這過程中我意識到這些測試能為面試者和被面試者提供許多有用訊息
,此外,撇開面試的壓力不談,這種測試也是相當有趣的。
從被面試者的角度來講,你能瞭解許多關於出題者或監考者的情況。這個測試只是出題者
出某個字符的ASCII值。這些問題著重考察你的系統調用(invoke)和記憶體分發策略方面
的能力嗎?這反映出出題者也許花時間在微處理機上而不在嵌入式系統上。
如果上述任何問題的答案是「是」的話,那麼我知道我得認真考慮我是否應該去做這份工
作。
從面試者的角度來講,一個測試也許能從多方面揭示應試者的素質。最基本的,你能瞭解
應試者C語言的水準。不管怎麼樣,看一下這人如何回答他不會的問題也是滿有趣。應試
者是以好的直覺做出明智的選擇,還是只是瞎蒙呢?當應試者在某個問題上卡住時是找藉
口呢,還是表現出對問題的真正的好奇心,把這看成學習的機會呢?我發現這些訊息與他
們的測試成績一樣有用。
有了這些想法,我決定出一些真正針對嵌入式系統的考題,希望這些令人頭痛的考題能給
正在謀職的人一點幫住。這些問題都是我這些年實際碰到的。其中有些題很難,但它們應
該都能給你一點啟發。
這個測試適用於不同水準的應試者,大多數初級水準的應試者的成績會很差,經驗豐富的
程式員應該有很好的成績。為了讓你能自己決定某些問題的偏好,每個問題沒有分發分數
,如果選擇這些考題為你所用,請自行按你的意思分發分數。
==============================================
預處理器 (Preprocessor)
1.用預處理指令#define 聲明一個常數,用以表示1年中有多少秒 (忽略閏年問題)
#define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL我在這想看到幾件事情︰
a.#define 語法的基本知識 (例如︰不能以分號結束,括號的使用,等等)
b.懂得預處理器將為你計算常數表達式的值,因此,直接寫出你是如何計算一年中有多少
秒會比直接計算出實際的值更清晰。
c.意識到這個表達式將使一個16位元的機器產生整數型溢位 - 因此要用到長整型符號L,
告訴編譯器這個常數是的長整型數。
d.如果你在你的表達式中用到UL (表示無符號長整型) ,那麼你有了一個好的起點。記住
,第一印象很重要。
==============================================
2.寫一個「標準」巨集MIN ,這個巨集輸入兩個參數並返回較小的一個。
#define MIN(A, B) ((A) <= (B) ? (A) : (B))這個測試是為下面的目的而設的︰
a.標識#define在巨集中應用的基本知識。這是很重要的,因為在行內(inline)運算子變
為標準C的一部分之前,巨集是方便產生行內程式碼的唯一方法,對於嵌入式系統來說
,
為了能達到要求的性能,行內程式碼經常是必須的方法。
b.三元運算子的知識。這個運算子存在C語言中的原因是它使得編譯器能產生比
if-then-else更優化的程式碼,瞭解這個用法是很重要的。
c.懂得在巨集中小心地把參數用括號括起來。我也用這個問題開始討論巨集的副作用,例
如︰當你寫下面的程式碼時會發生什麼事?
least = MIN(*p++, b);
==============================================
3.預處理器標識#error的目的是什麼?
如果你不知道答案,請看參考文獻1。這問題對區分一個正常的夥計和一個書呆子是很有
用的。只有書呆子才會讀C語言課本的附錄去找出像這種問題的答案。當然如果你不是在
找一個書呆子,那麼應試者最好希望自己不要知道答案。
==============================================
無窮迴圈 (Infinite loops)
4.嵌入式系統中經常要用到無窮迴圈,你怎麼樣用C編寫無窮迴圈呢?
這個問題用幾個解決方案。我首選的方案是︰
while(1)
{ ... }
一些程式員更喜歡如下方案︰
for(;;)
{ ...}
這個實作方式讓我為難,因為這個語法沒有確切表達到底怎麼回事。如果
一個應試者給出這個作為方案,我將用這個作為一個機會去探究他們這樣做的基本原理。
如果他們的基本答案是︰「我被教著這樣做,但從沒有想到過為什麼。」這會給我留下一
個壞印象。
第三個方案是用 goto︰
Loop:
...
goto Loop;
應試者如給出上面的方案,這說明或者他是一個組合語言程式員 (
這也許是好事) 或者他是一個想進入新領域的BASIC/FORTRAN程式員。
==============================================
數據宣告 (Data declarations)
5.用變數a給出下面的定義:
a)一個整型數 (An integer)
b)一個指向整數的指標 (A pointer to an integer)
c)一個指向指標的指標,它指向的指標是指向一個整型數
(A pointer to a pointer to an integer)
d)一個有10個整數型的陣列 (An array of 10 integers)
e)一個有10個指標的陣列,該指標是指向一個整數型的
(An array of 10 pointers to integers)
f)一個指向有10個整數型陣列的指標 (A pointer to an array of 10 integers)
g)一個指向函數的指標,該函數有一個整數型參數並返回一個整數 (A pointer to a
function that takes an integer as an argument and returns an integer)
h)一個有10個指標的陣列,該指標指向一個函數,該函數有一個整數型參數並返回一個
整數 (An array of ten pointers to functions that take an integer argument
and
return an integer)
答案是︰
a) int a; // An integer
b) int *a; // A pointer to an integer
c) int **a; // A pointer to a pointer to an integer
d) int a[10]; // An array of 10 integers
e) int *a[10]; // An array of 10 pointers to integers
f) int (*a)[10]; // A pointer to an array of 10 integers
g) int (*a)(int); // A pointer to a function a that takes an integer argument
// and returns an integer
h) int (*a[10])(int); // An array of 10 pointers to functions that take
// an integer argument and return an integer
人們經常聲稱這裡有幾個問題是那種要翻一下書才能回答的問題,我同意這種說法。
當我寫這篇文章時,為了確定語法的正確性,我的確查了一下書。但是當我被面試的時候
,我期望被問到這個問題(或者相近的問題)。因為在被面試的這段時間裡,我確定我知道
這個問題的答案。應試者如果不知道所有的答案(或至少大部分答案),那麼也就沒有為這
次面試做準備,如果該面試者沒有為這次面試做準備,那麼他又能為什麼出準備呢?
==============================================
Static
6.關鍵字static的作用是什麼?
這個簡單的問題很少有人能回答完全。在C語言中,關鍵字static有三個明顯的作用︰
a.在函數本體內(in Function Block),一個被宣告為靜態的變數,在這一函數被呼叫過
程中維持其值不變。
b.在一個Block(ie. {...} )內 (但在函數體外),一個被宣告為靜態的變數可以被Block
內所有的函數存取, 但不能被Block外的其它函數存取。它是一個本地的全局變量。
c.在Block內,一個被聲明為靜態的函數,只可被這一Block內的其它函數呼叫。也就是
這個函數被限制在宣告它的Block的本地範圍內使用。大多數應試者能正確回答第一部
分
,一部分能正確回答第二部分,同是很少的人能懂得第三部分。這是一個應試者的嚴重
的缺點,因為他顯然不懂得本地化資料和程式碼範圍的好處和重要性。
==============================================
Const(常量)
7.關鍵字const有什麼含意?
我只要一聽到被面試者說︰「const意味著常數」,我就知道我正在和一個業餘者打交道
。去年Dan Saks已經在他的文章裡完全概括了const的所有用法,因此ESP(譯者︰
Embedded Systems Programming)的每一位讀者應該非常熟悉const能做什麼和不能做什麼
。如果你從沒有讀到那篇文章,只要能說出const意味著「只讀」就可以了。儘管這個答
案不是完全的答案,但我接受它作為一個正確的答案。(如果你想知道更詳細的答案,仔
細讀一下Saks的文章吧。)如果應試者能正確回答這個問題,我將問他一個附加的問題︰
下面的聲明都是什麼意思?
const int a;
int const a;
const int *a;
int * const a;
int const * a const;
前兩個的作用是一樣,a是一個常數型整數。
第三個意味著a是一個指向常數型整數的指標
(也就是,整型數是不可修改的,但指標可以)。
第四個意思a是一個指向整數的常數型指標(也就是說,指標指向的整數是可以修改的,但
指標是不可修改的)。
最後一個意味著a是一個指向常數型整數的常數型指標(也就是說,指標指向的整數是不可
修改的,同時指標也是不可修改的)。
如果應試者能正確回答這些問題,那麼他就給我留下了一個好印象。順帶提一句,也許你
可能會問,即使不用關鍵字 const,也還是能很容易寫出功能正確的程式,那麼我為什麼
還要如此看重關鍵字const呢 ?我有以下的幾個理由︰
a.關鍵字const的作用是給讀你程式碼的人傳達非常有用的訊息,實際上,宣告一個參數
為常量是為了告訴了程式員這個參數的應用目的。如果你曾花很多時間清理其它人留下
的垃圾(記憶體回收),你就會很快學會感謝這點多餘的訊息。(當然,懂得用const的程
式員很少會留下的垃圾讓別人來清理的)
b.透過給優化器一些附加的訊息,使用關鍵字const也許能產生更緊湊的程式碼。
c.合理地使用關鍵字const可以使編譯器很自然地保護那些不希望被改變的參數,防止其
被無意的程式碼修改。簡而言之,這樣可以減少bug的出現。
==============================================
Volatile(易變的)
8. 關鍵字volatile有什麼含意?並給出三個不同的例子。
一個定義為volatile的變量是說這變量可能會被意想不到地改變,這樣,編譯器就不會去
假設這個變量的值了。精確地說就是,優化器在用到這個變量時必須每次都小心地重新讀
取這個變量的值,而不是使用保存在暫存器裡的備份。下面是volatile變量的幾個例子︰
a.並行設備的硬體暫存器 (如︰狀態暫存器)
b.一個中斷服務次程序中會訪問到的非自動變數(Non-automatic variables)
c.多執行緒應用中被幾個任務(task)共享的變數
回答不出這個問題的人是不會被僱傭的。(os:還好我不是讓這個人面試.....)我認為這
是區分C程式員和嵌入式系統程式員的最基本的問題。搞嵌入式的傢伙們經常同硬體、
中斷、RTOS等等打交道,所有這些都要求用到volatile變量。不懂得volatile的內容
將會帶來災難。
假設被面試者正確地回答了這是問題 (嗯,懷疑是否會是這樣),我將稍微深究一下,看
一下這傢伙是不是直正懂得volatile完全的重要性。
Q 一個參數可以同時是const也是volatile嗎?解釋為什麼。
Q 一個指標可以是volatile 嗎?解釋為什麼。
Q 下面的函數有什麼錯誤︰
int square(volatile int *ptr)
{ return *ptr * *ptr;}
下面是答案︰
A 是的。舉的例子是"只讀的狀態暫存器"。它是volatile因為它可能被意想不到地改變。
它是const因為程式不應該試圖去修改它。
A 是的。儘管這並不很常見。舉的例子是當一個執行中的次程序修該一個指向一個
buffer 的指標時。
A 這段程式碼有點變態。這段程式碼的目的是用來返指標*ptr指向值的平方,但是,由於
*ptr指向一個volatile型參數,編譯器將產生類似下面的程式碼︰
int square(volatile int *ptr)
{
int a, b;
a = *ptr;
b = *ptr;
return a * b;
}
由於*ptr的值可能被意想不到地該變,因此a和b可能是不同的。結果,這段程式碼可
能返回不是你所期望的平方值!正確的程式碼如下︰
long square(volatile int *ptr)
{
int a;
a = *ptr;
return a * a;
}
==============================================
位元操作 (Bit Manipulation)
9.嵌入式系統總是要用戶對變量或暫存器進行位操作。給定一個整型變量a,寫兩段程式
碼,第一個設置a的bit 3,第二個清除a 的bit 3。在以上兩個操作中,要保持其它位不
變。
對這個問題有三種基本的回應
- 不知道如何下手。該被面者從沒做過任何嵌入式系統的工作。
- 用bit fields。Bit fields是被扔到C語言死角的東西,它保證你的程式碼在不同編譯
器之間是不可移植的,同時也保證了的你的程式碼是不可重新使用的。我最近不幸看到
Infineon為其較複雜的通信晶片寫的驅動程式,它用到了bit fields因此完全對我無用
,因為我的編譯器採用其它的模式來實現bit fields。從道德講︰永遠不要讓一個非嵌入
式的傢伙沾到實際硬體的邊。
- 用 #defines 和 bit masks 操作。這是一個有極高可移植性的方法,是應該被用到的
方法。
#define BIT3 (0x1 << 3)
static int a;正義的胖虎 發表在 痞客邦 留言(1) 人氣(17,154)
正義的胖虎 發表在 痞客邦 留言(0) 人氣(0)
正義的胖虎 發表在 痞客邦 留言(0) 人氣(0)

本篇全文出自:自由之火~Peter's自由軟體習作誌&自由軟體線上書籍
編輯日期20080702
資料來源yurenju (lazybuntu作者) 20080712 台北大豐國小研習
講師講議:http://tinyurl.com/5ag5nn
程式範例:http://tinyurl.com/6qcgxm 下載點2
正義的胖虎 發表在 痞客邦 留言(0) 人氣(2,176)
正義的胖虎 發表在 痞客邦 留言(1) 人氣(12,131)

這是最近的一本有趣的書。
雖然目前工作上用不到Google 的API
不過還是對這本書蠻有興趣的。(重點是這本是中文的!)
應該還是會買本來看。:)
正義的胖虎 發表在 痞客邦 留言(0) 人氣(497)