繼續
繼續,需要很大的勇氣,不過我相信我可以。
---
生活啊。
Let's see how far we can go.
這一學期買的書不少,做個記錄
工具或者是學習
其他書
Perfume 部分
電子書閱讀部分
理論上應該有所遺漏,不過我也懶的想了
---
好多錢 ... Orz
written by
yen3
in
12:16 上午
0
comments
不知道什麼時候 Page Rank 變成 3 分了 (2分好多年了 ...) 在不事生產下的狀況還能升還真是 ....
---
記錄
written by
yen3
in
10:09 下午
6
comments
已經想不起來上次寫作是什麼時候了。
嵐達網的文章也很久沒動了,我知道,太難的寫不出來,簡單的,寫了似乎又沒意義,就一直卡著而讓時間流逝。
學弟妹的事告一段落了(雖然應該說都是學妹的事)。
從 Trimaran 改成 LLVM ,很多事是解決了,但是也有更多問題產生,只能說,自己硬著頭皮上了。
從垃圾變成廢物,感覺似乎不錯的樣子。
還有二十天就要期末報告,現在似乎什麼都沒有。
我不是一個好人,只能說是一個爛人。
語畢,其實,回歸平凡。
不坐以待弊
公佈自己所有的爛行為
written by
yen3
in
1:50 上午
0
comments
tag: life
從 wiki 上移過來,大概會改變寫長文的寫作風格,拆成許多個小篇的來寫。
keyword site:http://www.haskell.org/pipermail/haskell-cafe/
---
持續寫作
written by
yen3
in
11:41 上午
0
comments
tag: Functional Programming, haskell, programming, programming language
其實 Kindle DX 本身並不支援中文格式,所以如果在不變更任何程式的狀況下,有 pdf 可以選擇,如果想選擇破解的話,可以安裝 Unicode 字型,不過英文字體連帶閱讀起來感覺不好。我以下說說我的做法
目前中文小說網站有兩個比較有名
後者網站我還沒有試過,不過好讀網站的 pdb file 在 Mac OSX 上讓我很頭痛,仔細看看大家都有這個困擾。我簡述步驟如下。./a.out xxx.pdb > xxx.txticonv -f big5-2003 -t utf8 input.txt > output.txt即可,就可以把 Big5 的檔案轉成 utf8,如果是使用第一個程式製作出來的文字檔在轉換時會出錯,是不用理會的,因為那是第一隻程式所產生的一些資訊。輸出後在 Kindle DX 上成果大概如下 (對不起,我不會取景...Orz)
預設輸出是黑體,有想過要用 LaTeX 排版,不過這可能要花很多功夫,所以暫時交給 calibre 來做這些事,而我覺得這樣子的輸出結果我可以接受啦。至少字夠大,閱讀起來不太吃力。
---
簡單記錄一下。
written by
yen3
in
9:51 上午
0
comments
這篇是寫在嵐達網上,在自己的 blog 上做個備份。本文不開放回覆,統一至這篇回覆(寫這麼差...Orz)
Compiler
Research: The Next 50 Years
Communication of the ACM - Febuary 2009
這篇是一篇很有趣的文章,在 CACM 上的文章都是接近科普類型,這篇也不例外,所以我花了幾天看懂這篇文章,又著實想了好幾天。
其實在這個領域中,要預測下一個十年比預測下一個五十年容易的多,那麼他覺得下一個 50 年的問題是什麼 ? 簡單的來說就是。 Program
Optimization (Mulit-core, Architecture-Specific ... etc) 與 Security
& Robust
就 parallel program 來說,multi-core 是一個趨勢(因為 Moore's Law 逼得大家努力的製作
multi-core CPU XD),在過去的三十年來,Compiler 對於 parallel 並沒有一個泛用的方案(General
Solution),不管怎麼操作,lock, race condition
都是避免不了的問題,很多人嘗試要提出方案來解決,不過到目前為止沒有成功。
就 Security 來說,現在的 Compiler
勢必得去面對如何讓一個更複雜更為大型的程式保持正確(Corectess)且穩固(Robustic),要用到很多手段報分析,讓一個程式在各個方面都
保持穩定。
回到 parallel 與 Compiler 的關係來說,用一個小故事來開個頭。有一天,我的指導老師問我,在 Embedded
System 上,大部分的 CPU 是沒有 Floating Point Unit ,可是勢必得要去處理很多相關的運算,請問是怎麼解決的 ?
我想了很久想不出來,他說,其實解決不了(我被框了 ... Orz),但是如果切割成許多個領域來解決是可以的,以 FFT
來說,在硬體上,只需要數個加法器與乘法器就可以搞定,以某個影像編碼來說,雖然每次都會用到 sin,
cos,但是實際上來說,會轉的角度只有九個,所以查表即可解決。
回到正題,parallel programming 對於 Compiler
來說,如果切割成許多個領域來分別進行最佳化,其實到目前為止算是有相當的成果的, MIT 的 StreamIt Programming
Langauge & Raw Processor (for streaming),Google 的 Map Reduce (從
Functional Programming 來的
XD),切割開來的時候,每個領域的平行其實都可以用巧妙的方式來解決,但是組在一起卻沒這麼容易。所以這篇文章有嘗試建議一些方法,例如說,撰寫高效能
的平行演算法並加以封裝,而寫程式的人就使用這些封裝的好的演算法來組合(BLAST
?),這大概是目前可以做到的,或者是你可以想出一個全新的方法來解決現在的問題。綜合以上,這篇文章寫了很有趣的話,誰可以在平行上做出突破就可以引領
下一個研究年代。
而針對不同的平台來說,現在寫程式並比較不會這麼局限在單一架構上,你有可能寫程式寫在手機上,一張開發版上,自己的 CPU
上,針對不同的平台要做最佳化,其實是有一定的困難度的,而這也是 Compiler 下一個很重要的事。如果以 Embedded System
來說,多個晶片要協同運作是一個很常見的事,而這件事都需要很多方面來配合 (OS, Programming Langauge, Compiler
...etc)。這也是一個值得著力的點。
要寫出一個安全且穩固的程式是一件相當困難的事,可以就程式語言層面設計出一個更為安全的程式語言,教育程式員怎麼寫,或者是利用
Compiler 去做一些事,program analysis 就 wiki
來說有 Program Optimization 與 Program Correctness
,前者我不清楚,不過現在已經有很多現成工具可以用了,硬體設計上,用以分析出一個電路的 critical
path,軟體設計上用以分析耗掉多少記憶體,那邊佔用的時間最多之類的。但是 Program Corectness
來說,我覺得是很重要,但是並不是我所了解的領域(這讓我想到這次 FLOLAC 10 的
Frama-C),要如何保證程式在每個層面皆能正確運作,我相信有許多的議題需要討論。Compiler 在過去這麼多年來越來越重要有一個原因是因為
high-level programming language 受到了廣泛的使用,然而分析這些語言會不會產生更多的問題呢 ?
(這個問題是個人猜測)
最後這篇文章提到一些有趣的建議,不外乎是針對 Compiler 設計一連串的專門課程啦,建立一個 Compiler
協會之類的,老實說,我覺得每個領域都會想這樣子建議吧 XD。所以我這個部分就沒有很認真的看了 XD。
題外話: 我的指導老師跟我說,這篇文章提到許多論點是許多傳統做 Compiler
的人不願意接受的,我看起來是覺得很不錯啊,至少我覺得蠻有趣的,他舉了一個例子,你要一個練了許多年武功的人不用這個武功來解決問題是很困難的。老實說
我也不知道是什麼,或許聽了 CHTPC
會有一些感覺吧 ... ?
---
為什麼我覺得我怎麼寫都像寫廢話一樣 ... Orz
written by
yen3
in
2:35 上午
tag: learning, life, programming, programming language, reading
2010 Formosan Summer School on Logic, Language, and Computation (FLOLAC '10) (課程名稱在左邊,有時候我都會找不到 XD)
基本上,雖然這是一個每年都會告急的活動,大概是標題看起來不吸引人吧 XD 不過誠如嵐達網上所說的
嵐達網是一個為程式語言同好設置的中文社群網站。程式語言學原本即是計算科學之中有悠久傳統的重要類別。近年來,面對諸如並行處理等日益複雜的程式設計挑戰,不論學界或業界都再度對程式語言學感到興趣。
而 FLOLAC 10 就是一個這樣子的積極的嘗試。
我大一學微積分與普物的時候,我時常問我自己一個問題,到底學這些有什麼用呢 ? 其實莊子說了,以無用為大用,並不是學習的每件事物有效用能去學,我們必需去注視,他所能對我們產生質的影響。課程內容真的值得一聽(雖然我在三年前曾經去聽過,聽不太懂 XDXD),對我而言,參加這個課程是可以重新省思日常生活所用的一切。這三個東西對於現在的我而言,每一天都在使用,但是我卻每一天都不了解,我是基於這樣子的理由在參加的。
課程會不會很可怕,應該會吧,不過就參加吧,如果可以用報名費換到一個新的視野,老實說我覺得是非常值得的。我還記得我第一次參加的時候,沒有一個課程名稱是看的懂的 XDXD 現在好一點,只有一個看的懂 XDXDXD 有時候,不太在乎看不看的懂,反正最後去了,了解了就好,不了解了,也嘗試從中抓到一點東西。這個過程對我而言是相當有趣的。
為什麼不說課程在教什麼,第一,我不會,第二,看到這邊的人應該會自己看吧 (我是非常這樣子自以為的 XD),所以有興趣的人不妨試試 :)
---
失敗的廣告文 XD。
written by
yen3
in
10:35 上午
2
comments
Eight Million ways to die.
紐約是一個有八百萬人的城市,如果有八百萬個故事,理所當然會有他媽的八百萬種死法。
我並不打算描述故事本身的內容有什麼,只是想提出一些有趣的事。一個小說的故事如果接近真實,會比較少人看的,因為冷硬無趣,我在 Perfume 的文章就說過,其實大部分的人生活是很平靜的,沒有什麼特殊之處,我們是不可能硬為自己製造出特殊的故事,大部分的人生活就是如此。而這本小說就是這樣子的小說,真實人生其實充滿了缺陷,然而我們在自己認為的錯誤中不斷的前進。
另外一種常見的小說寫法是,主角相當的不錯,不然就是你不太可能變成那種人,個性上雖然說不上完美,但是也算是非常不錯的,而這種小說的故事通常會比較精采,但是我看完這種小說通常忘了裡面在說什麼 XD。因為我的感官已經麻木了。有的人看小說為的是體驗另外一種生活,我看小說則是希望透過另外一個方式更為接近現實。
一百個華麗故事描述對於一個平靜冷酷的現實述寫。我想,我看到的就是這樣子的一個故事。
還是來寫一些有關推理小說的事好了。其實這本書不算是本格推理(就是你認為該有的元素都要有,有福爾摩斯就要有華生,犯人一定列舉過的,不能有不合理之處,線索不能突然跳出來之類的),推理小說其實後來出了相當多的說法,不過我一點都不在乎,我只在乎,一個小說的故事是不能描述一個符合現實的社會。日本非本格推理的小說我覺得我看過最有印象的大概是 宮部美幸 的 "模仿犯",這兩種完全走向不同的方向,當然,我覺得模仿犯的故事性還是強烈了些。以八百萬種死法來看,我覺得,如果一本書可以用平淡的描述完四百頁,而肯閱讀的狀況下,是相當能夠說服人的。我的文字不行,充滿了組織般的華麗(簡單的來說,就是空洞)
---
結果變成亂寫 XD。
written by
yen3
in
12:24 下午
0
comments
老實說,我一點都不覺得我會寫作,也一點都不覺得我善用文字編織華麗,寫來寫去都是這些東西,這大概是這近一年來發文次數變少的原因,寫個學習心得是 ok 的,寫其他的東西似乎就是如此了。也某個程度證明,我的心境毫無長進,甚至後退了。
簡單的來說,認清現實並且前進,認份和突破是不同的事,先認份的把事情做好,再尋求有所突破,我不知道是不是有所遺漏,不過當下的我只能這樣子做了。
---
認份與突破
written by
yen3
in
1:02 上午
0
comments
tag: life
Goal: 大部分的 Hard-real time system define deadline by worest-case exeuction time (WCET) 而現在大部分的 Computer Architecutre 是針對 averange-case 在做改善,所以 deadline time 可能不會改變,甚至變的更糟,於是作者嘗試在 hard-real time 提出一個新的架構讓 WCET 不會這麼糟,採用了 pipeline multi-thread interleaved ,也改進了對於 memory 存取的方式
---
其實看完目的,這篇大概就知道要幹麻了。
written by
yen3
in
8:04 下午
0
comments
希望自己的生活可以過的正常一點。
其實有些事也不知道怎麼說,好不容易決定自己要走 Compiler 相關研究了,如果細分的話,我會把 Compiler 分成 From-end, IR optimization, Back-end,但是其實對 Programming Language 的研究真的了解嗎,其實我一無所知 (Josh Ko 說是帶我參觀,不過我懷疑我自己是不是太混了 ...),決定還是該好好的專心研究吧,針對 VLIW Compiler ,邊做邊想 Functional Programming 是否能用 (對,我就是那個有了槌子就什麼都想敲的人 XD),只是邊做邊想會不會很對不起 scm 呢 ? 唉,真是三心二意的娘們啊 ...
IR optimization 本身會拆成數個 phase ,每一個 phase Input/ Ouput 是一樣的,只是重新做一些更動,以 basic block 來分,分為 local shceduing & global scheduling ,而 Instruction Scheduling & Register Allocaiton 是互相問題,通常做完一次之後,要再 rescheduling 一次(其實幾次都可以,只是看有沒有必要性),而在這個領域上可以用的工具大概就是 Graph Theory 與 組合最佳化。其實從這個過程中,認清了自己什麼都不會,沒有辦法深入去解決一個問題是我最大的問題。
Trimaran 的 Elcor 是一個針對 VLIW 的 Compiler ,Target Architecture 是 HPL-PD ,為了學會怎麼改它,竟然因此學會基本的 gdb 與 gdb script (Python Binding 研究中),不過到現在還是不會改,只能說 C 與 C++ 混合的 code ,再加一堆 global variable,實在是難以定義,不過大概有個頭緒了。
Precision-Timed Machine ,不如說是一個 Computer Architecture ,聚集各方大全(就是很多 paper 啦),嘗試在 hard real-time embedded system 做,consider time as a function to predict and repeat. 使用的技巧是 deadline instruction ,但是我抓不到這篇 paper 想要解決什麼問題或目的,因為感覺上我目前所看到的點,利用現有系統就可以解決了,那麼為什麼要造這一個新的 Architecture ,答案仍在尋找中。
嵐達網的文章真的是應該要好好寫,logan 真的寫的很好,我真的覺得是我不夠用心,但是最近竟然覺得自己的英文閱讀能力下降了 (明明讀的比以前多很多啊,怎麼會下降),不要為自己找理由。
---
記錄自己最近。
written by
yen3
in
1:23 上午
0
comments
tag: life
define bsave shell rm -f brestore.txt set logging file brestore.txt set logging on info break set logging off # reformat on-the-fly to a valid gdb command file shell perl -n -e 'print "break $1\n" if /^\d+.+?(\S+)$/g' brestore.txt > bps.gdb end
其實這是從網路上來的,不過這個 code 在 cgdb, gdbtui 上似乎不可行,看懂 code 之後(大概只有 Perl 那行比較難懂 XD),其實發現蠻暴力的,gdb 在 v7 之後支援 Python Scirpt binding ,是該來研究研究,今天也是試著用很破爛的方法達成 gdb 自動環境設定的方法就是了。大概這幾天持續嘗試之後再說。
---
最近常備份 XD。
written by
yen3
in
11:55 下午
0
comments
tag: programming, software
單純備個份,參考自網路上的,自己單純加了兩行,除非有必要,不然我應該是不會用 gdb 原生 XD (可能連 qemu 例外之類的 XD)。
以下放在 ~/.cgdb/cgdbrc
set arrowstyle=highlight set autosourcereload set tabstop=4 set winsplit=top_big set showtgdbcommands map <F2> :set<SPACE>winsplit=top_big<CR> map <F3> :set<SPACE>winsplit=bottom_big<CR> hi Statement cterm=bold ctermfg=6 hi PreProc cterm=bold ctermfg=4 hi IncSearch ctermfg=2 hi LineHighlight cterm=bold ctermfg=3 ctermbg=4
這樣子按 F2 或 F3 時即可選擇要放大上面視窗,還是放大下面視窗
---
written by
yen3
in
11:51 上午
0
comments
tag: programming
Try to explain something, but It's fail.
---
question or problem.
written by
yen3
in
9:42 下午
0
comments
tag: life
本篇同時在 love the Perfume World 與 No title, no thinking, no meaning 發表。
這個主題想寫很久了,但是寫出來只有一點點 XD
有一天,我和 allxxxxxts 在閒聊,他說有些 Perfume 在 A-Chan 唱歌的時候會一直喊 A~Chan,守住所謂的舊時代的榮光。但是 A~Chan 並不喜歡這樣子,我還蠻好奇的問了為什麼 XD?
因為這樣子 A~Chan 唱歌會不專心 XD
這答案真是出乎意外的簡單 XD,但是其實我對偶像開始思考是有一次我在李玟簽唱會說我的歌迷們,而張懸說聽眾開始想的。到底人們是怎麼看待偶像這回事的 ? 其實答案出乎意外的簡單,大概就跟我們這些寫 blog 的人一樣,寫自己想寫的,我們都很明白的知道寫 blog 的人不可能透露自己全部的事,但是確實也沒有必要將自己完全包裝 (這讓我想到某個日本團體 XXXXX XD),雖然忘了那個哲學家的思維是,沒有全部說出來就是謊謊,然後其實在事實上,我們對於大部分的人是可以接受的。
每個人在他的位置上就做好該位置的事,Perfume 大概就是我覺得很好的例子,可能 Perfume 是現在日本的一線偶像,她們是保持了部分真實在這個世界就可以了,其實我並不是很在乎她們跟我們的距離要多平民 XD 素人偶像其實就很平民,因為本來就從平民出身的 XD。
與其說是追星偶像,倒不如說,我們試著相信這樣子的人。
---
下次來討論 A~Chan, Nocchi, Yuka 三派的現象 XD
written by
yen3
in
11:41 上午
0
comments
tag: Perfume
Slide: Programming Tempratory Integrated Distributed
Embedded System
僅紀念我這一兩個月不事生產的日子。
在 ycma 的指導下,我終於破破爛爛的讀完這篇 paper 了(還是是想完 XD?) 簡單的來說,就是學習如何建立 programming model ,學習怎麼樣思考問題,建立模型及描述進而解決問題。以後會做相關 paper 的問題嗎? 我想不會,我單純相信,這篇只是單純訓練而己。在這念這篇 paper 的過程中也學了 Haskell ,也決定了下個要念的主題 --- Precision-Time Machine
所有的事情也該繼續前進而不要再裝死了。該寫的 lambdawn, Perfume, Haskell 是該繼續進行了。
---
希望能繼續過著開心的生活。
written by
yen3
in
10:30 上午
0
comments
tag: life, programming
ycma 要我推導的東西,我終於推出一點頭緒來,不過不知道是不是他要的。從這個中間體會到慢即是快,現在竟然非常習慣在紙上書寫所有的想法,以前總是要盡量的把所有東西電子化,其實現在也可以,寫完掃起來就好了,也不是一件很麻煩的事 XD。
現在思考比較不會想要用電腦,習慣靜靜的想,想的過程中也不會想用電腦,很大的原因是,在那個當下,用電腦並不會幫助我思考,所以我可以專心在紙筆上,可能是體會到了一點,我正在想我想要解決的問題,所以脫離是有可能的。也因為這個樣子,希望自己的桌子簡單一些好吧。
這個禮拜一忙起來是要人命,花了一天半的時間在搞 onlinejudge system ,寫程式還是適合集中時間,不過集中時間的同時,每天空兩三個小時下來想問題是必要的。對現在的我而言,用 Python 操作 List 總是會覺得用 Haskell 來操作會來的更好玩些。用 List 會想到我第一次上 Database 時,jdwei 教 Relational Algebra,重新定義了所有 symbol 與其操作方式,每個產生都是一個 table,就可以用這套 Algebra 來做展開或化簡,這是我第一次覺得 Algebra 很好用,Boolean Algebra 沒有辦法給我這樣子的感覺大概是操作的東西比較小,讓我會直覺認為就是如此。而在 Haskell 的 List 操作也讓我有相同的感覺,今天才想到,稍微延伸一下,如果我們把一個 type 及其操作視為一個 Algebra,沒有 side effect 的影響下,這應該是很容易成立的(如果不要轉型的話 XD),只是對於 function 而言,我們可能會得到一個 fun:: a -> b 的映射,這恐怕就要另外再想想了,用我目前的破爛數學大概是想不到什麼東西 XDXD。寫到這裡,突然讓我想到 Josh Ko 提及的一本書 "The Algebra of Programming",不知道要裡面寫了什麼? 算哩,繼續學習吧,就不要想太多了。
---
相當有趣。
written by
yen3
in
12:09 上午
4
comments
tag: life