耀賢's profilePhotosBlogListsMore Tools Help

Blog


    August 31

    研究 functional database

    我想要看一下 functional database 和過去學的 RDB 與 OODB 差別在哪裡. 找了一找,覺得關鍵詞真不好下,因為 functional 這個字在生技研究蛋白質折疊也很多使用.

    Fischer, Sebastian 三年前從博士論文就是談 functional database 了. 讀了他一篇研討會文章 "A functional logic database library" 實在看不懂最初的資料庫表達方式:

    prime :: Int -> Dynamic

    prime persistent "db:currydb.primes"

    看起來不像是一般所見的 FP 程式. 而且所使用的 data storage 還看不出所以然. "db:currydb.primes" 字串意思是一個資料表, 在資料庫 currydb 底下有資料表叫 primes. 但是這個字串適用在哪個儲存體呢? (這方面查資料也不好查, Curry 這字搜尋結果大都是咖哩餐廳.)

    同一篇文章內比較看得清楚的是實作 SQL. 而能做出 SQL 的表達法就差不多了,我想大概是這樣子吧?

    外留

    今天自己偷偷在外露宿, 地點是根本很熟的地方: 文化大學. 晚上大概就在無休的自習室與同樣無休的便利商店之間來回走. 早一點的深夜時候, 還覺得原來學校的晚上那麼亂, 在乾淨的階梯道有人吃東西的瓶罐與包裝隨便擺地上.

    清晨時, 再走出來才覺得有一種說不出的自在.

    稍微天亮了.

    August 26

    商務會議

    下午參加了一場誤以為是雲端運算的會議. 參與之後只覺得太可怕了. 原來那只是一場產品發表會. 而雲端運算四字差不多是一種「梗」了.

    August 21

    HappySlip威力再起

    小姐妳真是夠了...

     

    回去學校一下...

    繼上次發現學校電腦與無線網路都已經「結帳」了之後,回去學校一下,發現圖書館仍然可以憑學生證入館. 當然,已經不能借書了,不過有一張不受在學限制的閱覽證(我的學生證)就夠了.

    想找一些邏輯與理論的書,不過學校的課程在這方面很缺,圖書館也少有這方面的新書.

    August 19

    太多訊息我頭暈

    今天晚上得到太多資訊,我覺得很昏.

    超好的朋友丟給我超猛烈的巨型爆彈,炸得我暈頭轉向的. 是很熟很好的朋友,所以要準備非常豐厚的大禮了. 基本上是恭喜了,雖然我頭很暈.

    很小的學妹剛畢業,上個月網誌還提到還沒找到工作. 就想偷偷幫她找一些徵才訊息. 只靠104太不夠了. 不過我得當蒙面俠,匿名塞訊息給她,因為他們不知道我知道他們網誌呢... 但另我驚訝的是,她同學都很快有工作了,很順利呢!

    去台大總圖印一些AoP頁面來看,真的很有趣呢!

    August 17

    安裝OBJ3

    作業系統: Ubuntu 8.04 LTS

    OBJ3版本: OBJ3-2.10a1

    相關工具: build-essential tetex-bin gcl lynx bison flex cl-readline

    安裝步驟:
    1. 把OBJ3-2.10a1.tar.gz放在適合的目錄並解開. tarball沒有將檔案收在一個目錄,要自己安排一個目錄.

    2. 在環境變數加一個lisp_compiler: export lisp_compiler=/usr/bin/gcl

    3. 進去OBJ3-2.10a1.tar.gz解開放置的根目錄,執行make.

    執行步驟:
    1. 以root登入: sudo su -

    2. 執行echo 1 > /proc/sys/vm/legacy_va_layout

    3. 登出root帳號: logout

    4. 進入OBJ3-2.10a1根目錄的bin子目錄,執行obj3-gcl,就是互動命令介面了.

    --
    其餘是使用問題.

    proof of imperative program

    讀到Grant Malcom用OBJ教程式證明的文章,太有趣了.

    August 16

    .

    因為不想被悶死,跑去學校讀自己的東西. 突然想到要去台大總圖找AoP,當時已經接近傍晚.

    去了台大總區,卻發現打烊了. 在黑暗的校區走一圈之後,發現那個地方竟然沒有風. 真不可思議.

    談談置入行銷的部落格

    首先我要講,置入行銷部落格的好處與壞處是二回事. 在此我要講它的壞,不代表我否認它的好.

    大學時期我資管系有個bbs,我們在上面喜歡閒談. 談著談著,有一天突然冒出了一個顯然是老師的代號. 後來,不管我們在bbs閒談什麼,課堂上總是有老師相對應認真回應的言語. 當下我覺得非常無聊,因為bbs對我們來說是生活,而不是屬於老師的管理工具. (若逼到我們一點話都講不得,可是會讓人從內心發起暴動的!)

    我想,許多學管理與實作管理的人是不是把世界看得太簡單了. 世界原本是為了它自己而轉,但為了管理的目的,有些人會將原本客觀旋轉的世界認為是該為他們服務而旋轉. 認為歸認為,實際上,客觀存在不會因為你的處心積慮而改變為你的專屬存在. 而且,許多自然存在的客觀事物,不是你能管的. 針對前面bbs與老師的例子,我認為老師許多時候做一些管制動作,只是因為自己不愛聽某些言論而管,而這種叫人不敢再講心聲的管理形式有意義嗎?

    基本上,我對企業部落格沒有好感. 在其中有太多刻意操作的因素了.

    所以,在這個個人空間,我明確地聲明這是屬於我的個人空間. 今後不管我參與了哪個職場機構,我自己的個人空間並不會因此而變成哪個職場的個人空間. 我的存在並不是因為哪個企業賜福或給錢而存在. 我需要工作是一回事,我存在是另一回事. 二者不能混為一談.

    而至少,在我的個人空間,不會用任何刻意經營的方式去建一個聲勢王國. 因為我徹底討厭做這件事情.

    也許有人會說,趨勢如何如何. 但是,趨勢與我個人無關; 我有個怪癖,趨勢往哪裏走,我總是會往反方向走. 企業如何又如何,不干我這個人的事情.

    我的基本看法是,客觀的存在不能不被尊重.

    August 13

    安裝F sharp for visual `studio'

    Visual studio 2008 express版都沒辦法掛載F sharp,所以要參考一下這篇blog文章.


    試過F sharp之後覺得很驚訝,這只是把ML/OCaml語言搬動到.Net framework而已嗎? 能不能跟.Net各種東西整合... 再研究.

    練習rpc

    今天試著練習原始型式的rpc,就是在Linux寫c程式做rpc. 參考資料是網路來源不明的手冊,名為remote procedure call programming guide. 但不確定是不是相容版本,手冊所提的是unix. 我試著呼叫rnusers函數,但編譯之後,無法連結,ld告訴我沒有看到rnusers函數的定義. 機器是學校的主機,我不知道學校主機軟體開發工具安裝的情況,也不知道或者究竟是unix的rpc手冊與Linux不相容? 有點煩. 於是,練習中止.

    應該把我手邊的Advanced Programming in the Unix Environment拿出來看了.

    August 11

    台中行記

    今天第一次隻身去台中,為了在微程式資訊與老闆會面. 高速鐵路站和台中各處建築留給我很好的印象. 建築規模可以蓋得又大又便宜,相較於台北,台中算是樂土.

    會面一談之後有很深的感悟. 尋求前景的公司並不安於當前能夠談成的交易,而是要預先找到未來能夠再接洽完成的生意; 並不只想在本地賣得好, 而是更希望突破國際市場. 在公司, 上對下, 下對上, 和內對外, 意念的傳達與行銷一樣重要. 我學到了不少功課.

    --

    台中人比台北人熱情.

    August 09

    離校

    辦了離校差不多一週了,回去想用電腦掃描資料,卻發現所有電腦資源都已經跟我沒有關係了: 電腦帳號已過期, 無線網路無法登入. 看樣子,只要畢業了,所有的資源都要自己花錢了. 這時候在去學校,就好像是去一座山一樣,什麼資源與服務都沒有了.

    雖然是巴不得快點離開學校,但現在發現已經真的是局外人了,反而有一種惱怒感.

    就這件事所得到的印象,我覺得,一間學校給人的感覺是吝嗇或是大方,就在這些小事上顯示出來吧! 學校感覺起來真是吝嗇,或許電腦多容納一個畢業後的帳號會比較耗電,但無線網路開在整個校區範圍,並不會因為多一個帳號登入就多耗資源. 我覺得,學校「結帳」真是挺快的.

    不過,我有一些資料要傳給學校某部門. 但今天之後即使在學校也無法使用無線網路,而在學校範圍之外又受到校外存取權限的管制,無法使用FTP,該怎麼做呢? 我實在不知道了.

    August 07

    Erlang試驗

    試著用自己電腦做區網,跑個Erlang網路程式範例,卻沒辦法成功.

    用電腦連接ADSL的網路線將二台電腦相連,並設定192.168.*.*的IP位址,都成功.

    將二台電腦的 /etc/hosts 設定為彼此認識名稱,都成功.

    /etc/hosts.allow 與 /etc/hosts.deny 我很不清楚該怎麼設定, 寫 ALL: <對方電腦名稱> 可以嗎? 實在不知道.

    然後跑起Erlang程式,送訊息,接收端得到下列文字:

    =ERROR REPORT==== 7-Aug-2008::23:12:46 ===

    ** Connection attempt from disallowed node 'mobile@laptop' **

    是怎麼disallowd,還搞不清楚...

    Erlang與XMPP

    今天為了未來鋪一點路, 閱讀XMPP與Erlang, 順便看了rpcgen的文件.

    XMPP是以XML為主的即時訊息通訊協定, 實作就是幾年前紅了的Jabber.

    Erlang, 帥啊! 是函數程式語言, 並內建了concurrency的功能. 寫網路程式很快. 也許可以拿來給我那些做Grid研究的學弟們一些示範. rpcgen也是個好工具, 以前寫網路程式寫得很累, 早知道拿這個東西產生一下二端的程式碼就好了. Unix Programmers' Supplementary Guide提供了一些資料, 也有Remote Procedure Call Programming的說明.

    閱讀生活

    最近生活中最大的感覺是,只有在傍晚天色開始暗了,才有活著的感覺. 太熱了.

    閱讀方面,我不敢再急著東撈西撈資料了. 雖然都有讀的動作,但整理資料是一回事,讀書是另一回事. 我需要有效的閱讀,但對於眼前的大量事物,有一種不知道從哪一段開始爬起的感覺.

    因為昨天看到Joshsoft的一段狂呼,我認得了point-free這個詞. 後來在Jemery的一篇文章中看到point-free和pointwise這些詞,都不知道它們都指些什麼了. 於是,才特別閱讀它們的網路註解. 我以為point-free是一種大家都知道的感覺,不必詳述. 其實大概是明示了之後,在上頭才能夠細談一些要緊的性質吧.

    另外,我看一篇文章談分散資訊系統的操作語意,基本知識的段落寫的是category theory. (Wow!) 很有趣. 或許一些其實很難的東西在它簡單的部份都會看起來簡單而有趣.

    Cateory theory,我看了覺得是數學上描述事物的方式,比Java和object orientation的描述更廣義,或更完整. 一個category C是包含了:

    |C|, objects, 包含許多物件.

    ||C||, morphisms(怎麼稱呼呢?型,或類?), 包含許多物件關係.

    _;_: ||C||x||C||->||C||, composition, 二個morphisms可以組合成另一個morphism.

    1_c, identity, 對一個c in |C|, 至少存在一個morphism為1_c. (1_c的1應該是1,2,3的1,而不是k,l,m的l吧;我應該沒看錯.)

    ∂_0, ∂_1: ||C||->|C|, 二個partial function, ∂_0從一個morphism抓出來源端object, ∂_1則抓出目的端object. 若有個morphism f: a->b, ∂_0(f)=a, ∂_1(f)=b. (Partial function ∂符號發音我不會唸.)

    1_c;f=f, g;1_c=g for each c in |C| and f, g in ||C||.

    f;(g;h)=(f;g);h) for all f,g,h in ||C||.

    Category的一個例子是集合Set,其中|Set|是許多的集合,||Set||則是許多的函數. 對f, g in ||Set||, f;g也可以寫成 g。f. (看到這個例子,突然覺得清楚多了)

    另外,也可以從partial order建立category. 若有個(C, <=)是partial order, 從其中建立的category C'為,|C'|包含了存在於C的objects,||C'||則是(a,b), a, b in |C'|且a<=b. 對C'存在相對的category C'^op,包含所有存在於C'的objects,而 f: a->b in C'^op iff f: b->a in C'.

    這邊還看得清楚,但後面再講functor F=(|F|,||F||), |F|: |C|->|D|, ||F||: ||C||->||D||, 就開始覺得混亂了. 我猜,這裡談的functor跟前面的category,就是second order與first order的關係吧.

    --

    寫這些,算是用默寫的方式做複習.


    August 03

    Word sucks

    現在還在用Word調格式, 而二年前讓我痛苦不堪的事情正在重演.

    只能說, Word真的是個很爛很爛的排版軟體. 在其中竟然可以作到調整A段格式時, 其他無關段落B, C, D, ...等等無預警地連動, 偷偷調動格式. 於是, 在調整的過程中, 反覆地看著A段調整完, 轉到B段卻發現亂了, 又調整好, 再轉到C段又發現再亂......

    我正在想著, 在學校的那些以Word格式為傲的人, 究竟多麼無知.

    目前正在排版, 調來又調去, 根本就不知道下一步Word會再怎麼亂搞. 我覺得這個軟體只是假裝專業而已. 雖然抬頭工具列的樣式下拉清單有一些簡略的樣式管理功能, 若你傻到相信並依賴它的管理, 當它混亂時就會讓你哭了.

    Equation Editor則別說了. 只有GUI, 談不上便利, 公式多了仍只能用滑鼠點, 根本是虐待使用者.

    August 02

    Word方程式編輯器...

    是我碰過的最糟的東西.

    這種該有強大功能的工具, 為什麼沒有API? 讓Equation Editor讀一下語法, 轉換成式子, 這樣多好?

    用滑鼠點真的很好嗎? 有一百個式子就是要用滑鼠做一百個式子的動作, 根本是...

    而且公式的文字大小設定是在方程式編輯器中獨立設定的, 如果沒有事先想到, 事後就要面對一大堆修改字體大小的工程. 不知道設計者在想什麼, 只是把一些功能放在一起, 假裝它們是一個整體.

    目前我還在用這種東西編寫公式. 基本上, 我快瘋了...

    August 01

    我想我也該檢討自己

    這次論文格式調整的事情,一半的部份也該檢討我自己. 格式手冊中的確隱含地規定了要用Word排版,根據Word排版情況審核.

    用LaTeX闖Word關,本來限制就比較嚴苛. 在這種情況下,若我真要用LaTeX文件闖關,應該要做得比Word文件更好. 沒有做得更好,是努力不夠. 要用LaTeX闖Word關,關鍵在於是否對Word排版表現與行為精通. 的確,我真的不明確知道Word排出來是什麼樣子,用LaTex怎麼苦排也無法達成目標.

    我仍不後悔使用LaTeX. 不過在流程上造成阻礙,的確是我感到遺憾的.

    聽說以前也有一些用怪異格式闖關的,跟我一樣,都是勇者吧. 我覺得LaTeX的使用者就是專產勇者,就好比Linux或Mac的使用者對抗Windows族群一樣.