星期一, 7月 04, 2016

逝去的靈魂

沒想到靈魂,也能被消滅。

在一起十年。
幾乎是三分之一,然後逐漸趨近一的生命比例。

好像是老了,腦子再也不會迸現大道理,很久沒有領悟到任何事情。
所有寫作,僅限於跟客戶來回爭執的信件。
工作乏善可陳,在餬口之際,又帶有一點對未來的企望,
是財富,成就,或是期待一些正面不確定性,但絕對不是來自客戶的驚嚇。
空空如也的 bucket list。
硬是要加,也只是無止盡的比較項目,一點都不舒服也永遠無法滿足。

這兩年倒是多了運動,一件終身的職志。
外觀上貌似小有成,但運動本身就是為了健康,而健康又需要一輩子來定義,
所以目前只能說,為了健康的活下去,我開始付出。
是一個開始,但絕對不是有什麼說嘴的成就。

朋友慢慢的分歧,或許是生活背景的差異。
倒不是無法接受這樣的事實,但真的沒有所謂新的老朋友這種產物。

一個動彈不得的現狀,加上崩解的周圍。
這次的文章,does not dump any shit,沒有起到抒發的作用。

星期五, 10月 31, 2014

抄襲與剽竊

前者有動腦,後者腦子有洞。
前者稍微良心,後者完全無良。

Either way is not so good, but this is just a world it is.
Just be wished we are not the ones.
Hold tight to your conscience and ready to be poor.

星期五, 11月 01, 2013

同時轉型又宣告之神秘的 C

不但可以邊 casting 邊宣告,宣告玩之後還能繼續使用!
不過 gcc 跟 g++ 編譯器的行為不太一樣就是了,g++ 並不會直接給你過關。
code 寫久了,網上的技術文章逛久了,就會發現很多小惡魔小細節,是藏在編譯器裡面。




struct x { 
    int xx; 
};

int main()
{
    struct x data;
    data.xx = 99; 
    struct x *tmp = &data;

    printf("tmp->xx = %d \n", tmp->xx);
    printf("(!#$^&)->yy = %d \n", ((struct y {int yy;} *)(tmp))->yy);
    
    struct y xxxx; // Also can be used later!

    // Change *.cpp will have different result
    // gcc will select the correct back-end compiler based on file extension 
    // In c++: error: types may not be defined in casts

    return 0;
}

星期三, 10月 30, 2013

預防笨錯誤? 尤達表示法 (Yoda Condition)

曾幾何時,在公司的程式碼看到一段code,以下為示意:
if (TRUE == isOilPoisonous)
{
  printf("It's Da Tung!");
}
產生很多問號,誰吃飽撐著把 TRUE 放在比較式的左邊呢?
是為了強調這段程式碼的意圖嗎?

事實似乎不是這麼一回事!

直到最近,才知道這東西叫做尤達表示法 (Yoda Condition)。
他存在的目的完全不是為了可讀性,相反的,這種風格使可讀性下降了。
那為什麼要付出代價維持這種風格呢?

原因如下。
看看這兩段程式碼,毫無疑問完全相同,只是條件順序對調了一下。

if (isOilPoisonous == TRUE)
{
  printf("It's Da Tung!");
}

if (TRUE == isOilPoisonous)
{
  printf("It's Da Tung!");
}

但是如果有人手抖把 "==" 敲成 "=" 的時候,你會發現,其中只有一種會compile error。
而另一個,會巧妙的隱藏,成功地編譯,變成很難發現的臭蟲。
日常生活中,手抖,手殘,以及少打一個等號這種事情,是絕對有可能發生的。
為了避免這種情況,只好犧牲一些可讀性,套用 Yoda Condition,來斃掉這種藏得很深的臭蟲。

事實上,現在的 compiler 可以讓你察覺這種手抖的情況。
用 gcc version 4.4.5 測試了一下,如果你有使用 "-Wall" 參數,
來編譯 "if (isOilPoisonous = TRUE && ...) ...",
你會得到這樣的警告訊息:
yoda.c:7: warning: suggest parentheses around assignment used as truth value
但如果進一步改寫成這樣 "if ((isOilPoisonous = TRUE) && ...) ...",就...

註:尤達大師講話愛用倒裝句。

參考:http://en.wikipedia.org/wiki/Yoda_conditions

星期五, 9月 20, 2013

Honey Moon

嚴格來說,這是第三次到夏威夷了,第一次年紀太小,停留時間也太短沒太多記憶。第二次去參加 conference ,玩樂的時間有點稀少,也是有點可惜。這一次蜜月終於玩了三個島,花了十天,滿過癮了。不過沒有達到預期的小麥色肌膚,稍嫌不足。

在Oahu Island 的 Hanauma Bay (恐龍灣),原本Hanauma Bay 命名自於海灣的弧形,至於恐龍指的應該是右側延伸至海裡的小山,形狀像是一隻臥躺的恐龍,這部分應該後人的旅遊成分添加物。其實這個海灣是一個火山口!這裡應該是整個夏威夷最適合浮淺的地方吧,帶個蛙鏡,買個小泳圈,下水就對了,整個淺灘延伸的距離很長,優游自在。

星期日, 11月 11, 2012

還是有好工作存在

今天有個智者說,還是有好工作存在的,因為他現在的工作跟前一份相比,工時更短,福利更好。所以說工作要用心找,還沒完全了解一份工作的內容,還是不要隨意就進入一家公司,苗頭不對也是要趕快閃,當機立斷。
這個禮拜開始,周六也要上班,已經到我的極限了。為了維護快樂與生活品質,應該沒有必要這樣賤賣自己,時候到了,是不是該做些什麼了呢?

星期四, 8月 02, 2012

緊繃

錢跟壓力果然是成正比,甚至壓力是過頭的,台灣的企業主很會算計,算得很精準。這半年,很多事情不如預期,有點開始懷疑自己的能力。出了學校,這樣的生活真的是自己想要的嗎?聽朋友說過,要看你現在這分工作能不能長久,就要看你主管現在過的生活,是否以後你也希望過的跟他一樣。目前由這點來判斷,答案應該是否定的。這樣一到五,甚至六日腦帶都充斥著工作,慢慢成為一種精神上的折磨,忘記玩樂是什麼感覺,無法每天有一段時間放空,對我來說是痛苦的。最重要的,也是犧牲了很多陪伴家人和女朋友的時間,你永遠無法知道這犧牲值不值得,目前是有些副作用。

如果文字可以紓壓,那就多打一點,多排一點,大在這網路馬桶的洪流之中。