沒想到靈魂,也能被消滅。
在一起十年。
幾乎是三分之一,然後逐漸趨近一的生命比例。
好像是老了,腦子再也不會迸現大道理,很久沒有領悟到任何事情。
所有寫作,僅限於跟客戶來回爭執的信件。
工作乏善可陳,在餬口之際,又帶有一點對未來的企望,
是財富,成就,或是期待一些正面不確定性,但絕對不是來自客戶的驚嚇。
空空如也的 bucket list。
硬是要加,也只是無止盡的比較項目,一點都不舒服也永遠無法滿足。
這兩年倒是多了運動,一件終身的職志。
外觀上貌似小有成,但運動本身就是為了健康,而健康又需要一輩子來定義,
所以目前只能說,為了健康的活下去,我開始付出。
是一個開始,但絕對不是有什麼說嘴的成就。
朋友慢慢的分歧,或許是生活背景的差異。
倒不是無法接受這樣的事實,但真的沒有所謂新的老朋友這種產物。
一個動彈不得的現狀,加上崩解的周圍。
這次的文章,does not dump any shit,沒有起到抒發的作用。
星期一, 7月 04, 2016
星期五, 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.
前者稍微良心,後者完全無良。
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;
}
不過 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
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
緊繃
錢跟壓力果然是成正比,甚至壓力是過頭的,台灣的企業主很會算計,算得很精準。這半年,很多事情不如預期,有點開始懷疑自己的能力。出了學校,這樣的生活真的是自己想要的嗎?聽朋友說過,要看你現在這分工作能不能長久,就要看你主管現在過的生活,是否以後你也希望過的跟他一樣。目前由這點來判斷,答案應該是否定的。這樣一到五,甚至六日腦帶都充斥著工作,慢慢成為一種精神上的折磨,忘記玩樂是什麼感覺,無法每天有一段時間放空,對我來說是痛苦的。最重要的,也是犧牲了很多陪伴家人和女朋友的時間,你永遠無法知道這犧牲值不值得,目前是有些副作用。
如果文字可以紓壓,那就多打一點,多排一點,大在這網路馬桶的洪流之中。
如果文字可以紓壓,那就多打一點,多排一點,大在這網路馬桶的洪流之中。
星期日, 1月 01, 2012
三年了,國家讓你畢業了。
最近,國防役和研發役替代役的夥伴們紛紛合約到期,畢業了,大家盤算著下一步,開發興趣,也尋找一些夢想。
趁著老妹耶誕假期歸國,開車跟老媽還有妹去濱海公路晃晃,這是龍洞。
這個制度好像可以輕鬆逃避兵役,而且當兵的那一年就開始工作,多賺了一年的薪水。但三年綁下來,也能鎖得你失去鬥志。長遠下來,你可能搞不清楚到底是賺到還是虧大了。三年就畢業一次似乎是一個不錯的模式,至少學生時期是這樣。
想當初國中高中,甚至是大學,都是靠最後一年的衝刺,最後才上了不錯的學校。最後一年的那種堅持,不斷地念書,沒時間運動,唯一的消遣就是吃東西,所以最後通常會胖不少。雖然很煎熬但你知道只要熬過之後,上了好的學校,哇,就又可以再玩個一兩年,雨過天晴。
上班之後不一樣了,並沒有所謂的階段性任務,是長期抗爭二三十年。在這從學校畢業後的三四年中,很多人覺得上班無趣,開始私底下發展副業,不是說平常的工作不忙,而是太無聊太沒挑戰性了,所以再忙也要喝杯咖啡順便研究一些其他正夯的技術。為什麼不跳槽,因為還在綁約服役嘛,只好私下研究。像這種半強迫式的綁約,為了完成當兵的義務,你說到期之後會不想走嗎?
還有,上班之後才知道,原來寫大部份的程式,其實只要高中畢業就夠了。什麼以前學校學的一堆數學跟演算法,還真的派不太上用場。一堆非本科系的人畢業之後,去資策會上個課,最後也是出來當個軟韌體工程師。早知如此我十八歲就該出來寫程式了。最近朋友待的 start-up 公司,開發 iPhone app 的工程師就是十八歲,小小年紀就看透世事,不得不說他聰明。所以在此建議大部份的公司不要找什麼研究所畢業的名校了,花少點錢,不要再雇一些假高學歷的工程師了,公司開心,工作的人也開心。
私以為,台灣哪裡需要那麼多高學歷的人才啊,學歷高能力又沒變強。平均學歷提升把起薪拉高,大概也是造成薪水跟不上物價上漲的原因之一。認真覺得,整個教育制度是有問題的,把不必要的資源浪費在衝高國民的學歷,所有人的學歷都是科大起跳,所有人都在念研究所。但實際上這些多花出來的就學時間,並沒有對整個國家有任何的幫助。甚至這些多投入的時間,有沒有實質的學到東西,都很難講。就我認知,其實就是蒸發在空氣裡,毫無意義,一坨假象。
星期日, 12月 25, 2011
Kodak Elite Chrome 正片初體驗
傳說中,正片有較好的寬容度,實在是很好奇,所以買一捲來拍。買來之後擺在防潮箱好一陣子,裝進像機後也斷斷續續拍了一段時間才拍完,最近才有空去把他洗出來。
下面這是底片的外觀 (Nikon D90 + SB700 拍攝)。至於整捲底片則都是用 Canon QL19 拍攝完成,在公館五色鳥沖洗掃檔。這裡看到的照片都是五色鳥的掃圖直出,沒有再後製過,就當作是一個參考吧。至於洗的或是圖掃得好不好呢?就見仁見智囉,個人覺得還有加強的空間。
下面這是底片的外觀 (Nikon D90 + SB700 拍攝)。至於整捲底片則都是用 Canon QL19 拍攝完成,在公館五色鳥沖洗掃檔。這裡看到的照片都是五色鳥的掃圖直出,沒有再後製過,就當作是一個參考吧。至於洗的或是圖掃得好不好呢?就見仁見智囉,個人覺得還有加強的空間。
Kodak Elite Chrome 底片外觀
星期二, 12月 13, 2011
BonBons de ChocoLat
家裡忽然多出一盒這個玩意兒。
經本人實驗過後了解,內部是比較偏流質的巧克力,大部份的口味都是帶有淡淡的果香,外型比味道稍為討喜,是場視覺大於味覺的饗宴。
查了一下原來是這家 BonBons de ChocoLat。造型都非常的精緻啊,還沒品嘗,不知道味道如何,明天來試試看。
經本人實驗過後了解,內部是比較偏流質的巧克力,大部份的口味都是帶有淡淡的果香,外型比味道稍為討喜,是場視覺大於味覺的饗宴。
星期四, 12月 08, 2011
Dropbox + Git = 免費的 Git server
先在 Dropbox 中新增一個 repository
~/Dropbox/git$ mkdir project.git
~/Dropbox/git$ cd project.git
~/Dropbox/git$ git init --bare
~/Dropbox/git$ cd ~/project
git init --bare 的意思是說這個資料夾初始化後不會有 working directory,裡面只有一些 meta data,所以你是沒有辦法在底下看到跟修改 srouce code。通常 server 上的 repo 都是這樣 init。
~/project$ git init
~/project$ git add .
~/project$ git commit -m "first commit"
~/project$ git remote add origin ~/Dropbox/git/project.git
~/project$ git push origin master
接著其他人只要在他們的電腦中執行
git clone ~/Dropbox/git/project.git
便可以開工啦,真的是非常的方便。不過這方法比較適用於小團隊的合作開發,如果人數眾多,可能會碰到 Dropbox 裡面檔案在同步的同時產生 conflict。 不過因為每個人 local 端都有完整的 repository 所以不需要擔心救不回來。
星期三, 12月 07, 2011
在 Windows 下使用 Sublime 撰寫 Markdown
準備的材料有
安裝 Sublime 以及 Pandoc 之後,點選 Sublime 裡的 Preferences > Browse Packages。然後在 Markdown 這個資料夾中,新增名為 "Markdown.sublime-build" 的檔案,檔案內容如下:
接著在 Tool 裡面選擇正確的 Build System 後,按 F7 便可以轉換出 html 啦。
也有另外一個 editor 叫做 MarkdownPad 可以即時顯示轉換結果,介面設計得還不錯,非常的乾淨簡潔,不過稍微用了一下後發現 email 格式 <abc@gmail.com> 轉不出來啊。
語法參考: Markdown syntax
參考: https://gist.github.com/954436
安裝 Sublime 以及 Pandoc 之後,點選 Sublime 裡的 Preferences > Browse Packages。然後在 Markdown 這個資料夾中,新增名為 "Markdown.sublime-build" 的檔案,檔案內容如下:
{ "cmd": ["pandoc.exe", "-f", "markdown", "-t", "html", "-o", "$file.html", "$file"], "selector": "source.md" } 接著在 Tool 裡面選擇正確的 Build System 後,按 F7 便可以轉換出 html 啦。
也有另外一個 editor 叫做 MarkdownPad 可以即時顯示轉換結果,介面設計得還不錯,非常的乾淨簡潔,不過稍微用了一下後發現 email 格式 <abc@gmail.com>
語法參考: Markdown syntax
參考: https://gist.github.com/954436
星期三, 11月 30, 2011
2011 年度異(ㄕㄨㄞ)相
- 經濟再度陷入衰退。
- 愚蠢又迷信的人類因為 100 這個數字,瘋狂的迷上結婚!
- 冬天來的非常晚,現在我還穿短袖,不知道今年冬天到底會不會來。
- 假日通常是下雨、烏雲密布、雞雞歪歪,上班日通常是豔陽高照、風和日麗、天空奇藍無比,WTF!(見上圖)
星期二, 11月 29, 2011
Nikon SB-700 閃燈試拍
一直在猶豫到底要買腳架還是閃燈好呢,最後,有感於常常在室內拍攝,總覺得老是陰陰暗暗光線不足,大光圈也沒辦法克服的情況下,還是決定先買了 Nikon SB-700 閃燈囉。另外一個原因就是之前為了 Fujifilm S2 Pro買的充電電池,在購入 D90 後就一直冰凍起來了,感覺有點浪費,終於是可以派上用場了!
好貴啊,接近 10k 大洋。但是為了增加貧窮上班族生活中的小小樂趣,值得。
好貴啊,接近 10k 大洋。但是為了增加貧窮上班族生活中的小小樂趣,值得。
橘色的濾色片,好像有點過頭了,好像在烤箱裡面,貓被閃瞎了。
星期日, 11月 27, 2011
星期二, 11月 22, 2011
如何成為大師
Once upon a time, there is a ........
....... and they call him the "master" happily ever after.
星期二, 11月 01, 2011
Infection
惱火在蔓延,在波拿斯發與不發之際。
戰士們在摩槍,預習下場戰事,然後奮勇向前。
一場打不贏的仗,一支碰不到敵人的槍。
一顆只想混口飯吃的心。
After Note: New war is still coming.
戰士們在摩槍,預習下場戰事,然後奮勇向前。
一場打不贏的仗,一支碰不到敵人的槍。
一顆只想混口飯吃的心。
After Note: New war is still coming.
星期五, 10月 28, 2011
星期一, 10月 10, 2011
星期二, 8月 02, 2011
訂閱:
文章 (Atom)





