星期二, 9月 09, 2008
星期四, 9月 04, 2008
國境之南
國境之南
詞:嚴云農
如果海會說話 如果風愛上砂
如果 有些想念遺忘在漫長的長假
我會聆聽浪花 讓風吹過頭髮
任記憶裡的愛情在時間潮汐裡喧嘩
非得等春天遠了夏天才近了
我是在回首時終於懂得(也許天氣永遠會那麼熱)
當陽光再次回到那 飄著雨的國境之南
我會試著把那一年的故事 再接下去說完
當陽光再次離開那 太晴朗的國境之南
妳會不會把妳曾帶走的愛 在告別前用微笑全歸還
海很藍 星光燦爛 我仍空著我的臂彎
天很寬 在我獨自唱歌的夜晚
請原諒我的愛 訴說的太緩慢
written by
yen3
in
2:29 下午
2
comments
星期二, 9月 02, 2008
想法
人是一種以形而上的思考和形而下的慾望結合。
若說要懂了什麼,恐怕只能說什麼都不懂,但是學會面對自我想法時,往往帶著一種嘲笑,拆開成赤裸裸的慾望時,其實人與人之間沒什麼不同。
堂而皇之的華麗遮掩了原始慾望的單純,拆開包裝之後剩下的又是什麼呢?但不幸的是,人長越大,自已為自己覆蓋的一層包裝,張愛玲所說的荒涼於心中徘徊不散。
一個故事就此開始。
---
序
written by
yen3
in
9:03 上午
0
comments
tag: life
星期一, 9月 01, 2008
最近
最近,其實,生活很平靜,今天才去看了海角七號,有很多想法,等過一陣子再寫。
禮拜六日,為了不要讓自己太無聊,繼續寫程式,把cllee交待的新工作做的差不多了,明天要meeting,希望能順利一點,明天早上再把最後一個bug修掉即可。閒暇時利用一些時間在看boost,覺得有趣的東西都是functional programming的東西,所以我還是回來看FP好了。
還有三個禮拜複賽截止,還有二個禮拜就開學,不用打卡,不用寫工作日誌的第一天,其實很棒,但生理時鐘早就被調成打卡的作息了,早上八點醒來,下午五點吃飯,或許就這樣子發現我很容易被某件事制約?
也一直想寫一些黑暗的東西,但是心情太平靜,反而寫不出來? 也好,寫些平淡的東西也不錯。
---
閒聊文
written by
yen3
in
11:12 下午
0
comments
星期六, 8月 30, 2008
小試一下
第一次裝boost,雖然知道很久,但是一直沒時間試,今天寫了簡單到爆的程式碼
輸入指令如下#include <boost/array.hpp>
#include <iostream>
#include <algorithm>
int main(){
boost::array<int, 10> a;
for(unsigned int i=0;i<a.size();i++) a[i] = i;
std::copy(a.begin(), a.end(), std::ostream_iterator<int>(std::cout, " "));
std::cout << std::endl;
}
可獲得如下結果g++ -I /usr/local/include/boost-1_36/ test.cpp
0 1 2 3 4 5 6 7 8 9
---
我真無聊XD
written by
yen3
in
2:55 上午
5
comments
tag: life, programming
星期四, 8月 28, 2008
Fink Project
Fink Project 是一個可以讓你以套件管理形式來管理OpenSource的安裝套件,整個安裝說明在此在dkg解壓縮之後,安裝完,記得把"FinkComander" 移入應用程式中,會有一個非常像ubuntu的套件管理程式(其實安裝指令也有部分雷同,估計兩者有血緣關係XD),可以試試,比起MacPorts而言,有更多選擇。
---
學習。
星期二, 8月 26, 2008
星期一, 8月 25, 2008
Sixpence None The Richer - Within A Room Somewhere
I breathe the mist
Floating about the stars
I can caress
With velvet hands
I breathe the mist
Floating within, without this pen
This pen between my fingers
Messiah
I know you are there
Within, without me
Holding me
Messiah
I know you are there
Catching, carrying
This beautiful mess
Escape the pain
Within a room somewhere
Escape the pain
So deep inside the soul
I have no key
No map to find
星期日, 8月 24, 2008
真實與性
今天下午花了時間去看了 失樂園 這部電影,不過我沒有看完我就關掉了,因為我的心底很沉重。
我不懂性,因為我不知道。
看這部電影時,導演用冷色調的藍色表示夜景,不斷的切斷內心與真實的場景,其實,當人深陷其中時,是愛情造就了性還是性造就了愛情,已經分不清楚了,一再的沉倫,當男主角說我們一起下地獄時,何謂救贖呢? 在這部的電影,冷色調的夜景,似乎對我而言是一個失恆的世界
閱讀的小說,多多少少都會有少則數行,多則成頁的有關性的描述,有的表達,只是為了一種情感的抒發,有的想要藉由性表達某一些觀點,更有者只是為了讓書更有看頭,等到人漸漸了解是怎麼一回事之後,突然有個感想
人長越大不是祕密越少,而是越無法承認自己真實的內心,或許真實的內心參雜慾望時,越發難以了解真實想法。人之所以複雜,是無法面對真實的自我,就有如日劇白夜行的最後警官所說,她已經無法說出實話了。
看著很多發生的事,其實我還蠻喜好閱讀D51的小說,但總是有一個心中的疑問,為什麼每篇小說都脫離不了夜店?
當人陷入一個巨大而被吞噬的寂寞時,性與真實,謊言與否已不重要,唯一的是抓住當下的快樂,而何謂解放,其實已經失焦。
這個社會存在著多種角度的社會,只是剛好我選擇了一個最簡單又幸福生活,但是豈又能知道進入這個旋渦時,又能剩下多少真實的自我,不哭泣面對明天的太陽。
唯一能做的,快樂的過生活。
---
有感
written by
yen3
in
12:03 上午
0
comments
星期日, 8月 17, 2008
如何用Haskell寫出笨拙的99乘法表
目前想法如下。
mult_line x = map (x*) [1..9]
mult_table x = map mult_line [1..x]之後,我在ghci中呼叫
*Main> mult_table 9
[[1,2,3,4,5,6,7,8,9],[2,4,6,8,10,12,14,16,18],[3,6,9,12,15,18,21,24,27],[4,8,12,16,20,24,28,32,36],[5,10,15,20,25,30,35,40,45],[6,12,18,24,30,36,42,48,54],[7,14,21,28,35,42,49,56,63],[8,16,24,32,40,48,56,64,72],[9,18,27,36,45,54,63,72,81]]
written by
yen3
in
10:09 下午
0
comments
tag: Functional Programming, haskell, life
星期六, 8月 16, 2008
雞湯哲學
yen3媽: 兒子,今天喝雞湯好嗎?
yen3: 嗯嗯
yen3媽: 有一塊雞肉如何?
yen3: 嗯
yen3媽: 二塊雞肉?
yen3: 嗯
yen3媽: 三塊雞肉?
yen3: 我沒辦法吃這麼多...
yen3媽: 那三塊半?
yen3: ...
---
母親總是富有哲理XD
written by
yen3
in
9:17 下午
2
comments
tag: life
返家
已經不記得上次是什麼時候返家,這次回來透露著陌生的熟悉感,家人聚在一起的感覺非常美好,從美國回來的姊姊送與我和efang衣服各一件,也拿到了Introduction to Funcitonal Programming 2/e,雖然上面沒有簽名XD,還是開心的想要大叫XD
---
我回家了。
written by
yen3
in
12:22 上午
0
comments
tag: life
星期四, 8月 14, 2008
信仰
我並不是一個無神論者,我是一個普通人,我相信很多事。本來還想寫很多很多事,先從這篇寫起吧。
昨日看"旅美小簡",陳之藩先生在1955年29歲時完成了這本書,,其實人的核心概念並沒有改變多少,但是我們卻了花了更多時間來證明真理的價值。看著他的大學時代與胡適的信,邊看邊感覺汗顏,在大學時代,能對這個世界抱有遠見及書寫社會,讓身為大學生的我,愧對大學生的名稱。
現在不是自我檢討的時候,看旅美小簡可以理解一些事。科學家的信仰是所追求的真理,及其這個存在理性的社會。不是不相信宗教,而是超越宗教之上,還有更值得我們做的事。我不是一個科學家,但是我的信仰是科學。
說一點輕鬆的,不知道美國那個有名的研究機構,對於一群大學生做了問卷調查,其中有一群人立志成為有錢人,有一群人立志把事做好。過了很久之後再做一次問卷調查,發現立志把事做好變為錢人的比例比立志成為有人錢的人比例更高。不過我可以預估到我以後會很窮...XD
從事學習或研究工作最有趣,也是我最喜歡的一點,透過自己的力量,用一個自己所能理解的角度,多接近世界一些。
---
或許有一天我會需要別人救濟XD?
written by
yen3
in
11:44 上午
0
comments
星期三, 8月 13, 2008
感嘆
Thinking in Java 4/e 中文版現身了,但是The Java Programming Language 4/e 中文版卻不知在何處...
---
Orz...
written by
yen3
in
10:44 上午
0
comments
tag: life
星期二, 8月 12, 2008
有關物件導向的胡言亂語
老實說我也不知道我要下什麼標題比較好XD
昨天閒逛時發現,今年人次快要接近一萬了,想一想也沒什麼好高興的,從Google點進來的都是去年的文章居多XD 可以說今年到現在為止是過的比較懶散的生活,不過我想,寫blog還是一件相當有趣的事。
暑假過一個多月了,每天都在寫程式中與閱讀渡過,可謂是過的相當充實,目前只有滿心希望能夠把眼前這個專題完成。並不是每一次都可以遇到很好的合作對象的。
最近也沒什麼空在閱讀小說上,以前幾個禮拜看的"殺人本能"就覺得不甚讓人覺得緊張,還是戰慄遊戲比較提升我的腎上線素,應該是說,我最近的興趣是閱讀重構之類的書,書的清單如下。
- 物件導向設計模式: 可再利用物件導向軟體之要素(Design Patterns)
- Object-Oriented Analysis and Design with Applications 2/e (這本尚末閱讀)
- 重構 - 改善即有的程式設計(Refactoring - Improving The Design of Existing Code)
- 重構 - 向範式前進(Refactoring to Patterns)
- 敏捷軟體開發 - 原則、樣式及實務(Agile Software Development: Principles, Patterns, and Practices)
其實看了好幾次Design Patterns,我從來沒有記得裡面的經典patterns,這種書本來就是看完就忘,如果為了pattern而pattern,很容易陷入一般教科書所謂的pattern happy,有幾本書提到使用XP(eXtreme Progarmming)來使用OO,對我而言,從這邊開始去了解整個思維是不錯的,雖然好像不是那麼多人注意就是了,在前陣子 "Refactoring to Patterns" 在天瓏暢銷排行榜上,我們只能保佑,不要有一堆人買回去供養XD。
以自己大膽的猜測而言,其實學習 OO 沒有入口,因為原則非常簡單,OOP 是一門藝術,但是並不科學,因為他並不像數學一樣,經過一連串的演算即可獲得結果。而是得靠一個一個unit testing去確認程式的正確性。其實進入這個世界,就有如木匠帶領學徒一樣,技巧只有幾樣,但是不斷的精練自己的能力,方能寫出有如藝術品的程式。雖然擁護者會說,OO 是最接近人類思考的方式,並輔以相當的科學佐證。
物件導向最重要概念為class hierarchy,利用class hierarchy方有可能把物件導向用到淋漓盡致,但是問題來了,要用多少技巧來包裝? 過或不及都會造成整隻程式的有趣現象。書上所提及的所有物件導向技術都是用以改善一個程式的class hierarchy,抓住這個重點再來閱讀,我的心思越辯越明。
此外再提及一個在學校有趣現象,大家都會說,物件導向很重要,要盡快學會,但是卻看不到幾人能夠善加利用而教授他人,或許過幾年我也會聽到XP很重要,programming的發展長時間在配合業界,而非配合科學。
何謂Computer Science,推薦ptt CSSE版上瞧瞧高手討論。也是不錯
---
果真是胡言亂語
written by
yen3
in
12:47 下午
0
comments
tag: life, programming
星期六, 8月 09, 2008
感謝
不知道要下什麼標題才好
Clara's blog article about birthday
朋友提及才發現,升大四的時候,好像很少有人有過生日的習慣了,蠻感謝同組組員的,應該是說,我不是一個擅長表達的人,一直不知道怎麼說自己的感謝之情。還是很感謝eating, Clara, fire7617。
想想我們這組感情也不錯,始終都是自己白目了些。謝謝大家。
---
謝天
written by
yen3
in
11:20 下午
0
comments
星期二, 8月 05, 2008
生日
其實,每一年都會思考,我是否有足夠的資格過生日...
不知道從什麼時候開始,我覺得我少不更事的年紀太長,認為自己不甚好,從理所當然,到覺得自己應貢獻社會。在更多時候,覺得自己應該要會某些事,卻總是一事無成。雖有Josh鼎力相助,發現自己興趣為何,從imperative programming 跳到 functional programming 學習(我曾自嘲,這跟我打了九年的注音不打從嘸蝦米的基本學起其實差不多(笑))。不知為何想起國文課本所提及的一句話。
真實偉大的樸實無華
少不更事看書時,只是為了炫耀自己會了什麼,並不是一個可取的想法,現在看書的時候,只是單純想要了解一件事,到現在我不認為我理解了這句話,但是我所想,持續的努力,或許可以了解這件事。雖然一事無成,但努力前進,總有一天會找到答案,笨笨的前進,總可以讓一群人了解你笨笨的前進為何。
我曾跟Josh聊過一連串的事,才覺得自己總是浪費了一堆時間,不過我總是不後悔,因為因此我才會更珍惜當下與未來。就某個程度而言,有著一群我很感謝的朋友,我可以安靜的過生活,雖然實力不足,但更應該努力幫忙身邊的人。今年並不想和往年一樣列了一堆人名,大家不一定認識,且少列誰我都會覺得抱歉。我想說的是
希望,身邊的大家都活的平安快樂。
---
謝謝大家,今年是一個相當愉快的回憶。
written by
yen3
in
7:54 下午
0
comments
星期一, 8月 04, 2008
列印
第一次買碳粉,才知道原來很貴,2650...Orz
人生因有夢想而為大,所以我正在K我印下來的兩份文件 "Introduction to lambda Calculus" 和 "Yet Another Haskell Tutorial"。
我的夢想很簡單,我想知道如何寫好程式,然後帶領一個團隊把程式寫好。我的兒時夢想很簡單,我想要寫出一個可以讓很多很多人用的好程式,我一直都因為這個原因前進。我不是一個有能力的人,我更不是聰明的人,但是我相信Randy Pausch說的兩句話
如果你認真過生活,那麼你的人生自然會帶給你答案
阻擋你的夢想必有其原因,而這道牆是讓你展示你有多麼想達成夢想。
其實在一兩個月前就知道有關Randy Pausch教授的事,但是腦中一直在思考非常多事,我想我有非常多的事想說,而這篇,只是一個開始
---
認真過生活,人生自然會帶給你答案。
written by
yen3
in
1:00 上午
0
comments
星期日, 7月 27, 2008
Haskell Learning Note(2)
欠稿很大,預估要寫到folder後才能停一下。
環境
建議是用ghc(The Glasgow Haskell Compiler),大部分的環境都有提供binary,直接安裝即可,而ghci是一個互動介面,較為常用指令如下。
- :q 離開ghci
- :l xd.hs 載入某個module(Haskell副檔名為.hs)
- :r 重新載入module
- :e 編輯所載入的module的文字檔(我在mac上,預設是用vim開啟)
簡單的開始
如果撰寫了一個function,可以使用:t 來看其形別要求,舉個例子
Prelude> :t sum . map read . words
sum . map read . words :: (Read a, Num a) => String -> a剛開始學習,學會看type是一件非常重要的事。然而,就此打住,想先講講一些別的東西Just Function
在Haskell中最小的組成單位是function,想要表達一堆資料,可以用list(不知道對不對,不過倒是知道list沒有這麼簡單),一個function必有其input 和 output,然而,我學習的第一個問題,怎麼樣得知input和output的要求為何,如果跟C++ STL一樣,use type as an argument,必有其限制,所以:t非常的重要(因為就是拿來看型別要求),在Haskell裡,有著非常神奇的type system,有好幾次我問Josh,為什麼會如此時,卻超出我的範圍,以剛剛說的例子而言
Prelude> :t words
words :: String -> [String]
(yen3註:一個String為input,產生一個為String的List)
Prelude> :t read
read :: (Read a) => String -> a
(yen3註: 一個String為input,產生一個型別為a符合Read的要求)
Prelude> :t map
map :: (a -> b) -> [a] -> [b]
(yen3註: map是一個神奇的function,基本原理就是,input為一個list,output也是一個list,但是map會套用一個function,將list of a轉換到list of b,簡單的來說,就是對每個元素做同一個動作)
Prelude> :t sum
sum :: (Num a) => [a] -> a
(yen3註: input 為一個list,輸出後型別為a符合Num的要求)接著再回來看看原來的例子Prelude> :t sum . map read . words
sum . map read . words :: (Read a, Num a) => String -> a
(yen3註: 變的很明顯,輸入一個字串,而輸出一個型別為a符合 Read 和 Num,全部串起來做一次就會變成...)
Prelude> sum . map read . words $ "123 456"
579
(yen3註:把字串根據空白分開成為個一list,然後每個元素被讀取成某一個型別之後,sum把每個元素做一求和的動作。)
其實這一行沒有解釋的很清楚,何謂Read要求 ? 還有,轉型的時候為什麼要轉成a? 這就再說XD (因為我也不會XD) 其實就學到這裡的時候,可以猜到一件事,Haskell自己幫你做了非常多的事,很多事硬要推測到底,其實反正看不懂。看清楚一個function的要求為何,似乎變的很重要,看懂他的運作方式會更有趣每次連載都不會寫太長,基本上都是利用專題空閒寫作,我就盡量寫啦XD
---
基本上這篇的註都是大膽的猜測,但是想不到要用什麼字XD
written by
yen3
in
6:51 下午
1 comments
tag: Functional Programming, haskell, life
Haskell Learning Note(1)
原本想說要用什麼 Learing about fuctnional programming using Haskell 之類的標題,但是一則是標題太長,一則是,我沒這麼專業,受到Josh Ko幫忙甚多,如果有任何錯誤是我表達不好,如果你看的懂,請出門左轉到Joshsoft留言感謝XD
What? Why?
什麼是functional programming? 簡而言之,一個programming組成的最小元素為數學性的function,在真實世界中的數學函式是沒有任何side effect,也就是說,給你一個input就會產生一個output,中間不會改變其他事。所以就某種狀況而且,這種思維非常適合數學好的人學習(我數學不好XD)。
functional programming之所以紅不起來的原因有很多,主要原因有二,第一,比起現在大部分的主流語言都來的慢,第二,如果很習慣現代的主流語言,學FP就會很痛苦(我就是那一個...Orz),但是誰都不能忽略FP本身強大的特性。在Erlang本身而言,善用了No side effect特性,以較為簡單的方法寫出平行程式。最重要的原因,現在的FP不再像以前一樣這麼慢了,但是良好的特性還是存在的。
Haskell是一個不怎麼紅而且推廣者也不打算讓他紅的語言,紅的FPL很多,Erlang, ML, F#都是,但是這些較紅的語言都允許一些現代主流語言的特性,反正都要踏入這個不紅的領域了,學比較純的東西或許比較有趣?
為什麼要學Haskell,最重要的原因,Haskell is a pure functional programming language,次要的原因,Josh Ko誘拐我成功了XD,如果夠純,或許我會從裡面學到非常多有趣的東西。
參考資料
基本上Haskell的參考資料中文的不是很多,入門的更少,看英文是一個比較好的方法,網站參考資料如下
- Haskell wiki: 官方網站
- RealWorld Haskell: 網路上放的是beta版本,讓大家提供意見
- Yet Another Haskell Tutorial: 一份pdf文件,不厚約200頁,值得一看
- 嵐達網: 為Josh的老師scm所主持的FP社群,請大家多多捧場XD
而我目前的參考書單只有兩本
- Introduction to Functional Programming using Haskell 2/e
- Real World Haskell
連載中XD
---
考慮要不要寫在GooglePage還是wiki上
written by
yen3
in
11:43 上午
3
comments
tag: Functional Programming, haskell, life
訂書
剛剛透過在美國的姊姊訂了一本 Introduction to Functional Programming using Haskell只能說,便宜一點點,不過還是覺得天瓏的代訂價3227有點誇張。
---
耶~期待~XD
written by
yen3
in
11:13 上午
0
comments
tag: Functional Programming, life
星期五, 7月 25, 2008
寫程式的胡言亂語
這是一篇有關programming的文章,不想看的可以跳過了XDXD,不過最近的我似乎很少寫這些文章。
最近一直在寫C# with .net compact framework,老實說,我一直被微軟的名詞搞的暈頭轉向,當我有問題只能靠著MSDN來解決的時候,有一種很深刻的無力感...不過我不得不說,Visual Studio .net 是一個很棒的軟體開發工具(雖然eating畫GUI時常常出現記憶體堆疊錯誤,她應該是畫太好...Orz),這部分是專題兼比賽關係,所以我大概等到比賽之後才會提及可以提及的部分,如果中華電信有保密條款之類的,我也只能說聲抱歉啦。
所以我想要提及一些我最近覺得很有趣的部分。寫程式越久只會覺得自己越來越不會寫程式,最近的興趣著重在兩個大重點functional programming 和 Refactoring。
functional programming 最近頗有復活的傾向,據我粗淺的知道(轉錄自某個老師告訴我的故事),上一次FP紅的時候是在一堆人瘋AI(Artificial Intelligence)時,Lisp是一個非常聞名的FPL,在1990年代附近一堆人在做這個題目,但是並不是有那麼實際的成果,結果做這類的題目變人人討打。FP其實專長並不止於此,就我的了解,讓你寫程式更像寫數學一樣,No side effect,lazy evaluation,等等之類的特性,使得近代的FPL極具威力,而跟現在主流的Imperative programming大異其趣,著實是一個讓我產生高度興趣學習的領域,據Josh Ko描述,有比較靠近主流的ML和pure FPL的Haskell,外加我自己所買的Erlang,我想我的學習會以後面兩個為主。到目前為止,我還是不會寫,或許過一陣子,可以自己試著寫出一堆有趣的東西。
舉個例子好了sum . map read . words $ "123 456"我當初看到這行程式碼我就哭了,這可是我第一次碰C寫的要死要活的題目,轉成簡單的C++ Code;
std::string s = "123 456";
s += " ";
int sum = 0, temp=0;
for(std::size_t i=0; i< s.length();i++){
if(s[i]>='0' && s[i]<='9') temp = temp*10 + s[i]-'0';
else{
sum += temp;
temp = 0;
}
}當然,上述的程式碼沒有做任何的最佳化寫法,不然可以用C的atoi()之類的function,重點是,再看一次FP的程式碼,光看字面就可以猜到程式的意思了(要了解沒那麼簡單,我被Josh Ko搞死了好久...Orz),以後會盡量把自己學習寫FP的筆記放上來,我想我有很大的機率會喜歡上這種程式思維。
接下來回主流Imperative programming XD,昨天嘗試的把Refactoring從第二章推進到第八章,這是一本我很少數後會後悔大一沒有買來看的書(當初錯過Effective C++也沒那麼嚴重),裡面提到種種的方法太漂亮了,從function level的Composing Method到Object之間的Moving Features Between Objects& Organizing Data等等的方法,給我在OOP上很多體悟,也再一次深深的了解自己基本功的不足,舉個例子而言,一般寫身份字號產生器時,最難處理的是每個英文數字所代表的數字,我在寫作時就提出了一個很簡單的方法
// normal writing
char c = 'a';
int value = 0;
if(c=='a') value = 10;
else if(c=='b') value = 11;
/*...*/
// better writing
const int c_value[] = {10, 11 /*...*/};
char c = 'a';
int value = c_value[c-'a'];這個方法在Refactoring也有收錄,名字為Substitute Algorithm(6.9),Refactoring並不會改變程式所要表現為何,很多時候會把一個複雜的function拆成由許多小function所組合,由專家告訴你如何測試及重構出一個更好的程式,在看這本書時,是一個很棒的體驗,縱使自己原本就會復審自己所寫的程式碼,我想我還是會不定期的看看這本書,會給我什麼體悟
學習相關OOP的運用最大的問題是,我一定得知道這些事(Design Patterns, Refactroing ...),但是我又得忘掉他,然後在需要的時候想起來,而不是為了運用而運用,但是我想,或許我會在Refactoring改變一下作法,或許我很難體會怎麼用Design Patterns,但是我想我會很樂意的使用Refactoring來學會Design Patterns,這時候就不得不提到 "重構-向範式前進(Refactoring to Patterns)",我還沒閱讀,但是我覺得或許是一個行的通的閱讀。
還有很多想提的沒有提及,就下次再說吧。
---
好長的一篇XD
written by
yen3
in
9:05 上午
0
comments
星期三, 7月 23, 2008
無言
繼主機掛點之後,螢幕(Benq FP71Q+)又壞了,跟上一次死在同一個錯誤,螢幕的開關壞了,距離上一次送修一年多。
我的桌上型電腦大概整組壞完了...有一種懶的修的衝動...
---
有一種很衰的感覺...Orz
written by
yen3
in
9:05 上午
0
comments
tag: life
星期日, 7月 20, 2008
程式與人生
原本想要回彰中講Generic Programming的,不小心講成這個XD
只能說自己在認識的人面前都會爆走,顯然是一個不太好的現象,講解的主軸還是GP,不過中間穿插了許多小故事,也講解了許多自己的想法,我想在這個blog再講一次。
我遇到許多人都跟我說要努力達成某件事,但是只有少數人能達到,沒到的人不是沒有這樣子想。
如果想要對自己構成某件改變,不改變自己的生活形態是不可能的,如果只有想一想之後,生活仍然一模一樣,我想不會有什麼改變。
要認真是一件好事,我想以後如果有類似問題,我會這樣子回答的。
---
所以我連NFS都戒掉了XD
written by
yen3
in
5:59 下午
2
comments
tag: life
星期五, 7月 18, 2008
表達
以前可以暢所欲言的我,似乎漸漸的消失。或許因為知道世界之大而安靜,保持更好的觀察與學習能力,在前進。
明天準備回去講我忘的差不多泛型程式設計,今天因為颱風只有中部停止上班上課。想一想還是頗要有趣的,一般都是其他地方停課的。還是說我可以就此偷懶,讓他們今天的上明天的課XD 不過人得認清現實,有這麼好嗎XD
時間充足的狀況下,我蠻願意準備這堂課給大家的。
---
似乎不會有時間充足的狀況
written by
yen3
in
9:05 上午
0
comments
tag: life
星期四, 7月 17, 2008
電腦
我的桌上型電腦掛的差不多了。
現在想想,這台當初升大一買的時候,可是一個不錯的配備,Athlon64 3500 + 1 GB DDR + Geforce 6200,在這台寫程式,著實十分快樂(不過那時候寫的程式老實說也不吃重),但是大一心情不好的時候,每天拿它來跑Need For Speed: Most Wanted跑到顯卡熱當為止,到大二之後,就不會這麼操了(和efang在一起了,沒時間玩XD),現在想想,大一操這麼兇的電腦,不掛也困難。
這個學期當機頻傳,不是顯示卡出錯,就是記憶體掛掉,昨天徹底掛點,開機時連逼聲都沒有,初步推測,主機板掛了,記憶體掛了一條(學弟幫忙測試得到的結果),顯卡應該也差不多了。想想,以前電腦掛掉,就會很有活力的自己下海測試,換零件,直到好為止,漸漸的,我只是想安心的寫程式,這學期用MB的時間非常長,所以連這台什麼時候掛的,我都不甚清楚,想想也甚為慚愧,疏於照顧自己的電腦,電腦也不太可能會乖乖幫你忙。
或許暫時還是以MB為主工作,等比賽比完,再來好好的修理它,總是要盡心盡力照顧好每一台電腦的。
---
感觸良多。
written by
yen3
in
9:48 上午
3
comments
tag: life
星期六, 7月 12, 2008
星期五, 7月 11, 2008
Visual Studio + svn
Visual Studio .net 2005 or 2008 雖有 Team Suite 協助做版本控制,但是並不是一個非常好的選擇,當然,Team Suite(2008稱為Team System)還包括版本控制以外的功能,例如說可以做單元測試(Unit Class Test),等等之類的,由於Team Suite太肥了,我決定還是朝向軟體來協助。最主要的原因,要做到Team Suite的版本控制,Server端要裝Windows Server 2003,什麼鬼...Orz
Subversion(svn) 在 OpenSource 界是一個非常常用的工具,如果在純Windows的環境下,伺服器端,可以使用Apache + svn,是一個不錯的選擇。也可使用IIS + VisualSvn,網路上可以爬文,我就不再多廢話,我是使用後者(因為Server原本就有裝IIS,不想相衝)。
在Visual Studio .net 2005, 2008,皆可使用 Ankhsvn,這個軟體為一個plug-in的形式存在於Visual Studio中,不過並不是那麼穩定,可以使用TortoiseSVN來做為輔助(雖然大部分的狀況下他比前者還重要XD)。
如何讓很多人用在Visual Studio 用svn寫同一個專案,我試出來的方法為,先讓其中一個人建好project,用svn上傳之後,其他人先用TrotoiseSVN下載下來,之後直接開啟裡面的專案檔,在Visual Studio裡面即可設定好,可直接Commit,非常方便,不建議使用Anksvn來做設定新專案的動作,通常會有一些奇怪的事發生。
設定好了,大家可以快樂的使用svn來寫同一個專案了。
---
為什麼我覺得這篇的口氣很怪啊...Orz
written by
yen3
in
8:57 上午
0
comments
tag: programming, software
星期四, 7月 10, 2008
最近
其實很多事很難以解決,明明每天都忙到很晚,感覺上總是沒什麼進度。或許只能說自己太久沒有上緊發條了。
Qt其實是一個很有趣的東西,我建議自己的學弟去學習,我自己還是在Google Static Map API上打轉,pre-fetch map其實有很多事可以考慮,可以試試。
開始閱讀和運動習慣,算了,想到再寫,超多事可以寫的,下筆此刻竟一個思緒也無。
---
無狀態
written by
yen3
in
10:34 上午
0
comments
tag: life
星期三, 7月 02, 2008
架構
人跟人之間的問題果然非常難,還是生程式架構比較簡單...Orz
---
雖然這次要生的架構也超難就是了
written by
yen3
in
1:26 下午
0
comments
tag: game, life, programming
星期一, 6月 30, 2008
星期日, 6月 29, 2008
星期五, 6月 27, 2008
大三下回顧
雖然還有一個project要完成,對我而言,大三下已經正式邁入一個尾聲。雖然這學期寫的程式都不大,但是也不少,雖不能輕鬆應付,但是也沒有遇到多大的問題,我想,cllee帶我們去比賽,在這個學期是有產生決定性的效用的。
思考了很多事,以學業上而言,有時候人不能思考太多事情,笨笨的去做,反而會有更多的效果,對於寫程式這條路而言,我才剛開始,我並不是跟Josh一樣很努力又有很好的結果,我是一個不怎麼努力的人,且很笨(笑)。早期大一大二閱讀的書到現在漸漸用的上了,不過卻有一股心虛的感覺,越用才越發現,原來以前的自己所學是不怎麼踏實的,但是也得說,如果以前不堅持看某些書的話,現在可能更無法把事情做好了。
對我而言,我希望盡量把我的現實面對生活拖到最後一刻,一直到現在,我還是可以很熱情的學習每一項東西,雖然這每一項東西考試不會考到,對於實質的生活不一定會有幫助,但是我喜歡。ycfu跟我說,你書看太多了,應該直接下去接個project來實作才對。這句話是對的,我理論不好,我寫程式也不行,有時候寫程式,下去寫就對了,並不用思考太多能與不能的問題。
最該感謝的還是cllee老師,在我覺得心情不好啊,人生徬徨的時候,找他聊聊,總是會給我一股最直接的力量,也感謝老師一直容忍我們進度落後,暑假我會一次補回來。
smallpig老師,對我而言,他是一個講話有點毒的老師(雖然blog一點都看不出來XD),不過從他的身上學到不少的現實生活的程式設計的想法與技巧,非常感謝老師,我這學期有一半的時間在寫他要求的程式,也可見我的功力不足,但也無妨。
ycma老師,有人說他悶騷,我覺得他是對某些技術存在著狂熱的老師,unix programming上的非常精采,雖然我們一直拖課,不然會聽到更多東西,但是這些事物帶給我是全新而不同的想法,也從老師身上學到很多編程技巧,雖然老師常常被我們嚇到XD。
efang,我很感謝,心情不好的時候,總是會陪著我,我會努力寫程式的。
eating,雖然你可能覺得你做不了什麼,但是一個安心寫程式的環境非常難求,沒有你,我也辦不到。
clara,雖然你常手殘XD,不過常常從你身上學到很多很有趣的程式想法,讓我的腦子開通了不少。
fire7617,雖然你常看我不爽,但是感謝你容忍我一直犯錯,我們要一起向前衝。
gb014388,全方位的心靈導師,以後還是靠你了XD。
其實,在這學期才完全想通一件事,我一直很想認真做專題,但是專題會卡到研究所考試,我的想法很簡單,我想把專題做好的原因是,我想做好一件事,做好一件事的態度會影響我一輩子,然而,今天考研究所是一個選項,當然,沒有考上是一件可惜的事,重點是我考研究所是為了什麼。在人生的目標前面,路不只有一條,但是我要選擇我做起來不會後悔的路,如果今天沒有做好該做的事,考上研究所也是沒有用的,做好該做的事,接下來才能談下一步,能影響人生的,往往是想法,而非現實生活的事物。我會試著努力準備研究所,但是,在把這一件事做好之後。
這個學期生活非常的簡單,連愛看的日劇都很少看了(這跟桌上型一直當沒辦法抓日劇看也有很大的關係XD),事情比以前多的狀況下,如果保持同樣的生活,能做的事只會比以前更少,得要有所交換,才有辦完成自己想要做的事。
---
好零碎,不過想法只有這些。
written by
yen3
in
7:44 上午
0
comments
星期三, 6月 25, 2008
星期二, 6月 24, 2008
星期一, 6月 23, 2008
星期六, 6月 21, 2008
日落
很高興認識Zerolex這位朋友,他在PHP和C上的功力非常好,不像我一個四不像的人XD 私下聊天才發現,他是一個很有趣的人,但有身為資訊人應有的堅持,假以時日,會閃閃發亮的。
---
已加入blog sidebar
written by
yen3
in
1:04 下午
6
comments
tag: life
星期四, 6月 19, 2008
花園克拉拉
Clara是我少數認識會寫程式的女生(沒辦法,資工系女生本來就少XD),在認識她的大部分,她的寫程式其實架構良好,問題都不大。
不過當她的程式有問題,就是大家該撞牆的時候了XD 這是因為絕大部分時候,她錯的並不是程式問題,也不是邏輯問題,也不是架構問題,而是
打錯字問題...Orz
打錯字倒也不是一個很大的問題,她的手殘從來不會拖超過第二天就可以找到,只是想做個紀念,因為這個學期好像四次還是五次她的程式有大問題都是打錯字XD 這某個層面而言也不錯,至少沒有很大的問題存在。不過當辛苦幾個小時之發現是打錯字的問題,我想這心情也頗難描述XD。
不過總和而言,她還是一個很寶的人,尤其在寫程式上XD
---
做個紀念XD
written by
yen3
in
11:09 上午
4
comments
tag: life
星期二, 6月 17, 2008
小小嘗試
發現這個blog的程式文似乎沒啥人在看,所以想做一點嘗試,因為自己的英文很爛,寫程式文時,又很容易中英夾雜,所以以後應該會試著用英文寫作。但是鑑於自己的英文實在是很爛,所以請大家多多指正了~
---
拜託大家了~XD
written by
yen3
in
11:53 上午
9
comments
tag: life, programming
星期日, 6月 15, 2008
Google Developer Day
這大概是我第一次參加Google的活動,也感覺到Google非常的有錢XD 同行的人不少,所以拿回來的餅乾也真的不少XD。
進入正題吧,由於專題需要,選擇了Maps API,由於自己的興趣,選擇了Clound Computing,我對於如何寫出平行程式具有蠻大的興趣的,做Application並不是我的強項。
Maps API 本身已經算是非常的完整,不過由於架構在Javascript上,事實上我覺得是AJAX,在手機上是無法使用的,雖然有Google Map Mobile,不過是一個close software,問了在會場的工程師,得到的Soluction有兩種,一種是,找到夠強的browser,一種是,嘗試去讀tile server(工程師說,網路上有很多破解可以直接讀的方法XD)。等事情告一段落會試試這些方法。
Clound Computing 這個技術其實是一個非常有趣的想法,一直會思考一個問題,如何寫出sequentional program,但是具有平行運算的效果,many to many,其實還是一個client-server的架構,但是把one server變成many server時,這個問題就變的很複雜而且很有趣。
題外話,每個人都跟我說在會場的女生很少,為什麼我會覺得很多,難不成我是錯覺嗎,在此節錄eating的想法 "少部分的女性中,大部分的女性來都是家眷而非相關科系的" hmm 觀察入微,不過我不知道耶,我現在一整個還是在思考會場所聽到的東西。
---
大概就是這樣XD
written by
yen3
in
10:29 上午
2
comments
tag: life
星期六, 6月 14, 2008
想法
我的想法跟大部分人沒什麼不同,如果對這個議題沒有興趣可以跳過(笑)。
前幾天,Smallpig老師丟出一個問題,我們憑什麼覺得Microsoft不好,你有付過一毛錢給他嗎? 而Google又真正好嗎? 免費的通常最貴 我只能說,我付了不少,不過我也承認,遠小於我使用的數目。
有關MS的討論,我在很久很久以前轉錄過一篇文章,我永遠都認為以前少不更事,當然,現在也沒多好(笑)。對我而言。
其實Google和Microsoft都在做一樣的事,只是Google做的比較成功。
MS其實是一個商業公司,通常在產品輸人時,會傾向把該公司買下來,不然就降價因應,最後不行才會真正想找人寫出一個不錯的軟體,今日的我不喜歡MS的原因,大概是不喜歡他的商業手法吧。雖然有時候我真的覺得MS有事沒事就要自己造一堆只有他的軟體能用的標準出來,讓software portable非常的低,這點也是讓我不喜歡用他的工具開發的原因。
我不喜歡被綁死的感覺,尤其是很貴的綁死。
Google其實是一個廣告公司,當然不可否認的,他們做的事真的非常棒,只是Google也是嘗試包下所有的Web Service,但是今天Google不會被人垢病的原因是,他所提供的服務通常是免費的,而且沒有很恐怖的廣告佔據你的眼睛。但是簡單的來說,Google就是想要包下所有的Web Service,然後放上廣告吸引人去點選,從中獲利。雖然表面上看起來沒有什麼很殘酷的商業手法,但是每推出新服務,無法避免的會對現有的廠商造成衝擊。其實會有一種猜測性的想法,如果今天新出來的一個idea,縱使想出來的人有辦法實作,那麼依今日Google的實力,是否有辦法找一群非常好的人把該創意複製下來呢? 不可否認的,Google可能有著全世界最頂尖的人才。
大者恆大,免費的最貴。
---
想法到此。
written by
yen3
in
11:14 下午
0
comments
便當
今日參加Google Developer Day,中午的便當是我吃過最高級的,竟然會有我吃不完的便當XD
---
國網的便當...唉...Orz
written by
yen3
in
1:14 下午
5
comments
tag: life
星期五, 6月 13, 2008
誘人
雖然我對functional programming具有高度興趣,但一直沒有時間XD,如果我不太可能做相關理論,那麼學會寫functional program也是一個不錯的事情,今天看到了Erlang 程式設計 (Programming Erlang: Software for a Concurrent World)的出版,好誘人啊,有空應該會去看看。
此外,jjhou與陳裕成合譯的書也出來了"重構-向範式前進 (Refactoring to Patterns)"應該也會列入閱讀清單裡。
---
說不定就這樣子買了XD
written by
yen3
in
8:53 上午
0
comments
tag: life, programming
星期四, 6月 12, 2008
BTree完工
比預計來的順利,簡單的文字介面也完工了。
---
介面比較難寫XD
written by
yen3
in
11:17 下午
0
comments
tag: life, programming
最近
好久沒有紀錄一下了。
首先,還是恭喜好友的決定啊,畢竟是一件好事。
自己生病了兩個禮拜之後回來寫了三天的btree,預計明天或後天就接近尾聲了,生病的時候想了很多事,大部分都是蠻荒誕可笑,病好了之後也花了比較多時間在與朋友閒聊,讓自己不要那麼像機器。
人不是機器,如果像機器總有一天會倒。
養病時也看了一點書,母親也嘗試告訴我,人啊,一天的時間就是那麼多,每個人都很忙,與其還要想有多少事情要忙在擔心,不如想想完成多少事而開心吧,真是一個非常棒的想法,怪不得我的生活步調越來越慢,但是效率並不以前差。這個學期著實寫了不少的程式,雖然都是小程式居多,不過寫久了,對於寫程式的速度有相當的提升,人果然是要操的,雖然在這個學期休息時間是變的很少,不過依舊開心的過生活。縱使生活對於一般人乏善可陳,但是我越來越喜歡這樣子單純的生活了。
---
單純即是幸福。
written by
yen3
in
1:33 上午
2
comments
tag: life
星期三, 6月 11, 2008
debug
Btree實作的差不多了,只剩下delete要檢驗,而有關delete的部分寫超過200行。
---
大部分都重覆,所以還蠻煩的XD
written by
yen3
in
1:20 上午
2
comments
tag: life, programming
星期日, 6月 08, 2008
seekg() and seekp() in C++
前幾天和efang討論一個問題,如何Random access a file,最主要要問題是能跳到檔案任一byte處進行寫檔和讀檔動作。我提出來的第一個解決方式,使用Unix System function即可搞定,對於unix而言,everything is a file,於是可以寫出這樣子的code
struct _bnode{ /* ... */ };
_bnode node;
int fd = open(filename.c_str(), O_RDONLY);
lseek(fd, index*sizeof(_bnode), SEEK_SET);
read(fd, &node, sizeof(_bnode));
close(fd);
write的code也差不多,我就不寫了,這樣子的確可以迅速的完成我想要的目的,不過efang問我,seekg和seekp呢? 好問題,我從來都不知道這兩個function(看來我熱愛C++的牌子可以收起來了XD),這兩個funtion也的確屬於C++ Standard,於是我又寫了測試碼如下
ifstream infile;
infile.open(filename.c_str(), ifstream::binary);
infile.seekg(index*sizeof(_bnode));
infile.read(static_cast<char*>(static_cast<void*>(&node)),
sizeof(_bnode));
infile.close();
infile.clear();
寫檔也一樣,只是把seekg改成seekp,也就不寫啦,其中inflie.read()是用了一點取巧的方法,因為C++是strong-type,所以得把_bnode*強制轉型成void*,才能再轉成read function protype的char*,這樣子對於讀取整個struct _bnode也方便的多。
---
看來efang比我更熱愛C++ XD
2008/06/17
In fact, it is not easy in random writing files. we can try to use the std::ofstream argument.
std::oftream outfile;
outfile.open(filename.c_str(), std::ios::in | std::ios::out | std::ios::binary);
It would avoid some problems.
written by
yen3
in
1:51 下午
0
comments
tag: life, programming
星期二, 6月 03, 2008
星期六, 5月 31, 2008
上工
睡了好多天,該是上工的時候了,所有進度已經延後三四天了。
---
雖然中間還是偷偷解決了幾個簡單的作業XD
written by
yen3
in
12:09 下午
0
comments
tag: life
復原
大前天燒到37.6,前天燒到38.2,昨天燒到38.5,今天起床和一般沒生病感覺無異,只是體力差了一些,希望是好了。
---
一直發燒的感覺很討厭...Orz
written by
yen3
in
11:55 上午
4
comments
tag: life
星期四, 5月 29, 2008
休息
幾乎從大二以來每個學期都有一次過操勞發生偏頭痛,睡一整天就可以康復的差不多,這一次比較不一樣,剛開始是偏頭痛,後面直接發燒,在efang的陪同下看了醫生吃了退燒藥才沒事。
不過在此很感謝fire7617, gb014388, ColdFunciton, Edson,沒有大家,我不太可能好的這麼快。
---
聽說有人對我沒去上課很不爽XD。
written by
yen3
in
8:56 上午
3
comments
tag: life
星期二, 5月 27, 2008
星期一, 5月 26, 2008
星期日, 5月 25, 2008
星期六, 5月 24, 2008
耐心
在什麼程式都很想寫的狀況下,寫程式得更具有耐心才行。
---
不過程式也有可能多到寫不完XD
written by
yen3
in
12:12 下午
0
comments
tag: feeling, life, programming
星期四, 5月 22, 2008
OpenOffice 3.0 beta for mac
其實我一直是OpenOffice的愛好者,大概是因為他的跨平台性比起MS Office好了很多很多倍XD,3.0 beta脫離了x11,其實我也不知道是好是壞,但是執行起來還蠻穩定的,大部分不要太複雜的簡報都可以正常的觀看(隨機客的簡報看起來會變的非常慢XD),速度只能說差強人意,期待正式版嘍。
---
真是的一個很不錯的軟體。
written by
yen3
in
3:09 下午
0
comments
閃光
最近不斷有人跟我反應說我和efang的blog太閃了,節錄某人對話如下
我一直很想看內文,不過旁邊那一塊太亮了,我都看不到
---
拍謝拍謝,我會改進XD
written by
yen3
in
10:01 上午
6
comments
tag: life
星期三, 5月 21, 2008
Windows Mobile 6 SDK 隨手筆記
由於完全沒有相關的開發經驗,所以其實去了是受益良多,一時之間也記不下來,我學新東西一向只著於兩點,一點是目的,一點是可用資源有那些。
Windows Mobile 6 Professional SDK應該安裝的有
- Microsoft Visual Studio .net 2005
- Visual Studio .net 2005 Service Pack 1
- .net Framework v2.0 SP1
- Microsoft ActiveSync 4.5
- Microsoft Virtual PC 2007
- Windows Mobile 6 SDK Professional
- Windows Mobile 6 SDK Professional 6 - CHT Language Pack
- Microsoft Device Emulator v2.0
- Remote Display Control
- (optional) WIndows Mobile Power Toy
列出來的參考書籍有
- WIndows Mobile 平台應用與開發 by 劉彥博、胡硯、馬騏
- SQL Server 2005行動裝置開發指南 ISBN: 9867198638
- Microsoft Mobile Development Handbook ISBN: 0735623589
- Microsoft .net Compact Framework ISBN: 0735617252 (以.net CF v1為底,觀念為主)
- The Definitive Guide to the .net Compact Framework ISBN: 1590590953
- .net Compact Framewrok Programming with C# ISBN : 0321174038
在Google中尋找有關Windows Mobile時,可以加入下列關鍵字
site: msdn2.microsoft.com inurl:library
如果想要看整個.net Compact Framework的概觀,可以
物件瀏覽器 -> 瀏覽 -> 編輯自訂元件集 -> 瀏覽 -> C:\Program Files\ Microsoft.NET\SDk\CompactFramwork\v2.0\WindowsCE\*.dll* 加入
然後
瀏覽 -> 自訂元件集 即可觀看所有compact framework的相關libarary
遠端工具操作介紹
- Remote Zoom: 截取畫面
- Remote Process Viewer: 遠端工具管理員
- Remote Registry Editor: 遠端登錄檔編輯器
- Remote File Viewer: 遠端檔案總管
如果有問題,可以至官方討論區討論: 微軟技術社群討論區 行動與嵌入式裝置開發或者去中國CSDN
C:\Program Files\Microsoft.NET\SDK\CompactFramework\v2.0\WindowsCE\Diagnostics\
底下可以找尋相關的CHT的cab檔裝在裝置上,可以獲得較多的Exception資訊
---
好亂...Orz
written by
yen3
in
12:52 上午
0
comments
tag: game, life, programming
星期一, 5月 19, 2008
重灌
在MacBook上分割Windows磁區失敗,可能整台Mac又要重灌了...Orz
---
很久沒有寫blog,這個竟然是第一篇...Orz
written by
yen3
in
11:43 下午
0
comments
tag: life
星期三, 5月 14, 2008
星期六, 5月 10, 2008
星期五, 5月 09, 2008
遺憾
我有關學Computer Science的遺憾有很多,現在遇到 SmallPig老師,有時候還真的蠻想把一堆有關網路相關呈現技術搞懂的,這也是我所不會的一塊,有空應該是要專心花時間搞懂,所謂的文件,應該不只有排版的pdf,在網路上的呈現也是相當重要的一環,不過我卻在網路這一塊知之甚少,該是花時間的時候到了。
昨天看到Erlang的介紹,應該會抽點時間去了解這是什麼,不過看到另外一篇介紹,想不到竟然是functional programming language,這更讓我覺得有趣了XD
---
雜記文一篇
written by
yen3
in
8:56 上午
0
comments
tag: life, programming
星期四, 5月 08, 2008
可樂
今天中華電信桃園分公司經理(聽說是很大的職位XD),因為報名參加了中華電信加值比賽,來到我們學校送禮卷,有參加就有獎XD,一個人拿到了400塊統一集團禮卷,可以在7-11, Starbucks, mister donut, 康是美, Coldstone(我聽eating介紹才知道XD),等等消費,算是蠻方便的,於是我跟efang說了。
yen3: 我拿到400禮卷耶~可以用在7-11 balabala
efang: 請客~
yen3: 好啊
efang: 我要喝可樂~
yen3: XD
之後又有對話如下
yen3: Clara和eating聯名推薦 ColdStone http://www.coldstone.com.tw
efang: 喔喔喔
yen3: 你會想去嗎
efang: 還好耶,我比較想喝可樂XD
---
這樣子可以喝好多好多可樂XD
written by
yen3
in
12:23 下午
0
comments
tag: life
星期二, 5月 06, 2008
體會
我一直以為我得到別人很正向的reponse是一件很幸福的事,現在漸漸在理解,如果自己給需別人的想法越大,所得到的reponse也是成正比的,也就是說,在正常的狀況下,可以帶動人與人之間的氣氛。
---
不過這個問題需要再思考
written by
yen3
in
12:48 下午
0
comments
睡過頭
睡過頭導致全部的事都超出預料,還沒有午餐可以吃....Orz
---
再過一個小時就可以吃飯了...
written by
yen3
in
12:04 下午
0
comments
tag: life
星期一, 5月 05, 2008
Page Rank
Josh Ko 升成4分,我升成2分,神奇的是,efang 升成1分XDXD
---
PageRank的家族關係嗎XD
written by
yen3
in
1:12 上午
3
comments
星期日, 5月 04, 2008
搞笑
剛剛突然想到,為什麼要有std::find()和std::find_if()的分別,翻了一下書,就知道為什麼了XD
template <class InputIterator, class EqualityCompareable>
InputIterator find(InputIterator first, InputIterator last,
const EqualityComparaable& value);
template <class InputIterator, class Predicate>
InputIterator find_if(InputerIterator first, InputIterator last,
Preicate pred);
在還沒有具現化之前,兩個function都是三個argument,是分不出來的,看來沒有睡醒真的不是一件好事
---
快樂的生活快結束啦XD
written by
yen3
in
11:22 上午
2
comments
tag: life, programming
Heap Sort v2
在Josh Ko的幫忙下,終於寫成可接受的heap.hpp了,現在可以試試了
---
終於要進入正題了嗎...XD
written by
yen3
in
11:13 上午
0
comments
tag: programming
Inclusion Model
事實上是為了回覆問題這一篇,在經過Josh Ko幫忙之後,我在"C++ Templates全覽" "6-1 置入式模型(Inclusion Model)"找到答案,實際上,template code是不支援 separation compile,在p.63有提及
function template的定義並沒有具現化,為了具現化一個template,編譯器必需知道"以那一份定義式"以及"以那哪些template arguments"對它具現化。不幸的是這個例子中,這兩項資訊被分置於兩個分開編譯的檔案...
而接著又在下面提到
解決這個問題最常見方法是,把template定義式放到其宣告式所在的表頭檔,可以在xxx.hpp最後一行加入#include "xxx.cpp";,也可以用到該template的每一個.c檔案中#include "xxx.cpp", 第三種作法是完全丟開xxx.cpp,把宣告和定義全部放進xxx.hpp ... 這種template的組織法稱為"置入式模型(inclusion model)"
在文中有說明,如果使用了,事實上也會連結hpp中其他的碼,讓程式碼非常的大,也會讓編譯時間變慢,但是不得不否認,這是一個最不會帶來問題的方法,書有說明,我引用的非常多啦,在此就不描述了
---
在Josh Ko幫忙之下,讓自己渡過一個愉快的週末XD。
Macintosh-2:huffmanTree yen3$ g++ -o test.out test.cpp heap.hpp
ld: warning in heap.hpp, file is not of required architecture雖然compile過了,但是還是對這行waring非常感冒,還是想想怎麼解決好了
在回覆中有提到,其實g++ -o test.out test.cpp就可以解決了。
written by
yen3
in
2:02 上午
2
comments
tag: programming
點名
A.被點到名的在自己的部落格裡寫下自己的答案,然後去掉一個你最不喜歡的問題再補上一個你的問題,仍然組成20個問題,傳給其他8個人,列出其他8個需要回答問題的人的名字,還要到這8個人部落格里留言通知對方~~~你被點名了,被點名者不得拒絕回答問題,完成遊戲的人將會永遠得到大家的祝福.
B.這8個人要在自己的部落格裡註明是從哪裡接到的,並且在傳給其他8個人,讓遊戲繼續下去"不得回傳".被點名字的人將會得到大家的祝福,並且所有美好的願望都會在不久的將來實現
我是被efang點名的,點到就寫吧,雖然我有很多朋友寫blog,但是沒啥人點到我XD
************************************************
1.如果喜歡的人把你撲倒,你的反應是?
答: 應該不可能發生(笑)
2.下輩子的你(妳)想當什麼?
答: 狼
3.你最想去哪個地方?為什麼?
答: Google 總部,那邊一定存在很多高手,可以學到很多東西
4.最受不了自己哪個缺點?
答: 過於自信
5.如果有不開心的事情,你會怎麼辦?
答: 找efang、寫程式、睡覺
6.最害怕失去的東西?
答: efang
7.喜歡當女人還是男人?
答: 男人
8.最令你難忘的人,事,物
答:efang, programming, thinking
9.如果你有一億元,你會拿來怎麼用?
答:七成交給父母,三成交給efang
10.對一場無即而終得戀情你會複合嗎?
答: 不會,不追求逝去的想法。
11.如果被喜歡的人拒絕,怎麼辦?
答: 不追求,雖然令人傷心,但是就隨風而去
12.誰曾經做過令你感動的事,什麼事?
答:太多了,每個人都做過很多讓我很感動的事
13.目前你的心裡有沒有喜歡的人?
答: efang
14.你愛錢嗎?
答: 夠生活就好,其他的錢可以拿來買書。
15..現在最想要做的事?
答: 休息
16.你最希望達成的願望?
答: 與efang平靜的渡過一生,每天快樂的寫程式
17.跟情人的發展程度
答: excellent
18.對現在的生活滿意嗎? 為什麼?
答: 還不錯,如果我可以再睡多一點的話XD。
19. 現在最想要的東西?
答: 朋友回來一起做事
20.說出傳給你的人的優點和缺點各一
答: 優點:可以依靠 缺點:依靠成習慣
我的題目:
No thinking
點點點
Josh Ko(雖然知道不會寫,還是期待一下 XD)
這會讓我想到小世界原理,我就不點了。
---
我習慣把事情快速解決
written by
yen3
in
1:49 上午
0
comments
tag: life
星期六, 5月 03, 2008
問題
遇到了一個我覺得不會發生問題的問題。
Macintosh-2:huffmanTree yen3$ g++ -o test heap.o test2.o
Undefined symbols:
"void heap_sort<__gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > > >(__gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > >, __gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > >)", referenced from:
_main in test2.o
ld: symbol(s) not found
collect2: ld returned 1 exit status---
克服中...Orz
written by
yen3
in
10:20 下午
4
comments
tag: life, programming
休息
最近的我很閒嗎? 老實說也不會。
今早起來為了演算法作業裡面有提到的huffman tree實作,考慮使用heap-tree來實作,但是訪視自己所實作的heap-tree,實在是不盡人意,於是今天又重新利用Random Access Iterator的概念來實作,實作出來只能算差強人意,暫時把程式碼釋出,看看最近有沒有空,再把compare獨立成一個function object,讓程式碼的復用性更高。這也是一個蠻有趣的娛樂。
---
當然我還記得Huffman Code這回事XD。
written by
yen3
in
2:41 下午
2
comments
tag: DA and Algorithm, life, programming
星期五, 5月 02, 2008
合作
有很多事說穿了其實是一樣的東西。
我不否認我非常喜愛閱讀Design Patterns 和 Refactoring 之類的相關書籍,因為裡面提到的方法非常之吸引人,OO方法論是我非常早就接觸到的一件事物。不過在實際開發上,我鮮少用到這些東西,應該是說,有用到也只是皮毛而己。為什麼呢,說穿了很簡單,不要為了Patterns而Patterns,Refactoring也是。
我與人進行軟體開發時,也非常少用到這些我所喜愛的事物,我所認為的patterns,應該是程式寫到一半,腦袋上面突然有一個燈泡亮起來說,啊,這個地方可以這樣用,而不是,解決這個問題的方法,我們就用這個patterns吧,事實上書上提及的只是一個想法,鮮可以原封不動而直接套用的,這種機率非常低。而且更重要的是,我現在所寫的程式強度倒也沒有會用到,當然可以當作練習,不過強迫別人做這件事是非常奇怪的事。
我不否認我喜歡XeLaTeX這個排版語言,我也會四處與人推廣,但是一旦我與人合作寫文件時,我還是使用Word, Powerpoint來做為首選,XeLaTeX自己玩玩可以,但是沒有必要強迫別人跟自己一樣,當自己有興趣時,可以玩玩,甚至做大膽的嘗試都可以,但是與人合作時,應該以團隊都能達成的強度做為考量。就算整個團隊都會這些高度工程藝術了,也是得小心翼翼的使用,不太了解為什麼有些人可以成天開口閉口就OO,patterns。
但是有一件事還是很重要,就是可以推廣這些思考的存在,而不要讓自己思考時落入規格中,這些方法真的很漂亮,看看說不定會給自己另外的世界,但是如果真的硬要實作這些方法,我只能說。
招式是死的,人是活的
硬要用這些招式,恐怕只會逼死自己,一般狀況下大家都懂的已所不欲勿施於人,但是遇到這種狀況時,就忘了這件事,也是一個有趣的現象。
---
難得寫這個議題XD
written by
yen3
in
1:25 上午
2
comments
tag: life, programming
星期三, 4月 30, 2008
生活
每天都把自己逼到很累...其實也不知道為什麼,工作是一種生活,而我就是實踐這種方式的人。其實也會有一點小失落,因為專題緣故,並不是我每天做的事都能對外釋出,所以我只能努力的做,然後期待專題結束,比照上次,把所寫的及所做過的東西釋放出來。
當然也有點對不起gb014388和snakexu,兩個人的生日我都沒空寫祝賀文了,在此還是得跟她們說生日快樂,有時候真的覺得自己這個身為朋友的不夠稱職,請大家多多擔待了。
其實寫作的另外一個好處是可以回顧自己的寫作軌跡,所以我也很喜歡看自己的blog,還好StatCounter不會計算我所造訪的次數,不然應該是大爆炸才是。我想我的人生如同我以前所說的,一切即劍,萬里一空。
不把自己的標準加諸於別人的身上,因為這就是我的生活。
---
但是感謝朋友加諸於我面對生活的動力。
written by
yen3
in
8:30 上午
0
comments
tag: life
早起
在經過很長一段時間睡眠不正常後,昨天正式回到十二點睡,已經很久沒有那麼早起過了
今早Mac OS更新時,看到一份期待已久的更新啊
---
我比較喜歡這種生活。
written by
yen3
in
7:24 上午
0
comments
tag: life
星期六, 4月 26, 2008
生活
聽從Clara的建議,讓自己放慢生活的腳步(其實我自己覺得我過的不快),有很多問題可以討論,我想等到過幾天再說吧。
今天藉由閱讀來放慢自己的生活腳步,於是我選擇"重構-改善既有的程式設計(Refactoring - Improving The Design of Existing Code)",在p.61 "間接層和重構(Indirection and Refactoring)" 文中提到
計算機科學是這樣一門科學:它相信所有問題都能藉由多一個間接層(indirection)來解決。 - Dennis DeBruler
看到時雖然驚訝,但是不失望,因為我在很早之前就對ycma提出了這樣子的想法,不過總覺得有很多需要思考的地方,但是這篇文補足不齊之,大都是物件導向軟體工程看法,ycma曾跟我提過,在硬體上多一層就會多很多麻煩,不過看這種書,就多多思考吧。
---
事實上,我不太知道如何休息,就讓閱讀取代休息吧。
written by
yen3
in
2:21 上午
0
comments
tag: life, programming
星期五, 4月 25, 2008
最近
先對祥龍說聲抱歉,我晚一點才會寫生日文,真的是太忙了...
真正想要下筆的時候卻不知道要寫什麼,有時候唯一能做的事,就是讓自己埋頭於螢幕前努力工作,直至累趴,習慣了,很多事其實都一樣的。
---
C'est la vie
written by
yen3
in
7:54 下午
0
comments
星期二, 4月 22, 2008
有關學習的兩三事
由於不怎麼念的下書,最近做的事又乏善可陳,只好寫點這樣子的文章來欺騙社會大眾XD
這兩天把Peopleware看完一次,頗有心驚的感覺,原來以前做對了很多事,但是也做錯不少,寫成文章有一個好處,讓你能夠不會再犯錯,也由於蠻感動這本書所寫的,想要買一本英文版回家K,但是天瓏說缺貨中,無妨,再等等看吧。
最近由於寫程式的關係,常常需要看相關資料,這部分的心得,我引用Jserv's blog: 對自己好一些:談技術手冊閱讀來作結,他寫的很好,我實在是不需要重寫一篇。沒有人可以否認,從Google上得到的資料相當的片段(不過能找到整個上課投影片也是一個不錯的選擇),如果自己手上沒有一本技術手冊,無法從該技術做一個全覽是一件相當可惜的事,除非只是即興寫作,抑或是應付了事,不然我覺得,擁有該領域的一本良好技術手冊,是相當必要的。
但是在學習時發現,現代人的心態,有時候習慣於補習班的教育,有人教最好,沒人教就跟老師橋,過度習慣別人給你資訊,如果能力不足,尚可原諒,如果志不在此,也可理解,但是天生就是要走一行飯的,實在是得把"看技術手冊"和"Googling"兩件事並列首位,而不是不會就問人,拖到會為止,這樣子顯得相當奇怪。我問人頂多問到keyword或者是該領域的技術手冊,剩下的自己來。通常這樣子的學習,幾個round下來,對於學習能力大有幫助,久而久之也習慣了這樣子做,方能讓自己成為獨立學習的人。有人問過我,為什麼人會產生如此的局面,我只能說,當人越來越懶的時候,是沒有理由的。
---
嚴肅快筆書寫
written by
yen3
in
4:01 下午
0
comments
星期一, 4月 21, 2008
學弟,有種
身為一個不成材的學長,我想對學弟說
雖然沒有做,你他媽的你真的很有種,以後我要叫你有guts的男人
---
CF
written by
yen3
in
7:43 下午
0
comments
tag: life
美麗
在接觸過那麼多programming language之後,到現在我還是感嘆於C/C++的美麗,精簡的語法建構一個又一個美麗主題,太漂亮了。
---
真想用C++開發出一個美麗的東西,會有機會的XD。
written by
yen3
in
1:12 上午
0
comments
tag: life, programming
星期六, 4月 19, 2008
星期五, 4月 18, 2008
utmpx
在大部分的linux下,是可以從"/var/run/utmp" 這個路徑得知現在使用這台伺服器的使用者資訊,資訊是開放任何人可讀,不過在Mac OS 10.5以後不支援這個檔案,而改採用NetBSD的utmpx,故資訊可從"/var/run/utmpx"這個檔案讀到。寫了一小段測試碼如下
#include <stdio.h>
#include <utmpx.h>
int main(){
struct utmpx utmpx_entry;
FILE* fp = fopen("/var/run/utmpx", "r");
while(fread(&utmpx_entry, sizeof(struct utmpx), 1, fp)>0){
printf("%s\t%s\t%s\n", utmpx_entry.ut_user, utmpx_entry.ut_id, utmpx_entry.ut_line);
}
return 0;
}
事實上我覺得使用起來沒什麼差別,不過細細比較utmp.h和utmpx.h之後,會發現struct utmpx記載了更多資訊,可能更符合現在的作業系統設計,畢竟現在的作業系統不是只有單純的command line了,而一個xwindow也是一個terminal,所以我覺得新增這些資訊還算蠻合理的。
---
事實上這篇重要性不大XD
written by
yen3
in
4:39 下午
0
comments
tag: freebsd, life, linux, programming
期中考
一覺醒來與Clara說話,被提醒時發現,期中考近了...
---
做專題做到忘記期中考...Orz
written by
yen3
in
10:25 上午
2
comments
tag: life
星期四, 4月 17, 2008
測試
今天中午醒來,思考,如果unix system call都是C 寫成的,是否有辦法用class包起來呢,於是寫了一個小小的class測試一下。
class FileAttribute{
public:
FileAttribute(const char* dir, const char* file){
name = string(file);
path = string(dir) + "/" + name;
stat(path.c_str(), &buf);
};
FileAttribute(string& dir, string& file){
name = file;
path = dir + "/" + file;
stat(path.c_str(), &buf);
};
const char* ab_file_path(){ return path.c_str(); };
const char* file_name(){ return name.c_str(); };
bool is_file(){ return !S_ISDIR(buf.st_mode); };
bool is_dir(){ return !is_file(); };
unsigned int size(){ return buf.st_size; };
private:
string path;
string name;
struct stat buf;
};
看起來成效不錯,其實效率很差,多一層包裝,就要浪費掉很多時間在此包裝上,不過如果在發展大型程式時,還是有其包裝的必要。
---
我真無聊,不過我喜歡XD
written by
yen3
in
12:22 下午
0
comments
tag: freebsd, life, programming
星期三, 4月 16, 2008
星期二, 4月 15, 2008
簡單、複雜、思考與證明
這段文字很早很早之前就想寫了,不過總是沒有一個好的著力點,不過我得先聲明,我數學和英文都不好XD。
我朋友問過我一個問題,為什麼總是有人要把一個很簡單的問題變的很複雜。此外也有等價的問題,有人跟我說過,要證明1+1=2是數學家無聊做的出來的事。
先回答第二個問題,因為比較簡單,在普遍狀況下,1+1=2是成立的,問題,我們如何證明+這個元素存在,又如何證明兩者等價,這在高等微積分好像有解答(我不會也沒修過,不要問我XD)。而且證明1+1=2的人是Bertrand Russell和另外一個人,花了320頁證明,他是用邏輯證明的,千萬不要小看這個證明,這個證明讓數學與哲學有了連結。他是一個哲學家。數學家和哲學家並不無聊,為了讓整個理性的社會存在,他們可是花了不少的功夫。
那麼為什麼總是要把一個簡單的問題變成很複雜。好問題,這對我學英文時也造成不少的困擾,雖然我英文從來沒有好過。我在用英文的時候想過一個問題。為什麼不能用簡單的字,而是要學很多很複雜的字。(這或許造成我某程度懶惰不背單字的原因XD),在這些等價描述下,唯一要做的解釋就是...
嚴謹是一件非常重要的事。
人類之所以發明文字,發明思考方式,一切只是為了知識累積,讓後人可以站在先人的智慧上,做出更多的開展。人類的學習就像一個超高速齒輪一樣,剛開始會很慢很慢,到最後會越轉越快。於是,怎麼把知識做一個正確且快速的傳遞,變成一個很重要的事。於是乎,寫作要求嚴謹是一件很重要的事,那麼怎麼讓嚴謹做一個最好的呈現?
發明符號和語言變成相當重要,數學對於大部分的人可能落於算術這個部分,但是數學最迷人之處就是,如果你能夠用數學語言看到這個世界,很多事是垂手可得的,你用邏輯語言看懂了另外一個世界,就會發現,原來還有很多很多思考的方式。
不過最不幸的是,符號和語言是先人制定的,這兩件事往往成為門外漢(如我XD)學習最大的門檻,那麼為什麼要用最嚴謹的符號和語言來定義呢? 因為在知識的累積和展現上,不太能容許出錯或定義不明之處,這會讓承先啟後的人們顯的相當無助(發明人都做古時,去那問啊XD),然而這在一般的狀況下卻不是很大的問題,因為肯在某個領域學習的人,往往可以很快的適應。如果學的會這些東西,可以為自己打開一扇窗,快速的學習與探索自己想要學習的東西,可謂是相當的快樂。
而我呢,大概只會程式語言吧,只是剛好有所機會看到一些東西,算是蠻幸運的XD
---
因為幸運所以偷懶嗎XD
星期日, 4月 13, 2008
星期六, 4月 12, 2008
星期三, 4月 09, 2008
便利
前幾天Mac OS X被我搞的並不是那麼穩定,所以今日重灌,還蠻便利的,選擇清除重新安裝後,再用TimeMachine復原資料,但是留下一個乾淨的系統,有些command line底下的東西要重灌,不過正符合我意,因為我前陣子一直在測試,重灌過程相當愉快。
---
在這方面Apple做的真的是蠻不錯的。
written by
yen3
in
6:27 下午
0
comments
星期一, 4月 07, 2008
有感
這陣子作業著實不少,不過都是小作業居多就是了,昨天使用Visual Studio .net 2008 Team Suite 的測試程式是否正確否,簡單而言,就是存在一個function,給予一個input和 excepted output,而軟體會自行幫你比較程式輸出結果是否正確(不過只有C#有...Orz),這對大型專案應該是一個蠻有用的工具。所以我寫了一個簡單的測試碼
public static int[] BubbleSort(int[] u){
/* ... */
return u;
}之後VS所產生的測試碼片段如下
public void BubbleSortTest()
{
int[] u = { 3, 5, 2, 4, 1 }; // TODO: 初始化為適當值,此行為自行輸入
int[] expected = {1, 2, 3, 4, 5}; // TODO: 初始化為適當值,此行為自行輸入
int[] actual;
actual = Program.CountingSort(u);
Assert.AreEqual(expected, actual);
//Assert.Inconclusive("驗證這個測試方法的正確性。");
}很可惜的,這個測試結果會告訴你,永遠是錯的,expected 永遠不會等於actual,我起初還蠻天真的認為說應該會等於,其實不會,因為AreEqual對於此型別的比較等於C++中的int* == int*,只要兩個存在指向不同記憶體之處,其值就不可能相等,而我移到AreEqual的程式碼定義處一看,哇,什麼都有,似乎沒有針對這個狀況所解決的方案。其實這算是一個小問題,而C#也支援Generic,稍微改寫一下即可支援,但是這樣子的問題出現在一個這樣子的軟體上,似乎不太對勁,當然,也可以跟我說我的使用方法不當,或許我真的不太會用這套軟體吧。
C#是MS發展算蠻成功的語言,雖然抄襲自Java,隨後又用了一堆C++的概念,導致我遇到錯誤時,兩個語言的思維都套上來試試看,大部分的問題都會有解,但是很難免的都遇到現存高階語言存在的一個問題,發展的過於龐大而難以維護(我得說C++算漂亮的,以發展library來降低整體複雜度),現在的C#,沒有VS.net就很難開發,而這個語言沒有一個統一的思維,也是一個很有趣的問題。
算了,如果用以前MS的東西恐怕會更糟。
---
發個牢騷XD
written by
yen3
in
8:45 上午
0
comments
tag: life, programming, software






