2008/01/31

商業區大冒險

今天在 101 附近活動。先到簽證中心跟 scm 老師拿保證信,然後送修 Logitech MX1000。

很少這麼早坐捷運,塞得像什麼一樣,只差頭上沒放人了 XD。出市政府站,那一帶高樓林立、排場闊綽,讓我有種壓迫感,想趕快脫身 XD。簽證中心在一棟超華麗的大樓裡面,我準備坐電梯上六樓,六個電梯門環繞著我,抵達樓層的叮叮聲此起彼落,我就暈頭轉向了 XD。一進簽證中心就有小姐親切招呼「您好,請問要辦簽證嗎?」我沒料到有這招,只尷尬地比比坐在裡面的 scm 老師說「找人」XD。之後就很順利地拿到保證信啦。(簽名好漂亮!)

接著還算成功地搭上公車,到羅技客服部。果如傳聞,服務人員沒測幾下就直接進去拿一隻全新的現任鼠王 MX Revolution 出來,免費更換 XD。MX Revolution 的包裝設計得頗有蘋果味 XD。回來的時候終究要出差錯,公車坐錯方向,本來要到忠孝敦化或忠孝復興或市政府站,最後變成西門站 XD。幸好司機人很好沒笑我 XD。

回到溫暖的台大,直奔圖書館,因為 Richard Bird 的《Introduction to Functional Programming using Haskell》2/e 已經回館了!在圖書館裡面看第一章,寫得真好!我該把它帶去英國請作者簽名嗎?XD 遺失機率會增高吧 XD。

回到宿舍,ptt C_and_CPP 板上一篇關於《C++ Primer》4/e 中譯本的貼文引發一連串(可預想的)推文。比較具代表性的:

→ necole236: 為什麼我覺得念起來比念原文的還要痛苦呢 @_@ 01/31 06:08
→ doomleika: 譯序有提到是三個學生合翻+侯老師校稿的樣子 01/31 09:00
推 williamyu: 這.......還是應該去買一本英文的?@@" 01/31 09:46
推 stonehomelaa: 不是侯捷親自翻譯的?那要考慮一下要不要買了... 01/31 10:20
推 netsphere: 翻的爛的中譯本最遭糕了 01/31 12:17

好啦,其實我覺得的確是沒有譯得很順 XD。我是到《The Java Programming Language》4/e 的時候才比較敢譯,Primer 因為是初次翻譯(侯老師也特別交代只要直白地翻譯,不需要太多修飾 ─ 那是他的工作),所以不敢做什麼變化挪移。要是被他們發現我是在什麼時候翻譯的,我就真的把侯老師的名聲搞砸了 XD。不過假設現在讓我譯,技術上大概跟那時候沒什麼差別(說不定還差一點,那時候對 C++ 叢書熟悉的程度不是現在能比的),文字上比較敢譯一點而已。

--
真慘 XD。


有正面回應了耶!

→ poga: 個人覺得翻得還不差.. 01/31 23:55

--
真感動 XD。

Labels:

Anonymous Anonymous1/31/2008 3:29 pm 說:

我才看幾章, 覺得不錯呀XD

Blogger yen31/31/2008 5:26 pm 說:

前幾章不錯

我就說會換鼠王了XD

Blogger Rain2/04/2008 1:48 pm 說:

hi 冒昧跑來這邊留言

昨天也入手這本書

121頁的圖解..第四項好像寫錯?

圖跟字湊不起來:P

by ptt鄉民<( ̄︶ ̄)>

ps 翻的不錯~

Blogger Josh Ko2/04/2008 2:01 pm 說:

是的,看來是 copy-and-paste 造成的錯誤 :P。請把第四項程式碼改為 "sp1 = sp2;"。

感謝您的打氣和勘誤 :P。如果沒有官方勘誤表,我可能會來弄一份非官方的吧。看到錯誤就如坐針氈… XD

Blogger yen32/04/2008 4:32 pm 說:

來寫個簡單的wiki 或者是網頁?

Anonymous Anonymous2/05/2008 9:33 am 說:

p126頁的 pend 應該是指向其餘記憶體

:P

Blogger Josh Ko2/05/2008 10:33 am 說:

謝謝。我剛剛整理了一份非官方勘誤,請參考 :)。

<< 回到頁首

2008/01/30

Postcards from Oxford & Nottingham

Yen3 轉述 Hamigwa 的建議,說我可以從英國寄明信片回台灣,當作禮物。我覺得這主意真好 XD。所以現在開放登記,想拿明信片的可透過留言或寄信(ptt, ptt2, 系上信箱… 都可以)或 MSN 告訴我

  • 你的(中文)地址,以及
  • 你想要什麼地方的明信片(Oxford or Nottingham)。
登記截止於 2/10。

應該是買得到明信片,也會有時間買吧,我猜 XD。如果因為不可抗力的因素沒能寄出,就抱歉啦 XD。

--
當然也要我到得了英國才有這回事 XD。

Labels:

Blogger yen31/30/2008 3:48 pm 說:

搶頭香XD

Anonymous Anonymous1/30/2008 6:52 pm 說:

你會到 221B Baker 嗎? XD

Anonymous Anonymous1/31/2008 5:50 am 說:

+1!! XD

<< 回到頁首

Start of Phase III

簽證線上填表的網站完成維修了!看來有望準時回家 XD。裡面有一題是 "Have you engaged in any other activities that might indicate that you may not be considered a person of good character?",嗯… 接受 Cartesian skepticism 的 radical rationalist 算人格不正常嗎?XD

--
反正回答 "No" 就對了 XD。

Labels:

Phase II

新護照拿到了!所以就可以預約申請簽證的時間(2/1 9:00 AM)、線上申請在學緩徵役男出國(「申請出國核准 APPROVED TO GO ABROAD」,看到這句很有快感 XD)、還有準備護照、身分證影本。下一階段就是高潮了:與線上簽證表格和簽證中心混戰 XD。

--
去程總共要坐十六個小時耶 XD。

Labels:

2008/01/29

大三威能

天啊,第一階段選課結果就是理想課表!(除了兩門無限加選的課以外。)大三威能真是太棒了!

可惜隨機客那班 Computational Complexity 是開給在職專班的。我之前以為是一般的課開在晚上,和顏老的線性代數一樣 XD。那就修 23 學分嘍。

再來就是寄信給老師請假或找人幫我上第一個星期的課…

--
希望辦簽證也有這樣的好運 XD。

Labels:

Blogger yen31/29/2008 11:38 am 說:

幫你集氣一下XD

Blogger yen31/30/2008 5:15 am 說:

有關你想做的dependent C ,我從ptt PLT 42 看到 http://jekyllc.sourceforge.net/index.html

不知道和你要做的有沒有關係

Blogger Josh Ko1/30/2008 5:24 am 說:

看起來是 yet another extension to C。我只有很快地瞄過,沒看到他強調 dependent types 就是了。(倒是在 compatibility with C 上面著墨甚多。)

而且看現在情況也不太可能做 Dependent C XD。

<< 回到頁首

2008/01/28

交代

對了,我之前說寫完 relational derivation 後要寫 dependent types,可是後來發現如果不用 Agda 要用 imperative languages 當例子的話,就等於是自己發明型別系統了,工程浩大。前一陣子曾稍微描述我想在 compiler final project 試作的 "Dependent C",就湊合著看一看吧 XD。如果真的要把 array bounds checking 做成 Dependent C 的樣子,應該不會用全自動檢查的方式(scm 老師上次給我們看一篇最近的 paper,專門做自動化的 array bounds check elimination,那些 typing rules 簡直是變態 XD),而會要求程式員在必要的地方提供證明,然後像 pointer indirection 的問題和 a[b[i]] 這種狀況說不定都得做點簡化。

還是舉一些實際例子簡單講我想做什麼好了。如果我們寫

#define N 10
int a[N];
for (i = 0; i < N; ++i)
  a[i] = 0;
那我們知道在迴圈內存取 a[i] 絕對不會超出邊界。相對地,如果我們寫
for (i = 0; i < N; ++i)
  a[i] += a[i + 1];
那麼存取 a[i + 1] 就是不可靠的,因為在迴圈內我們有 i <= N - 1,而有 i + 1 <= N,可能超出邊界。一種方式是讓編譯器自行推斷,但這還算是 research topic。為了減少編譯器的負擔(i.e., 編譯器撰寫者的負擔 XD),我們可以要求存取 a[i + 1] 以前,程式員必須提供 0 <= i + 1 && i + 1 <= N - 1 的證明。我猜大概就是把 Hoare logic 寫在 C code 裡面吧,整套機制和語法還要再設計。

又例如我想寫一個 vector addition function:

int* vec_add(int* p, int* q, size_t n) {
  int i;
  for (i = 0; i < n; ++i)
    p[i] += q[i];
  return p;
}
這段 code 有陷阱:pq 可能是 NULL,或是兩者之一未指向 n 個以上的 ints。(其實有第二個條件就夠了 ─ 第一個條件蘊含第二個條件。)有了 dependent types,我們就可以在型別上要求傳進來的 pointers 必須指向至少有 n 個元素的 arrays。

講稍微深入一點好了。正式一點看的話,我們可以把一個型別看成 first-order logic proposition,具有這個型別的值就是對這個 proposition 的一個證明。先假設只做最簡單的 existential-quantified propositions。例如一般的 int* 可以對應到 "∃p : int*. ⊤"(⊤ 是恆真的 proposition),要證明這個 proposition,只要隨便提供任何一個 int* 就行了。而在 vec_add 裡面,我們想要的型別可以對應到 "∃p : int*. LENGTH(p) ≥ n"。下稱 existential quantifier 裡面的 proposition 為 PP 相依於 pn 的值(i.e., p and n occur free in P),因此整個 type 是個 dependent type。想通過型別檢驗,使用這個函式的程式就必須(在編譯期)證明他提供的引數確實滿足 P。這樣甚至可以增進一點點的效能,因為 vec_add 不需要做執行期檢查。這層邏輯與程式之間的關連(propositions as types; proofs as programs)就是 Curry-Howard isomorphism。(此處我們是非正式地使用這個概念,當程式以各種 lambda calculi 呈現的時候,就會分別和各種邏輯演繹系統有正式的對映。)

等〈Derivation-Carrying Code using Dependent Types〉出現以後(是要等上了才能放?),也可以看看(至少)簡介的部份。scm 老師和 Patrik Jansson 把論文修得好感人、好好看,不看可惜 XD。

--
結果不小心寫到把 Curry-Howard 都請出來了 XD。


變數宣告上,把 first-order logic formula 稍微改一下,效果好像不錯耶。像 vec_add 可能就寫成

int* vec_add(int* p . LENGTH(p) >= n,
             int* q . LENGTH(q) >= n,
             int n) . return == p;
這看起來很好解析(parse),而且我覺得符號看起來還不錯 XD。

--
有人要一起玩嗎?XD 如果學期初就把賺人熱淚的 proposal 交上去,老師說不定會很感動地答應 XD。


把 Dependent C 的議題大概整理一遍:

  • 相容性:回溯相容於 C89(C99 可能太辛苦;如果合作者想做別的語言也可以,但必須是 statically-checked language,否則沒什麼意義);
  • 安全性:可以在編譯期確保不會發生 array index out of bounds 或 deference of null pointers,更有野心的話可以做更多;
  • 執行效率:最完美的狀況是所有檢查都在編譯期完成,真的沒辦法才安插 runtime check;
  • 表達力:能表達的函式介面契約更加豐富,一樣愈有野心的話可以愈豐富,例如從介面上保證 qsort 一定會排序;
  • 乾淨:語法要夠漂亮,而且不要讓程式碼被 proof code 淹沒(後者可能和「所有檢查都在編譯期完成」的目標相衝突)。

--
然後如果有人可以寫 x86 assembly 的 (optimising) code generator 就太棒了 XD。


如果有人想一起做,請務必留言或寄信或告知 thirddawn 喔!先說好:就算湊到人,老師也不一定會同意;而且假設老師同意了,這應該就是整個學期的事,要(嚴重)超前課程進度,然後我猜平常的作業還是要照做(除非老師特別仁慈),或許還得冒點「拚一學期拚不出好成果」的風險。

--
總之條件惡劣、環境嚴苛就對了 XD。

Labels:

Anonymous Anonymous1/29/2008 5:54 am 說:

您有看過 Jeremy Condit 的 Deputy 以及其他如 Cyclone (抱歉連結目前無效) 等的 Safe C 嗎?不妨參考……

Blogger Josh Ko1/29/2008 11:30 am 說:

謝謝單老師 :P。我剛剛很快看過去,blog 提到的 features 都在裡面,幾乎是一樣的 :O。只是如果我們真的要做,(編譯器技術上)應該要簡化許多吧。(而且目前看起來沒什麼機會做…)

--
真的被嚇到了 XD。

<< 回到頁首

Very Big Trouble

申請英國簽證的網站竟然延長維修時間!

The online application service is temporarily unavailable due to essential maintenance work.

IMPORTANT NOTICE TO APPLICANTS: The Visa4UK is currently offline for essential maintenance work. The work is ongoing and may last until 12:00 GMT Wednesday 30 January 2008. We apologise for any inconvenience caused.

所以預定要到星期三晚上八點才好。而且他還寫 "may",一副就是不確定什麼時候會好的樣子…只能祈禱他真的會準時開站嘍。

--
可是延一次就很可能再延第二次 ─ 算了,這時候我應該說上句是 by induction,不可信 XD。

Labels:

小更新

我在大三上回顧第二篇最後多寫了一小段,說我(目前)是個 radical rationalist (who nevertheless admits that reason has its limitations)。裡面扯到很久以前寫的一篇 Leibniz,文內說 Leibniz 希望建立一套普遍算術,當哲學家有意見衝突,只要拿紙筆坐下來,說「讓我們計算一下」就行了。

… 這不就是 squiggolists 最愛講的 "we reason"、"we calculate"、"we derive" 嗎?!而且 "reason" 當名詞用還正好是「理性」,難怪我覺得特別帥氣 XD。

--
下面那篇 "Phase I" 也新增一段 category theory 的科普小常識 XD。

Labels:

Phase I

照片照好了,下午旅行社會把證件收走,後天中午就有新護照。同時 scm 老師會並行地(concurrently)買機票,家裡也會準備財力證明。有護照就可以預約辦簽證的時間(吧?)和處理役男出境(好像線上辦就可以了),所有緒程(threads)會合(join)後就真的可以去辦簽證了。之後再處理比較細瑣的雜務,例如英國現在應該是 freezing cold 吧 XD。

等照片的時候到 Einstein 書店翻機率課本,最後選鍾開萊的《A Course in Probability Theory》3/e。這本是從測度論開始談的,顯然至少要有高等微積分的基礎。其實我在翻的時候滿猶豫,因為看起來很難 XD。可是後來一想,如果要看簡單的機率,跟 Weijin 借電機系的課本就行了,額外買一本的用意就是想要讀深入一點。所以就買啦 XD。

這個情況剛好和《Algebra of Programming》一樣:要學 probability/program derivation 以前先來一段抽象的 measure/category theory。現在 category theory 的情況是:先在我們一般習慣的 sets & functions (relations) 上面架一層 categories,然後再架一層 functors,往上又架一層 transformations,而且 transformations 還可以是自然的(natural)!XD 我想等簽證辦好以後,我就會改口說「要是簽證辦好就會 category theory 該有多好」XD。

--
慢慢看嘍 XD。


根據 Wikipedia,上述「一層架一層」的說法是可以正式寫下來的(formalise)!一個 category 是由一堆 objects 和一堆 objects 之間的 arrows(morphisms)(以及一些 operations)組成,例如 Fun category 的 objects 是 sets,arrows 是 total functions。往上架一層,category 的 objects 可以是所有的 "small categories",arrows 就是 functors。(特別指定 "small" categories 當然是為了避免 Russell's paradox。)(可惜的是,Fun 是個 large category,原因仍是 Russell's paradox。真的是被 Russell's paradox 和它的同夥整得有點慘 XD。)再往上一層,category 的 objects 可以是固定兩個 categories 之間的所有 functors,arrows 就是 natural transformations。看來 category theory 真的是抽象到足夠抽象了 XD。

以上是 category theory 比較科普的部分 XD。

--
開始用 British spelling!XD

Labels: ,

2008/01/27

大混亂

辦簽證有這麼複雜的嗎…?而且上一本護照剛好因為接近役齡,2006 年就過期了,現在還要換發。希望來得及… 目前問題暫時重整(reduce)到照張相片,來問問哪邊可以照。

如果只要讀 category theory 就可以直接去英國該有多好 XD。

--
飆車飆車!!

Labels:

Blogger yen31/27/2008 11:16 am 說:

這世界有那麼簡單就好啦 XD

Blogger Thundermyth O.1/27/2008 3:38 pm 說:

呦~ 國際級的研討會嗎?
嘖嘖… 強者也!頑張れ

--
另外,貌似看到問句:「來問問哪邊可以照」

路上隨便找到照相館就可以照吧 XD
貴校不知道有沒有,印象中敝校一餐有證件用的照相機器(類似拍大頭貼的那種機器)

<< 回到頁首

2008/01/26

Going to UK?

scm 老師二月中要到英國參加 DTP 2008,順便會去拜訪 Oxford 的朋友、參加他們的 meeting,問我有沒有興趣一塊去。

好吧,以上是故作鎮定的描述。接到信的真正反應是這樣的(還是過濾掉一些太誇張的用詞,驚嘆號盡量減省,也不用特大鮮紅字型和 all-capital words XD):不會吧!真的還假的!跟 scm 老師去 UK 參加 dependently-typed programming 的 workshop!這怎麼可能!而且還會去 Oxford!還要參加他們的 meeting!Richard Bird!Jeremy Gibbons!簡直太誇張了!不去就瘋了啊!(看到 scm 老師提的幾個主要困難:)錢是 trivial 嘛!役男…等一下查一下,應該沒差吧!開學…第一週是準備週嘛,找人幫忙錄音啊!不不不,你要冷靜一點,理性地思考…(以上全段重複數次 XD。)

等到理性真的回來了,才覺得那些困難的確有些困難,雖然應該都可以解掉。錢其實不是 trivial 而是 totally non-trivial,例如 DTP workshop 的註冊費是 200 英鎊,我轉一下匯率就被嚇到了 XD,還有機票住宿什麼的加一加,難怪教授們買高貴電子產品都不會手軟 XD。衝到開學首週的話,就得到處拜託同學幫忙,看是要錄音點名加簽還是拿選課單,當然自己能先處理掉的事情就先處理掉。簽證和役男出境的手續(其實連帶包括出國的一切雜務)我是漫無頭緒,不知從何下手,而且還要盡快辦好!(不過看一下役男出境辦法之類的東西,似乎是不會遇到多大阻礙。)

其實寫這篇是因為剛剛在床上突然想到就興奮起來,然後有點擔心,不知道老師有沒有收到回信,所以寫一篇讓 scm 老師看,預防萬一 XD。

--
因為會遇到一大堆的 squiggolists,現在看起 category theory 特別有動力 XD。

Labels:

Blogger yen31/27/2008 9:41 am 說:

我想說你什麼時候那麼鎮定了XD

<< 回到頁首

大三上回顧 ─ 目前的知識論立場

最早大概可以追溯回高中,我已經對於「理性的極限」以及「經驗歸納的不可靠」有所思考。這學期修了知識論,開始有詞彙可以對這些概念做比較精確的討論和分析。「歸納法不可完全信賴」是一般人都接受的事實,在理論上 Hume 曾論證歸納法完全無法提供證成,我寫過一篇簡單的介紹。至於感官經驗,理論上我接受 Cartesian skepticism 的論證,從根本上質疑它的可靠性(不只是說「有些情況下會看錯」,而是說「不可能提供任何證成」),這我寫過好幾篇(這篇這篇、還有這篇)。因為上述質疑,我一向和自然科學以及社會科學抱持敬而遠之的態度。他們解的問題都是非常複雜的問題,有些手法也相當高明,令人敬佩,但是理論上恐怕找不到一套方法使得解答是不容置疑的,而我在理論上對「知識」的判準和 Descartes 一樣,認為可質疑的信念都稱不上知識。所以我不排斥看點科普讀物,了解一下 empirical scientists 又做出哪些成果,但是要我自己下去做的話,心裡對這種東西有根本的質疑,就沒辦法很踏實去做。

對於 a priori justification 的質疑,知識論課堂上主要介紹 moderate empiricism,他們認為 a priori justification 必然是 analytic,依 Frege 的詮釋(Frege 本人不一定支持 moderate empiricism)就是邏輯上的 tautology。這個意見成不成立還可以爭論,例如「我思故我在」算不算 tautology(甚至爭論這句是不是 a priori)。不過在我有興趣的領域(mathematics, theory of computation, formal systems, ...)裡面,justification (proof) 本來就是 analytic。而且如果 Church-Turing thesis 是對的(亦即我們「表面」的思考能力受限於 Turing machine 的能力),就表示我們能夠正式證明出來的東西永遠都是 analytic。如果採納 foundationalism 的意見推廣出去,那些 basic beliefs 就如同 formal systems 的公設,各種邏輯就是 inference rules,我們所能想像的東西仍然是 analytic。但這很合理,因為我們當然不能想像超乎理性的東西,或許可以說「理性」帶點 "maximality" 的味道。如果視推論為「把結論明確帶進 mental contents 裡面(otherwise unseen)」的過程,我認為這些結論可以算作知識。某種角度而言,這也呼應 internalism 的說法,即知識(的證成)必須是當事者本身能夠察覺到的。

一個有趣的反思是這樣的:既然我們僅能依賴理性,Cartesian skepticism 的最重要假設也是「外在世界的探索僅能依賴感官經驗」,為何不接受 empirical knowledge 呢?或者我們仍然接受 Cartesian skepticism,那就應該可以用同樣的論證攻擊 a priori knowledge,宣稱理性和經驗一樣也可能是蒙蔽我們的東西?這裡我認為理性和經驗的性質不同,因為理性具有 "maximality"。我們可以(在理論上)拒絕經驗,但沒辦法拒絕理性,所以理性佔據某種特殊地位。但是我仍然同意理性沒辦法帶給我們絕對真理,因此「真理」現在對我而言只是以理性為原點的真理。最後,如果在期末考前寫這篇,我會堅定地說理論上我接受 Cartesian skepticism,但最近把經驗和理性相互比較之後,我覺得還有開解的空間,而開解需要時間,而且不一定會開解到更令人舒適的狀況就是了。

無論如何,到這裡已經可以發現,我算是一個極端的理性論者,不過同時也承認理性有其限制。這麼一歸類,當初我看到 Descartes(或許也可以牽扯一點 Leibniz)就很有共鳴,也就不足為奇了。走極端路線其實比較沒有負擔,因為走溫和路線就得調和各方勢力,很辛苦。而且這是理論上的立場,極端不會傷害任何人 :P。

--
這篇是很純的哲學。大三上回顧還有得寫 XD。

Labels: ,

Category Theory

正式碰 category theory!"Abstract nonsense" 的稱號果然名不虛傳,真是抽象到一種境界 XD。努力做習題中 XD。

--
誤上賊船?XD

Labels:

2008/01/25

廬山真面目

喔喔喔!終於看到傳說中全台灣只有兩本的《Algebra of Programming》!!!現在 scm 老師的那一本在我旁邊,裡面有好多密密麻麻寫在便利貼上、每個字不大於 3mm 見方的筆記 XD。

--
而且 scm 老師有 Tony Hoare 的親筆簽名!!!

Labels:

Blogger yen31/26/2008 5:40 am 說:

你的還沒到之外,全台只有一本 XD

Blogger Josh Ko1/26/2008 5:42 am 說:

中研院資訊所圖書館也有一本啦 XD。

Blogger yen31/26/2008 5:47 am 說:

那麼就是我搞錯啦 XD

<< 回到頁首

2008/01/24

《C++ Primer》4/e 中文版首日狂賣

今天下午照慣例到天瓏網站查 C++ Primer 的消息,發現書目已經出現了。雖然狀態是「缺貨中」,但上架日期寫的是 1/24。晚上是北部同學會,6:10PM 集合。我大概 5:55PM 抵達集合地點台大正門,隨後北方香就到了。我跟北方香提起,並慫恿他打電話問天瓏,北方香於是拿我的手機撥我的天瓏貴賓卡上的號碼,店員平靜地回應曰:「喔,今天剛到貨。」

到貨了?!北方香追問貨夠不夠,店員說「絕對夠絕對夠」!這還有什麼好說的,馬上往捷運站走!我們從來沒覺得天瓏有這麼遠過 XD。到天瓏,北方香先幫我檢查最重要的譯序 ─ 是真的!所以馬上到隔壁的銀行領錢,準備大開殺戒。北方香拿起促銷區的兩本,問店員還有嗎,店員指櫃檯上的兩本。北方香說「再一本」,店員說「自己拿」,北方香又說「再一本」,店員又說「自己拿」,最後才知道北方香總共要五本 XD。這五本除了北方香和我的兩本,還有很久以前我承諾要送的三本。最後店員很慷慨地算我們七八折(因為量大,而且這是下週的「每週一書」),並附送兩個精美的天瓏袋。臨走的時候聽到店員喊:「這本再拿一疊來,這邊沒了。」XD

最後就是讓我等了兩年的侯捷譯序啦。(譯序、目錄、和第一章可以從碁峯網站下載。)以下是最後一段:

本書篇幅繁巨。工作初期我邀請三位優秀青年協助處理初(粗)稿。他們是柯向上(臺灣大學)、靳志偉(同濟大學)、辜新星(北京大學)。柯處理 1~8 章及 15, 16 章,靳處理 9~14 章、辜處理 17, 18 章及附錄 A。他們的工作非常好。初稿的每一個字都經過我的檢驗、推敲、修潤,最後才成定稿,由我負完全責任。初稿很早就交上來,我卻因為事務繁重遲至今日才完成全書。時間上有負讀者,品質上願大家滿意 :)

所以這本《C++ Primer》4/e 中文版我初譯了大概一半篇幅,而且是我的第一次翻譯經驗,在 old blogs 裡面我稱之為 The Task I & II。這份任務是高三畢業前夕交付下來的,1~8 章在 2005/8/23 9:10PM 全部譯完,之後大一上學期中間又分配到 15~16 章,12/4 交稿。然後就是兩年的苦等… XD

--
這時候不要理 Descartes 的 dream argument 比較好 XD。


Weijin 馬上就發現第一個錯誤:p.284 第 5 行,cout 應該讀作 see-out 而不是 cee-out(雖然讀音一樣啦 XD)。對照我的初譯稿,確定是我的錯 XD。

--
雖然侯 Sir 說責任全在他,犯這種錯還是很不好意思 XD。


又發現一個錯誤:p.126 的示意圖裡面,pend 應該指向 4 的後面一格,也就是「其餘記憶體」的開端。

--
我開始有點擔心 XD。

Labels:

Anonymous Anonymous1/24/2008 2:54 pm 說:

ㄎㄎ

Blogger Airman Of Chunghua Wind1/24/2008 2:58 pm 說:

還能說啥呢!!
就是四處散佈情報XD

敗 (茶~

Blogger yen31/24/2008 3:00 pm 說:

明天去搬書

Blogger yen31/24/2008 3:59 pm 說:

建議,來telnet://bbs.cgu.edu.tw CGUCSIE99 1934 1935篇XD

Anonymous Anonymous1/24/2008 8:05 pm 說:

http://www.mitadmissions.org/topics/learning/coursework/the_end_of_an_era_1.shtml

太難過了.....

Blogger Airman Of Chunghua Wind1/25/2008 12:54 am 說:

學長在系上太強大了XD~

Anonymous Anonymous1/25/2008 2:58 am 說:

也太威猛

賀!

Blogger yen31/25/2008 3:11 pm 說:

我在系上太強大了? 這顯然是個錯誤答案,昨天剛有人筆戰我,重點是我什麼都沒幹XD

Anonymous Anonymous1/29/2008 6:45 am 說:

Hi Joshsoft,

原來你就是跟侯捷合作翻譯 C++ Primer 4e 的柯向上同學啊 !

你翻譯得很不錯 :)

陳裕城

Blogger Josh Ko1/29/2008 11:19 am 說:

啊,謝謝 :P。初次翻譯,技巧還有待磨練 :P。

很久以前在天瓏翻到 Refactoring to Patterns,覺得很有意思,可是那時候知道您和侯老師合譯這本書的消息,就沒買原文書了 :P。

Anonymous Anonymous1/30/2008 1:17 am 說:

Hi Joshsoft,

侯老師去年非常忙碌,所以出書的速度就變慢了。今年,是侯老師衝刺的一年,他有許多書債要還 :)

《Refactoring to Patterns》初稿在 2006 年就已經完成了,侯老師預計今年初要出這本書。

你的 Blog 很不錯 , 技術實力也很堅強 , 加油了 :)

陳裕城

Anonymous Anonymous2/26/2008 4:10 am 說:

Hi, this is GU Xinxing's regards :)

Keep in touch by email -- you know that:)

<< 回到頁首

2008/01/23

空檔

明天似乎算是空檔(後天就會借到寒假主力了),那就來看 Hennessy & Patterson《Computer Architecture: A Quantitative Approach》第三章 Instruction-Level Parallelism and Its Dynamic Exploitation 吧!

比較詳細的行程:中午後門吃飯順便修腳踏車,然後到前門買機率課本。晚上有北部同學會。其他時間就看上述材料。

--
不然不可能看得懂 MMIX-PIPE XD。

Labels:

Blogger yen31/23/2008 5:17 pm 說:

我懂了你跟我說的某句話XD

<< 回到頁首

寒假

有大神的庇佑,這次寒假來得特別早 XD。

--
Linear congruential method 有那麼嚇人嗎?XD

Labels:

Blogger Ray6/30/2008 5:31 pm 說:

請問一下blogger右邊Link 分類怎麼弄的,thanks!

<< 回到頁首

2008/01/22

順便

我看星期五去中研院借《Algebra of Programming》的時候順便借《Introduction to Functional Programming using Haskell》比較快 XD。

--
終於要去了!

Labels:

熱血點

開始讀 Tony Hoare 的《Essays in Computing Science》第一篇〈The emperor's old clothes〉,這是 1980 年的 ACM Turing award lecture。Hoare 要選擇 ALGOL 60 的某個子集出來實作時,提出四個原則。其中第一個原則是 security,Hoare 說這個原則的一個推論是在執行期檢查所有 subscripts,例如 array indexes。這讓我很自然地想到 Sweeney 也提過 out-of-bounds array access 是一個主要問題。過了二十年問題都還在,Hoare 大概氣得跳腳 XD。然後我就想到,如果編譯器的 final project 可以自選主題,我就可以來設計一個 "Dependent C",把一些簡單的 dependent types 移植進去,這樣應該能重拾 TOY86 的熱血感。如果設計的是 "Dependent C++",恐怕就比 TOY86 更熱血了 XD。可是總覺得這個老師不太可能讓我們自由選題…

例如 array bounds checking,我們可以提供兩種選項。一種是 "self-justificatory",即執行期檢查 subscripts 是不是落在允許範圍內,和 Java 一樣,這種大概沒什麼好做。另一種選擇是讓程式員提供 static proof(可能會長得很像 Hoare logic),在編譯期就確定不會越界,如此編譯器就能抹掉執行期的檢查。然後可以繼續延伸,例如設計機制讓程式員能自己定義 propositions,讓 return type 可以相依於 argument values 等等。不過馬上想到的一個難處就是 pointers,aliasing 進來會讓事情變得很複雜,所以光做 array bounds checking 可能就有些挑戰。

可是要是 final project 不能自選題目,以上就都是空話。暑假還有更重要的事情要做,不可能停下來做這個東西。

--
可以讓 cyy 教編譯器嗎?XD

Labels:

大三上回顧 ─ 本學期課程

作業系統
郭傑出的口才真的是非常流利,解釋得也很清楚。可是我不太喜歡照課本上,總覺得有更好的組織方式。考試的風格就更不喜歡了 XD。我會希望花點時間在課堂上講 Nachos,像 cyy 講 TOY 那樣予人腳踏實地的感覺。以後如果有機會設計一門計算機概論,再用自己的脈絡來處理這一科吧。
數位系統設計
資訊系第三門好課!甘宗左老師人超好、功力深厚又很用心,每次上課投影片都是一百多張,而且愈到後面愈精彩(前面像通識 XD)。甘老師和學生很親近,上課的時候也常常有業界的經驗分享,互動的感覺非常好。我覺得面對這樣的老師,如果任意蹺課或上課時做不相干的事情或是考試考得一蹋糊塗,都滿糟糕的。現在走在路上看到紅綠燈、平常打鍵盤看螢幕,腦中大概都有一幅意象,知道那大概是怎麼做出來的。我已經下載全套投影片收藏了 XD。
人工智慧
所以我現在知道這一派的人工智慧在做什麼啦。許永真老師開宗明義把這學期的人工智慧定義為 "act rationally",而不是常和哲學家或生物學家或腦神經科學家打對台的 "think humanly"。所以這一派的人工智慧其實是藉著設計各種演算法(一般是 heuristic algorithms)解決實用問題,性質和 information engineering 的各個領域很像,根本不用處理「人工智慧可不可能」這種理論上的質疑。最後就是慘痛的 final project 經驗啦…
資料庫系統
這門課在上課期間給人感覺不是太有趣,笑容滿面的朱浩華老師面對日漸空曠的教室,也只能無奈地打起精神繼續教下去。不過其實朱老師把 systems engineering 的原則都傳達到了,課程結束之後,那種系統設計時必須有的「平衡感」才逐漸發酵。衝著這一點,我願意讓它繼續成為必修課 XD。
圖論
不知道為什麼,沒有和圖論很來電的感覺。圖論讓人印象深刻的一點是,大部分介紹的定理都是 "if and only if",提供精準的刻畫,高等微積分就沒有這種現象。張鎮華老師的鋪陳手法相當老練,每一章大致都是從一個大定理開始,然後逐漸加以延伸或引進其他相關主題。每週一份作業雖然有一點負擔,但我不覺得不適當,畢竟這是很正常的練習量。下學期因為系上的課有點重,而且大四的時候我想修一年代數導論,為了不延畢,就不選圖論了。
知識論
榮登「本學期最精彩課程」寶座!梁益堉老師和我遇過的哲學系、數學系、物理系老師一樣,有那種理論學者特有的可愛感 XD。一開學就看 Descartes 的 Meditation I & II,馬上打進我的心坎裡。整個學期的空洞(i.e., 純哲學家嘴砲)比例算滿少的,我終於得到一些標準的詞彙(e.g., Cartesian skepticism),可以描述我自己用的知識論。這會用一集回顧專門探討。
宋明理學
杜保瑞老師教得算硬,但會適時用生活化的例子解釋他所用的概念,所以專心聽就還跟得上。實用上,儒家工夫理論的一些說法很適合拿來奉行,像工夫次第、未達境界前應強迫做工夫之類的。理論上,杜老師的一個洞見是應該用「基本問題意識」看各個哲學理論,亦即我們應該先知道一個哲學家心裡問的問題是什麼,在那個脈絡下看他所建立的理論。這個洞見非常重要,例如 "think humanly" 的人工智慧研究者會批評 "act rationally" 的人工智慧完全搞錯方向、不可能有成果,但前者和後者問的基本問題根本不一樣。類似的表面衝突還有很多,而這些衝突其實都可以藉著釐清理論背後的基本問題而化解。
數位電路實驗
相當有趣的實作經驗!我相信 Knuth 如果看到 DE2(而且 TAOCP 已經寫完的話 XD)一定愛不釋手,因為硬體設計就這麼化約為程式編寫,電機系幹得實在好!(當然那些 analyzer/synthesizer 之類的軟體還是資訊系寫的 XD。)雖然最後沒把 TOY 實作上去,不過我會記得這塊可愛的 DE2 的 XD。

--
大概還要再寫個兩、三集才能把這學期的回顧寫完 XD。

Labels:

2008/01/21

待辦與計畫

回家以前,記得要買本機率教科書和送修 MX1000(among other scheduled events)。

寒假計畫就是讀《Algebra of Programming》、消化 doc cache、複習機率。機率主要當然是為 information theory 做準備。至於 automata theory,需要複習的是 pushdown automata,不過編譯器一開始是 lexical analysis,所以不急 XD。如果《Introduction to Functional Programming using Haskell》2/e 來得及回總圖的話,也讀這本。閒暇時候就翻翻《TeXbook》─ 三日不讀 Knuth,面目可憎 XD。

--
下學期來試試能擠出多少時間!

Labels:

Blogger yen31/22/2008 1:12 am 說:

原來滑鼠你還沒送修XD

最後兩句,那麼我想我會有很長一段的時間臉臭臭 XD

<< 回到頁首

好久

然後我好想去中研院… 我已經好久好久好久好久沒去了 XD。

--
一個「好久」是一個星期 XD。

Labels:

Blogger yen31/22/2008 1:12 am 說:

以後你有女朋友一定很恐怖 XD

<< 回到頁首

熱血在何方?

去年此時,TOY86 project 已經如火如荼,準備進入最後實作階段了。真懷念那種熱血的感覺。TOY86 之後,我就沒有再做過同樣熱血等級的作業或 project。(第一篇 paper 當然也很炫啦!可是畢竟不是自己寫的 XD。)我想除了外在因素,自己放棄太多分支恐怕是主要原因,還是不要急著把「旁支」通通刪掉比較好。

真的要感謝 cyy 引發我去年的那股熱血,太棒的回憶。

--
最後我這個學期旁觀,cyy 好人指數真的是翻倍,課程精彩程度也是…

Labels:

關鍵

又把 derivation of radix sort 看一遍,比較知道它在幹嘛了,關鍵仍然落在 stability 的條件上。在 paper 裡面,這個關鍵條件是 map (treesort ds) . ptn d = ptn d . treesort ds。左邊的意思是先用 most significant field 把 input lists 的元素分類(ptn d),然後對每一類用 less significant fields 排序;右邊的意思是先用 less significant fields 把整個 input list 排序過,再用 most significant field 分類。Gibbons 對這個條件的說明是:

Informally, this condition states that ptn d is stable: partitioning a sorted sequence yields a collection of sorted buckets.

讓我想想怎麼 "formally" 說明這件事 XD。

--
明天應該試著把整篇 paper 算一遍才對 XD。


好像的確那句 informal explanation 就夠了 XD。

Labels:

2008/01/20

神奇的摺疊融合

27 篇 paper 裡面第一個選上的是 Jeremy Gibbons 的〈A Pointless Derivation of Radix Sort〉。Gibbons 用的 specification 是一般「先用 most significant field 排序,若一樣再用 second most significant field 排序,一直往下排到 least significant field」的排法。接著 Gibbons 用一些技巧把 specification 整理成 point-free style 之後(這似乎才是 paper 的重點 XD),就可以用 fold-fusion 把原本的程式推演得「倒反」過來,先用 least significant field 排一排,再用 second least significant field 排,一直往上排到 most significant field。不只這樣,stability 的要求就出現在 fusion condition 裡面!真是太神奇了!

--
裡面到底發生什麼事還要再看一看 XD。

Labels:

Digitization

下午把還沒掃描的圖論筆記(從 Menger's theorem 開始就沒掃了 XD)和知識論的教材全部掃描起來,後者也用 OCR 處理過。

早上一起床就把 PB 的 "document cache" 整理一下,最後發現有 3 本書(在 LtU 看到的,其中 C.A.R. Hoare 的《Essays in Computing Science》scm 老師曾作文推薦喔!)和之前有意無意搜刮而累積的 27 篇論文等著我消化 XD。

--
學期接近尾聲嘍。

Labels:

Computational Modeling

This course seems to be extremely interesting (and philosophical, I guess)!

--
And of course it is not an NTU course...

Labels:

Anonymous Anonymous1/20/2008 6:06 am 說:

有趣耶!

Blogger yen31/20/2008 7:52 am 說:

那麼這是那裡的課啊XD

<< 回到頁首

2008/01/19

大神籠罩

長久以來受白石大神掩護,謹記如下 XD。

  • Information Systems:因為組長是我,所以整個 project 是個大失敗。幸好 demo 前一天大神接手,把我先前寫的 Java code(裡面 bug 很多!)和 CGI 整合在一起,隔天才有成品可用。
  • Digital System Design:大神以極快速度消化 I2C 的 spec 並實作出 input register,整個 project 的負擔瞬間去了一半。
  • Digital Circuit Lab:Lab 1、Lab 2、和 Lab 4 大神沒參加,不過這三個都很簡單。Lab 3 第一次面對 state machine 以及 LCD 控制,大神獨自一人解決;Lab 5 主要的 VHDL code 都是大神寫的,Linux RS232 driver 更是大神獨家提供。Final project 的主要基礎 Nios II 的相關事宜也是大神準備的。

以上也正好是所有曾和大神同組的 projects,所以 "cover rate" 是 100%!這種被人罩的感覺真好…感謝大神啦 XD。

--
下學期可以再受您照顧嗎?XD

Labels:

Anonymous Anonymous1/20/2008 9:23 am 說:

可以上一下MSN?XD 有事~

Blogger Marvelous Pine1/21/2008 3:15 pm 說:

白石大神?昨天晚上在你房間跟你ㄘㄘ的宅男嗎?

Blogger Josh Ko1/21/2008 3:46 pm 說:

No. XD

<< 回到頁首

2008/01/18

大三下理想課表

計算機系統實驗竟然是 2 學分,全部加起來變成 26 學分…結果剛剛去查,資訊系的學分上限變成 27 學分了,萬歲!

--
星期五是留給 scm 老師的 XD。

Labels:

Blogger yen31/18/2008 5:51 pm 說:

竟然有現代舞 XD

Anonymous Anonymous1/19/2008 9:46 am 說:

你的課表真是夭受空
xd

Anonymous Anonymous1/19/2008 6:15 pm 說:

一週只去一天阿

可以參考XD

<< 回到頁首

A Glimpse of Relational Program Derivation

(前言:理論上我們應該先談談 functional programming,再談談 functional programs 的 equational reasoning,然後才進入 relational derivation,不過我不想走這麼一大段路,對前面這段有興趣者可以參考 scm 老師的 lectures。然後因為這篇是科普性質,加上我自己也才剛入門,所以這篇不談太多細節,更不會有一大堆像 objects、arrows、functors、xxx algebras 等等正式的 category-theoretic stuffs,都是直覺白話的解釋。)

Functions 我們都很熟。在 pure functional programming 裡面沒有 side effects,所以 functions 的行為就像數學函數一樣,輸出完全取決於輸入 1。數學上一個函數 f : A → B 可表示為 A × B 的子集,(a, b) ∈ f 的意思就是 f(a) = b,而且 functions 只能把 a ∈ A 映射到至多一個 b ∈ B。

在代數裡面,binary relations 也表示為 A × B 的子集。換個角度想,可以把 relations 視為 non-deterministic functions 3,能夠把同一個 a ∈ A 映射到不同的 b ∈ B。我們把「a 經 relation R 映射到 b」寫成 b R a。例如我們定義 y perm x 的意思是 x 和 y 兩個 lists 2 互為彼此的 permutation。如果用 non-deterministic functions 的觀點看它,perm 的行為就是把 input list 映射到它的任意一個 permutation。另一個例子是 ordered?,它的定義是 { (x, x) | x is sorted },可以把它看作是一個篩子,只有 sorted lists 可以通過。4

兩個 relations R 和 S 若型別相容,便能和 functions 一樣定義兩者的 composition,記作 R · S。我們說 b (R · S) a 的意思是存在 c 使得 c S a 且 b R c,直覺就是我們可以讓 a 經 S 的映射變出一個 c,再讓 c 通過 R 變出 b。至此我們就能定義「排序」為 ordered? · perm,即稱排序是把一個 list 任意排列,但要求排列的結果必須是 sorted。

現在 ordered? · perm 是個 non-deterministic function,而我們想要的是個 deterministic function (algorithm)。這可以藉著一步步截除 non-deterministic branches 而得。從 non-deterministic 逐漸變為 deterministic 的過程就是不斷用較小的 relation 取代較大的 relation,最後得到一個真正的 function(記得 functions 是 relations 的特例)。在我們的例子裡,這個過程寫成 ordered? · perm ⊇ R ⊇ S ⊇ ⋯ ⊇ f,最後的 f 是一個 deterministic function。因為 f 包含在 ordered? · perm 裡面 5,所以我們知道它一定滿足排序的要求。Squiggolists 現在會帥氣地說 "Now we reason:"

我們就得到 insertion sort ([ nil, insert ])

顯然我們必須說明什麼是 fold,也就是出現在式子裡面的 "banana brackets" 到底是什麼意思。Fold ([ base, step ]) 是個 relation,接收一個 list 作為引數,可以視為 lists 上面的一種 induction。如果 input list 是空的,就傳回 base 裡面任意一個元素;如果 input list 可以拆成 head 和 tail,就先把同一個 fold 套到 tail 上面獲得一個中間產物(induction hypothesis),再把中間產物和 head 一起送進 step 得到最終產物。(請和 mathematical induction 相互對照。)以 insertion sort ([ nil, insert ]) 為例(這其實是個 function),nil 唯一可能傳回的元素是 empty list,insert 會假設中間產物是 sorted list,然後把 head 插到那個 list 的適當位置,使整個 list 仍為 sorted。所以整個 insertion sort 的行為就如我們所熟知的,從 empty list 開始,一次拿一個元素插進去,每次都使整個 list 維持 sorted。

知道 fold 的行為之後,perm = ([ nil, combine ]) 就不意外了:如果 input list 是 empty list,其排列必為 empty list;如果 input list 可以拆成 head 和 tail,就先把 tail 隨便排一排,然後把 head 隨便插到亂排後的 list 裡面任意一個位置 ─ 最後這一步就是 combine 做的事情。如此我們就得到 derivation 的第一個等式。

第二步 inclusion 用到了 fold 的一個基本定理,稱為 fusion theorem。當 fold 左邊有個 relation,而且滿足某些條件時,就可以把這個 relation 融進 fold 內,變成一個新的 fold。直覺上我們先用 fold 走過一個 list 得到一個結果,再餵給 fold 左邊的 relation,而在某些狀況下,我們可以在走過那個 list 的時候順便把那個 relation 一併套上去。在我們的例子裡,必須滿足的條件是

其中 id × ordered? 是個 relation,把它的第一引數套入 id(identity function),第二引數套入 ordered?,最後把這兩個引數依序傳入 insert。看看這個「不等式」的左邊,ordered? · combine 的意思是「把 head 插進任一個位置,但結果必須是 sorted」,而右邊的意思是「確定中間產物是 sorted 之後,把 head 和中間產物餵給 insert」,由 insert 的定義,這就保證右邊的 function 產出的 list 一定是 sorted,整個不等式顯然是對的!6 因此由 fold fusion theorem,我們就從 ordered? · perm 導出 insertion sort。

我目前認為 program derivation 有以下優點:

  1. 演算法的正確性是由推演所用的每一個定理得到的,這些定理可以被發現、證明、收集、組織,是可以具體操作的東西。相較之下,傳統演算法正確性的做法是來一個證一個,雖然證明者一定會發現有很多技巧是一用再用的,但這些技巧的運用主要是靠經驗,不像 derivation 所用的定理能夠系統性地加以研究。
  2. 隨著定理的發現,我們能夠得到愈來愈多的推演提示。例如 insertion sort 的推演,只要一看出 perm 可以表示為 fold,其實就結束了,因為 squiggolists 看到 fold 左邊有個 relation 很直覺就會想到 fold fusion,檢查 fusion condition 的時候很自然就能湊出 insert。這讓整個 derivation 的 eureka point 只剩下 "perm is a fold" 的觀察。Jeremy Gibbons 在〈Calculating Functional Programs〉裡面提到:"we are interested in extending what can be calculated precisely because we are not that interested in the calculations themselves",這種說法非常有意思。7
  3. 最後一點,也是我特別有興趣的一個特質,就是 program derivation 讓我們更有機會洞察一個演算法的本質。我們可以從 insertion sort 的推演當中發現,能夠導出 insertion sort 是因為排序的一部份是排列,而排列可以看成「元素一個一個隨意丟進去」,而「隨意丟進去」又因為最外面的 ordered? 要求,而必須是一種特定的丟法。傳統的演算法研究要做到這種說明就比較困難。對於想知道「一個演算法從何而來」的人而言,program derivation 這條進路應該相當迷人。

在 squiggolists 的教科書 Bird & de Moor《Algebra of Programming》裡面,relational derivation 最後被用來處理 optimization problems,其中一部份內容也出現在 Bird, Gibbons, and Mu 寫的一個 chapter〈Algebraic methods for optimization problems〉裡面,後者可以從 scm 老師的網頁下載。(看了這一份,你就知道 squiggolists 為什麼叫做 squiggolists 了…)例如若要解 longest increasing subsequence 問題(第二份文件 p.298 第 9 題,裡面叫做 longest upsequence problem),specification 可以寫成

從右邊讀到左邊:產生任意一個 subsequence(subseq),確定它是經過排序的(ordered),把這種 subsequences 全部收集起來(Λ),從裡面挑一個最長的(longest)。然後一樣有一些定理,可以協助我們把 specification 轉成一個有效率、可執行的演算法,問題的性質夠好就能變成 greedy algorithms,沒那麼好就是 dynamic programming 或是 thinning algorithms。這種解最佳化問題的進路本質上就讓人很想一探究竟。

註:

  1. 當然在 imperative languages 裡面的 functions 也可以視為有一個隱寓的 context parameter,non-local variables 的值就從那個 context 讀出來,那麼輸出(包括經過修改的 context)就完全取決於輸入了。(我怎麼覺得這樣講有點 monad 味…是錯覺嗎?!)
  2. 在 functional programming 裡面,lists 是個遞迴定義的資料型別:一個 list 要嘛是空的,要嘛是一個元素後面串上一個 list,本文內我們稱那個元素為 head、後面串的 list 為 tail。
  3. 後文若僅稱 functions 時,意思是 deterministic functions。
  4. ordered? 於是就成為一個 partial function,因為它並未在所有的 lists 上面都有定義。
  5. 而且定義域沒有縮減的話。
  6. 我這裡當然是偷懶了。scm 老師證這個不等式證了三頁(包括詳細說明)XD。
  7. 這句話可以看作是 Knuth 在 Turing Award Lecture〈Computer Programming as an Art〉所言 "In this sense we should continually be striving to transform every art into a science: in the process, we advance the art" 的 refinement。

--
所以我的下一步就是讀《Algebra of Programming》啦!

Labels:

Blogger yen31/18/2008 7:10 pm 說:

說到functional programming language 可以看看這篇 http://jerrylovesrebol.blogspot.com/search/label/JavaFX

Blogger yen31/18/2008 7:13 pm 說:

補述一下,上面那一篇是JavaFX,有提到,可以看看

<< 回到頁首

考完了

我也考完了 XD。接下來還有兩個(小?)projects,不過今天就來寫點科普文章休閒一下 XD。

--
期末考都只拿基本分 XD。

Labels:

2008/01/17

大預告 II

Relational derivation 寫完以後,我會再寫一篇 dependent types 簡介,預設觀眾背景仍然是一般的 CS 學生!我會試著從為人熟知的 imperative languages 導入(大概就是 C++/Java 吧,用 C++ template 和 Java generics 做第一層近似),盡量不要找 Agda 出來嚇人 XD。

這兩篇綜合起來,正好就是 scm 老師、Patrik Jansson 和我最近投到 MPC '08 的 paper 內容。同時也算是幫 scm 老師的 research interests 打廣告 ─ 老師很缺人手的樣子 XD。先就非技術面廣告一下:老師人很好(造型很前衛?),入門門檻很低(我主要的基礎是在兩星期裡面學會的),Salary/Work 比值又挺高(對我而言啦…XD),有興趣的人千萬不可錯過!

--
喔,scm 老師剛剛終於現蹤了!消失好幾天還挺恐怖的 XD。(16 小時的時差也很恐怖 XD。)

Labels: ,

Blogger yen31/17/2008 9:33 am 說:

如果不是沒啥實力我可能就去應徵了XD

<< 回到頁首

2008/01/16

大預告

星期五會出一篇 (relational) program derivation 簡介,預設觀眾背景是一般的 CS 學生!

--
要趁 scm 老師不在趕快寫… XD

Labels:

Anonymous Anonymous1/16/2008 4:57 pm 說:

http://discuss.fogcreek.com/joelonsoftware/default.asp?cmd=show&ixPost=2347

<< 回到頁首

2008/01/15

Algebraic Information Systems

讀資訊系統工程的東西讀了幾年,大部分人應該都已經發現其中類似的情境、原則、解法很多,一副很適合用代數方法 1 去統合的樣子。我可以想像前述的情境、原則、解法就分別對應到代數系統的假設、定理、和概念定義,然後 Fundamental Theorem of Software Engineering 2 在這個代數系統內就真的成為一個基本定理(after reformulation, of course)。有志之士可以試試看這條進路,當然必須冒著被後世所有資訊系學生在期考時痛罵的風險 XD。

註:

  1. 我會在大三上回顧裡面很簡單地描述 squiggolists 把代數方法運用在 algorithm design 上面的成果,覺得代數和編程沒什麼關係的人屆時可以看看。
  2. 順帶一提,FTSE 這篇 blog 很有趣,例如可以看到那時候我已經察覺到 Curry-Howard isomorphism 了。屆時可以和回顧對照一下。

--
衷心希望我可以修到代數導論(i.e., 不要延畢)XD。

Labels:

Blogger yen31/15/2008 11:43 am 說:

最後一句話對我很大的殺傷力XD

Anonymous Anonymous1/16/2008 8:46 am 說:

記得漢之雲出很久了....

<< 回到頁首

期末即時戰況

已解決:資料庫系統、知識論,各兩小時,這兩科的題目都出得滿不錯。待解決:作業系統(1/16)、圖論(1/17)、宋明理學(1/18)、OS project 3(1/23)、DCL final project(1/24)。

考完知識論,想到 Cartesian skepticism 除了 default-and-challenge 以外似乎有更好的回應方式,論證和以前處理「理性的極限」差不多,慢慢再來兜一套說法。如果這樣說得通,我可能還會連帶接受一種很極端的 direct realism。不過「induction 不可信任」的論證仍然屹立不搖,所以我暫時還是不會把心思放在 empirical sciences 上面 XD。

能解掉 Cartesian skepticism 是很棒的事。就算只是理論上接受它,還是會造成一定的心理負擔 XD。

--
這個星期撐完就會比較好過了 XD。

Labels: ,

2008/01/14

On Agrippan Skepticism and Cartesian Skepticism

這是知識論期末考第二題。梁老師問:

Compare Agrippan skepticism and Cartesian skepticism regarding their similarities and differences, e.g., their arguments, conclusions, structures, scopes, and how serious they are, etc. According to you, which one is more threatening or persuasive? How would you respond to it?

我的回答:

這兩種懷疑論的論證結構都是先要我們接受一個直覺的前提,然後論述各種可能的進路都會導致矛盾,最後得到極端的結論。對於 Agrippan skepticism,這個前提就是「所有信念皆由其他信念證成」,結論是「所有信念都得不到證成」;而對於 Cartesian skepticsm,其主要前提是「我們感知外在世界的唯一管道是感官經驗」,結論則是「所有經驗性的信念都得不到證成」。兩者都是直覺而極端的懷疑論,但質疑的範圍不同:前者質疑一切的知識,後者則侷限於經驗性的知識。

我認為 Cartesian skepticism 較具威脅性。Agrippan skepticism 的前提乍看之下是對的,但稍微多想一點就會發現這個前提很容易擺脫,例如引進 foundationalism 的 basic beliefs。相較之下,Cartesian skepticism 的前提似乎就讓人不得不接受,論證上也找不到什麼漏洞。回應 Cartesian skepticism 最方便的策略大概是採用 default-and-challenge 的證成概念,把舉證責任(burden of proof)丟回懷疑論者那邊,但這麼一來對於 truth condition 的要求似乎就弱了一點。

這題我沒辦法答得很好。期末考還有最後一題談 coherentism,梁老師來不及講,所以叫我們自己回去看,出出來的話助教會放些水。可是我剛剛掃一遍,覺得 coherentism 真是一派胡言,哪來的支持論證啊… XD

--
滿可能是梁老師沒講過的關係 ─ 有沒有在課堂上講過差很多 XD。

Labels:

期末果然到了

可以從最近的一些關鍵字與其密集程度嗅到一點端倪:

  • 紅黑樹
  • 高等微積分
  • cartesian skepticism
  • 紅黑樹 插入
  • 中央車站
  • 微分方程基本補題
  • minimum spanning tree 證明
  • arzela-ascoli
  • 康德倫理學
  • 紅黑樹 實作
  • 中央車站 感想
  • operating system principles 解答
  • 合理可預見的結果
  • 紅黑樹 刪除
  • pumping lemma
  • 離散數學投影片
  • 離散數學 tree
  • suffix trees
  • bellman ford algorithm
  • hierarchy of memory
  • cauchy integral formula
  • lu decomposition
  • bellman ford
  • 計算機組織與組合語言
  • 高微署修(JK 註:放棄得太早了?)
  • 自動機與形式語言
  • linear algebra video
  • bellman ford negative
  • c dijkstra
  • apostol 高微解答
  • pumping lemma 證明
  • assembly push
  • c expression literal
  • all cfg tm
  • rudin
  • 16 bit cla
  • agrippan skepticism
  • 演算法 期末考
  • dijkstra in c
  • decidable language
  • kruskal 正確性
  • database management systems, ramakrishnan 下载

期中期末才有這麼高的學術關鍵字密度 XD。

--
好啦,我明天的知識論期末考還有兩題沒弄出來,先這樣 XD。

Labels:

Blogger Marvelous Pine1/14/2008 4:15 pm 說:

你這是故意提升關鍵字密度嘛

Blogger yen31/14/2008 4:34 pm 說:

所以我最近變高也是一件很正常的事XD

也就是說過完期末考我的page rank應該會變回正常 XD

<< 回到頁首

2008/01/13

PageRank

PageRank 上升到有史以來最高的 3,可參考 Yen3 的 blog XD。

--
進入期末考週,進度緊迫,而且目前有些落後,所以先這樣 XD。

Labels:

Blogger yen31/13/2008 12:03 pm 說:

恭喜喔...我的pagerank會不會是拜你所賜XD

Blogger Marvelous Pine1/13/2008 4:44 pm 說:

我的是2ㄝ!真神奇,google大概瘋了

<< 回到頁首

2008/01/11

能力範圍之外

Patrik Jansson 又加了好多意見,而且我覺得好像一些主要的弱點被打到了,像

  • Patrik 說 idR⊒foldR inductive case 的 pattern matching 很複雜,我在證 isort-der 的時候比這複雜好幾倍,所以就用很多層的 with 慢慢把 pattern 一層一層拆開,不過只好讀一點點而已;
  • permute 精煉成 fold 所用的 combine 本來是直接給定義(因為是參考 R.S. Bird 的 paper),但 Patrik 覺得他比較想看到怎麼為了滿足 fusion condition 而把 combine 的定義湊出來;
  • 如果我們還不知道 derivation 的結果,就用 Agda mode 互動地寫的話,真的會那麼順利嗎?這篇 paper 的證明都是知道結果之後一次把整個 derivation 寫下來,但是真的要一步步地湊一個證明出來似乎有問題;
  • 然後最後一個 comment 我覺得有些酸味… 也可能是我太敏感。

這種程度的問題憑我是應付不來的… 現在只能寄望 scm 老師再變變魔術,把它弄得四平八穩 XD。我愈來愈覺得排在第二位很不安 XD。

--
不知道 scm 老師現在雲遊到何方了 XD。

Labels:

Blogger boon1/12/2008 3:05 am 說:

你好,我在網路上收尋到你的高等微積分筆記,不知道是否可以跟你拿高等微積分的錄音檔???

Blogger yen31/12/2008 3:14 am 說:

這是paper的一審嗎 ?

Blogger Josh Ko1/12/2008 4:50 am 說:

因為錄音檔體積龐大,而且我認為整套釋出應該獲得老師同意,所以不太可能。真抱歉嘍。

PJ 是(目前的)第三位作者 XD。

Blogger yen31/12/2008 6:11 am 說:

有時候,不能太在這個ranking是什麼,我相信,旁人自有見解的

Blogger boon1/12/2008 6:56 am 說:

不好意思,我是你系上學長的朋友,不知道有什麼方式可以跟你聯絡???

Blogger Josh Ko1/12/2008 7:09 am 說:

請寄信到 b94087 at csie.ntu.edu.tw :)。

Blogger boon1/12/2008 8:39 am 說:

OK,謝謝...已經寄出了。

<< 回到頁首

On Foundationalism

這是知識論期末考第五題。梁老師問:

What is foundationalism regarding the structure of justification? Present an argument for foundationalism. Present an argument against foundationalism. According to your evaluation, can foundationalism be defended?

我的回答:

Foundationalism 認為信念分為 basic beliefs 和 non-basic beliefs 兩種。Basic beliefs 不證自明,non-basic beliefs 則直接或間接由前者證成。支持 foundationalism 的論證由 Agrippan skepticism 引出:為了解決無限後退(infinite regress)的問題,唯一的辦法是宣稱信念並非總是由另一個信念證成,而可以是不證自明的,我們直覺上也認為有這種信念。反對者則質疑經驗性的 basic beliefs 如何能由經驗內容證成:信念具有概念性和命題性,如果經驗內容帶來一個「擁有這個經驗」的概念或命題,那麼以之證成的 basic belief 就不再是 basic;反之若說經驗不具有概念性和命題性,則很難想像如何從這樣的知覺推得欲證成的 basic belief。因此經驗性的 basic beliefs 不可能存在。

我認為就這個反對的論證而言,可以為 foundationalism 辯護。若要做這麼嚴格的質疑,我們可以肯定經驗內容會帶來「擁有這個經驗」的概念或命題,然後從經驗內容到這些信念的過程可視為 a priori justified,因為我們直覺上並不會拒絕這樣的過程。如此一來,foundationalism 的 basic beliefs 就是那些 a priori knowledge,與經驗相關的所有知識均由此導出。

一年前的「金次有感」其實有提到無限後退的問題,不過也可能是因為人生只有 finite time 的關係。

--
寫好久…

Labels:

Anonymous Anonymous1/14/2008 12:23 pm 說:

您好,我是同修知識論的同學,一直到今天才發現您有這個部落格。希望大家可以交個朋友,明天一起加油。你的答案都很不錯。

Blogger Josh Ko1/14/2008 1:35 pm 說:

Hi,歡迎歡迎!我算是業餘的,答題其實沒有多深入 :P。不曉得您是哪位呢?我是坐在梁老師右前方那個不太會講話的人 :P。

明天期末考加油啦!

Anonymous Anonymous1/14/2008 5:07 pm 說:

我就是做您右手邊那個笨拙的philosophaster

Blogger Josh Ko1/14/2008 11:23 pm 說:

哇,原來這麼近,待會見啦 :P。

"Philosophaster" 這個字有意思 :P。

<< 回到頁首

課表初排

  • 資訊工程理論基礎.呂學一.二 ABC
  • 計算機系統實驗
  • 計算機網路.逄愛君.三 678
  • 編譯程式設計.薛智文.一 234
  • 音樂作品欣賞二.陳美鸞.四 34
  • 計算機結構.洪士灝.二 678
  • 知識論下.梁益堉.二 234
  • 圖論二.張鎮華.二 1 四 12
  • 資訊理論與編碼技巧.吳家麟.一 678
  • 工程發展與社會變遷.楊申語 et al..四 67
  • 生物多樣性概論.李玲玲.三 34

上面的課剛好可以全排進課表,不過已經 28 學分了,而且體育和軍訓課程都還沒完全出來的樣子,所以(應該)還會變動。雖然星期五完全空下來,可是有好幾門重課。要很努力才行 XD。

另外有門必修課好像在醞釀集體退選,不過我還是暫時先擺著,成氣候再考慮。不然大四衝堂我就完蛋了 XD。

--
沒辦法,新年新希望第二條若要實現就不能混 XD。

Labels:

Blogger yen31/11/2008 8:49 am 說:

感覺不出來你在混啊XD

<< 回到頁首

2008/01/10

Buffer Overflow

這學期的回顧有好多東西要寫,buffer 快滿出來了 XD。

先透露一點:這個學期 projects 做下來,才真正了解到我完全是 theoretician 而不是 engineer,之前我以為只是 theoretician 的成分比較高而已。(Blog 應該要改名了?XD)然後我會把數位系統設計列為資訊系的第三門好課!

--
我就先不打老師名字了,免得被搜尋到 XD。

Labels:

Blogger yen31/10/2008 1:34 pm 說:

sidebar的最下方還是有XD

Blogger Josh Ko1/10/2008 1:40 pm 說:

我是指這一篇 XD。而且下面那個快移掉了 XD。

<< 回到頁首

煙硝味

緊接在悲慘的 AI presentation 後面的是系上緊急加開的說明會。因為(或是隨著)社科院的建築工程,系館旁邊的永久綠地要加開一條寬 15 公尺的馬路,這將會十分貼近系館,嚴重影響師生活動。郭傑出主任和陳俊良老師幾年來在體制內向有關單位溝通討論,但最近被翻盤成對我們很不利的狀況,而且情勢不妙,例如總務處會用「再商議」的說詞把時間拖完,甚至存在那種所有行政組織都有的黑暗壓力使鄰近系所發言都有所顧忌。現在的局面等於是其他受到波及的系所 "somehow" 都被控制住了,我們是唯一的自由反抗基地 XD。昨天開完會嗅到危機,似乎要硬蓋了,老師們沒有辦法,只好開這場說明會讓大家知道狀況,希望大家循「各種管道」給相關人士壓力。(即所謂「資訊的力量」。Everybody applauded this phrase XD.)

我的初步想法:體制外的做法一定要三思。要做下去一定要有很強的理性基礎支持,亦即必須透徹了解整個情況並能說出一番道理。不過我相信老師們應該是覺得體制內的方法快不行了,才會開這場說明會。總之第一步一定是先讀些客觀(或其他觀點)的資料,畢竟牽涉自己系,老師和學生都很容易不小心用不太理性的方式看事情 XD。

--
然後要灌爆誰的信箱再說 XD。


剛剛向 Weijin 解釋,講沒幾句就激動起來 XD。弄這種事情弄到慷慨激昂、熱血上湧,就是危險的象徵,切記。

Labels:

AI Presentation

結果機器人的部份沒做出來… 加上我講演算法的時候講得零零落落,之後又被老師問得僵在台上,豈一慘字了得。下台的時候都快哭出來了…

--
Hope this is my worst talk...

Labels:

2008/01/09

我在做夢?

C++ Primer 4/e 繁體中文版?!

--
先飆車再說…

Labels:

Anonymous Anonymous1/09/2008 3:26 pm 說:

我最好奇的是譯者序XD

誠品也有資料, 看來不假, 只是不知道譯者是不是真的還是侯sir, 搞不好是掛名XD

你既然不要我幫你買, 那就不要流口水 ㄎㄎ

Blogger Fall1/09/2008 6:06 pm 說:

我也驚到了...

Blogger yen31/10/2008 8:55 am 說:

真的還假的,有的話我就要衝一個嘍?

Blogger yen31/10/2008 2:44 pm 說:

一月底就要上架,算是終於等到了嗎XD

<< 回到頁首

2008/01/08

The Probability Wave Algorithm

這個演算法的目標是在同步化的假設下,讓機器人在棋盤狀的世界中決定如何避開眾多守衛的目光抵達終點。守衛每到一個路口就隨機旋轉,每個可能方向的機率相等。這東西弄出來隱隱和量子力學的機率波解釋有所對應,故名之為「機率波演算法」(probability wave algorithm)。假設很多、簡化很多,像我懶得算出精確的機率,所以就用 "likelihood" 去近似。真的要算應該也可以寫個 Bayesian network 或別的去算吧,不過現在沒時間了 XD。

--
這麼簡單的投影片就花了我五個小時,隨機客那份 suffix tree 不知道弄了多久…

Labels:

2008/01/07

小車的宿命

日復一日、年復一年,小車被程式員指使著走過一個又一個浩瀚無垠的冰冷岩石迷宮。
旋轉、前進、旋轉、前進、旋轉、…

這次小車終於生氣了…

--
Moral:愛己所為 XD。

Labels:

Blogger yen31/07/2008 4:12 am 說:

這是你寫的AI嗎 ?XD

Blogger Josh Ko1/07/2008 6:20 am 說:

我手動駕駛的 XD。

<< 回到頁首

回顧預告

感覺上這學期是 "philosophical" 而不是 "substantial"(尤其和神的線性代數相比,他已經完全不愛金次了 XD)。似乎應該隨手做一點筆記,不然到時候寫回顧一定會漏掉一些點 XD。這種想法湧現的情況顯然是很典型的期末症候群 XD。不,不是期末「考」症候群,正常的資訊系學生都要認命做 final projects 的 XD。

  • review & evaluation of courses, as usual;
  • current epistemic position toward sciences, including skepticism about empirical justifications and response to (moderate) empiricism, in support of a priori knowledge;
  • some emerged views about computer science, logic, and mathematics, with a short note on formality of (hand-written) mathematical proofs;
  • appreciation of the work of squiggolists (may be omitted at the last minute since a real squiggolist is watching, which makes me quite nervous XD);
  • observations on my theoretic (instead of engineering) and "pruning" character, with some discussions on the courses offered by NTUCSIE in general, projects I've worked on, and a small complaint on programming assignments in this semester;
  • effectiveness and conflicts of studying.

--
You have to admit the "destiny-of-csie-students-and-professors" quote from cyy is a classic. XD

Labels:

Blogger yen31/07/2008 4:15 am 說:

喔喔,期待 XD

<< 回到頁首

2008/01/06

MPC '08 Submission

第一次玩這個,好刺激 XD。

--
趁 scm 老師不在趕快偷貼 XD。


看不懂最下面那句,查了一下才知道 "corresponding author" 是個專有名詞 XD。

--
"Academic Authorship" @ Wikipedia. 看起來好複雜(好黑暗?)XD。


多查了一點,authorship 實在有夠複雜…幸好我還不用跟這種東西奮戰 XD。

Labels:

Blogger yen31/07/2008 4:12 am 說:

喔喔喔,看起來很讚耶,恭喜恭喜

<< 回到頁首

井繩

半年沒騎腳踏車,今天為了快速買回午餐,騎 Weijin 的腳踏車出門。騎腳踏車果然是身體記憶(?),基本上都沒什麼退化 XD。

--
晚餐就還是用走的了 XD。

Labels:

Anonymous Anonymous1/06/2008 12:04 pm 說:

標題@@?

Blogger Marvelous Pine1/06/2008 1:05 pm 說:

什麼身體記憶= =+ 我有教過你生物吧!!!

Anonymous Anonymous1/06/2008 8:19 pm 說:

是程序型記憶

<< 回到頁首

2008/01/05

雜記

FLOLAC 的眾位老師在討論每週大家一起來 meeting,地點可能在台大資管系。想想其實還滿恐怖的,例如蔡老師說不定就把全部的研究生帶過來,像 FLOLAC 那樣滿場都是自己人(有一半吧?XD),然後每個星期就聽 program verification 就好了 XD。然後地點改在台大資管系好像就少了長途跋涉的樂趣(?),沒有遠足的感覺 XD。(坐交通車和坐遊覽車感覺很像 XD。)

關於 Tim Sweeney 演講的一點感想:scm 老師在 paper 裡面寫「用來介紹 dependently typed programming 的例子常常只是證明一些很簡單的性質,像是串接或反轉 lists 之後長度和原本的 lists 有某些關連…」(這我大致意譯的 XD),但是看完 Sweeney 投影片的一些統計,其實一般程式員迫切需要的不是完整的正確性證明(光一個 insertion sort 就滿難證了 XD),程式語言設計者只要提供很簡單的機制確保像 out-of-bounds array access、null pointer dereference 這種錯誤不會出現在編譯成功的程式裡面,就可以砍殺 50% 的 bugs!感覺又是一條 80-20 法則 ─ 用 20% 的理論解決 80% 的實務問題。

--
意見可能很 trivial 啦,可是有寫下來總比沒寫好 XD。

Labels:

Anonymous Anonymous1/06/2008 7:04 am 說:

>其實一般程式員迫切需要的不是完整的正確性證明...程式語言設計者只要提供很簡單的機制

Indeed! On the other hand, the I/O relation is also merely one aspect of "correctness". It does not cover things like efficiency, deadlock-free, etc.

When it comes to correctness we are always doing an approximation. Sometimes a simple approximation (array bound checking, etc) would be sufficient. In the next phase of our research, I would like to look at these aspects too.

Heading to PEPM... see you guys 2 weeks later.

<< 回到頁首

On Perceptual Experience and Empirical Beliefs

這是知識論期末考第四題。梁老師問:

According to you, what is the relation between experience and empirical beliefs about the world? Can perceptual experience provide justification and knowledge? If yes, how? If not, why? Give an example to support your view.

我的回答:

我認為所有的 empirical beliefs 都必須由感官經驗證成,而且只能由感官經驗證成,因為感官經驗是我們探知外在世界的唯一管道。若要辯稱感官經驗能提供客觀證成,就必須通過 Cartesian skepticism 這一關,而 Cartesian skepticism 的論證不可能被駁倒。若對於知識的證成採取 prior grounding requirement 的意見,要求以客觀證據證成信念,那麼就無法阻擋 Cartesian skepticism 所提出的質疑:Cartesian skepticism 的論證指出感官經驗與外在世界的實況之間有 underdetermination 的問題,而使感官經驗無法提供客觀證成。但如果採用 default-and-challenge 的證成概念就能避開 Cartesian skepticism,此時感官經驗確能提供 personal justification。

舉個例子:古人觀察到地面是平的,所以宣稱大地是平的。此時懷疑論者可以說大地其實可能是極為龐大的圓球、角錐、或是多面體等等,只是我們所處的局部足夠平滑而看起來像是平的。於是「看到平地」的感官經驗無法為「地平說」提供客觀證成。但是地平說的支持者還是可以採納 default-and-challenge 的證成概念而相信大地是平的,直到懷疑論者能夠提出反證為止。

我舉這個例子其實有點諷刺 empirical sciences 的意味 XD。

--
這題出得夠狠 XD。

Labels:

2008/01/03

Algebra of Programming

看隨機客出的一堆最佳化問題,我現在很強烈想讀《Algebra of Programming》,定理套一套就套出結果 XD。圖書館買了兩個月還沒出現,果然非常難買。當時推薦的另一本《Introduction to Functional Programming using Haskell》顯然就好買得多,已經到第一個預約者手中了。

--
不過顯然得把慾望壓到寒假 XD。

Labels:

Anonymous Anonymous1/04/2008 8:37 pm 說:

軒轅劍外傳-漢之雲 原來上市了XD

Anonymous Anonymous1/05/2008 4:28 am 說:

The Apple Developer Connection is pleased to announce that ADC Memberships, ADC Technical Support Incidents, and the ADC Monthly Mailing can now be purchased through the newly launched Apple Store online in Taiwan.

For hardware purchases, ADC Premier and Select members should continue to visit the ADC Hardware Purchase Program page.

<< 回到頁首

The Next Mainstream Programming Language: A Game Developer's Perspective

這是 POPL '06 的其中一場 invited talk,scm 老師很久很久以前就介紹過了,但我到剛剛才找來看 XD。其實我先前不認識 Tim Sweeney,因為不太玩遊戲 XD。他可真是會講,光看投影片就很有感覺。裡面有一些現實得讓人熱血沸騰的數字,什麼幾十萬行 C++ code、每張畫十萬個點、以 60 fps 的速度更新一萬個物件之類的。或許也可以形容為怵目驚心?XD 投影片最後預測 2009 年 game programmers 所面臨的「惡劣環境」:CPU with 20+ cores、80+ hardware threads、大於 1 TFLOP 的計算馬力,然後總結

If we are to program these devices productively, you are our only hope!

這種話對於做程式語言的人應該很熱血很激勵吧?XD

--
Game programmers 真的是不容易 XD。

Labels:

Blogger yen31/03/2008 5:54 pm 說:

Game Programmer是神的職業吧,不過我想做的是CPU MicroStructure Design,這也非常難 XD

Anonymous Anonymous1/04/2008 5:05 pm 說:

Game Programmer 我完全贊同是神的職業lol

雖然沒玩遊戲是個好藉口, 但不認識 Unreal Engine 也該認識神; 難怪柯雞是雞XD

Blogger Mr. BigCat7/28/2009 3:57 am 說:

現在2009年了,我的職業是弱弱的Game Programmer

我應該怨嘆環境不夠惡劣嗎? XD

<< 回到頁首

大危機

(基本上)和期末壓力無關,而是在這個學期形成的一些思路造成麻煩。(但期末壓力很有可能是助燃物。)一學期一度的回顧已經差不多成形了,裡面的一個主要部份會用來陳述這個危機。

--
說不定今晚就把回顧寫出來了。

Labels:

2008/01/02

蹺課

昨晚填期末教學意見調查,發現這學期蹺課次數還挺多的 XD。

  • 作業系統 2 次:重感冒、赴高中宣傳。
  • 數位系統設計 1 次:拔鋼釘。
  • 人工智慧 1 次:拔鋼釘。
  • 資料庫系統 1 次:做 DCL Lab 5。
  • 圖論 0 次。
  • 知識論 0 次。
  • 宋明理學 0.5 次:拔鋼釘但有請假。

--
不過也有不少老師停課或調課過一、兩次 XD。

Labels:

Blogger yen31/02/2008 3:38 am 說:

不到我的零頭(茶)

Anonymous Anonymous1/02/2008 11:59 am 說:

連百分之一都不到XD

<< 回到頁首

2008/01/01

On Direct Realism and Argument from Illusion

這是知識論期末考第三題。梁老師問:

What is Direct Realism with regard to the relation between perceptual experience and the external world? What is the Argument from Illusion against direct realism (including the first and the second stage)? According to your evaluation, how successful is the argument?

我的回答:

Direct realism 認為外在世界存在,且至少某些時候我們的心智直接感知外在世界。Argument from illusion 第一階段宣稱在不正常的感知情況下我們並非直接感知外在世界,接著在第二階段把這個結論推廣到所有的感知情況。以幻覺(hallucination)為例,argument from illusion 第一階段指出我們所經驗到的幻覺於外在世界中不存在,所以這時我們顯然不是直接經驗外在世界。第二階段接著論證,假若我們在某些時候直接感知外在世界,此時我們所經驗的對象和幻覺相當不同,因此這兩種經驗應該有些不同。但是幻覺和正常知覺從主觀上無法區辨(subjectively indistinguishable),第一階段又已說明幻覺並非直接經驗外在世界,所以知覺正常時我們也不是直接感知外在世界。

我認為 argument from illusion 的第一階段可以接受,但第二階段就有瑕疵。第二階段裡面使用的一個前提是本質不同的東西帶來的經驗也不同,但這不一定為真。直接實在論者大可宣稱幻覺帶來的經驗恰好能和外在世界直接提供的經驗一模一樣。

其實我比較希望支持 indirect realism,但看了這麼多反對 direct realism 的論證然後都發現有瑕疵之後,立場有些動搖,覺得 direct realism 或許真的有機會殺出一條生路。Direct realism 和 Cartesian skepticism 之間有衝突,我想或許可以從這層衝突找到更有力的論證反對 direct realism。

--
答第二題可能需要先看看 foundationalism 和 coherentism,所以先跳過。

Labels: