每特17劃

及時當勉勵 2004/06/07

大於與小於50000的差異 — 2007-01-28

大於與小於50000的差異

在 zhcon 的 basefont.cpp 中看到這一段程式碼時, 心中突然有了些感觸。

下面所記載的程式碼,主要的目的是判斷在字型檔大於 5000 bytes 時,就改採用 memory mapped 的方式來配置,因為 CJK 所用的字型大部分大於這個容量,所以得另外作一些處理。 而這些細心的念頭, 是在 FreeType 的 PCF部分,還有 libXFont 的 PCF中找不到的。 想當然爾,國外地區的 Hackers 只需要用到 ASCII 的字型,誰會去關心這樣的細節呢?

因此,對於這些 CJK 的基礎建設,我們更應該主動去作才是。

若我們不作,還有誰會來作?

    if (mBufSize > 50000) {
        //hzfont use mmap
        mpBuf = (char *) mmap((caddr_t) 0, mBufSize, PROT_READ,
                    MAP_FILE | MAP_SHARED, mFd, (off_t) 0);
        if (mpBuf == MAP_FAILED)
            throw (runtime_error("error in mmap gbfont!"));
    } else {
        //ascii font read to buffer
        mpBuf = (char *) new char[mBufSize];
        unsigned nread = read(mFd, mpBuf, mBufSize);
        if (nread != mBufSize)
            throw (runtime_error("error in reading asciifont!"));
    }
你要慢跑還是漫跑? — 2007-01-24

你要慢跑還是漫跑?

剛退伍的我,常有一種很深的學習焦慮感,尤其在希望早點獨立自主的自我期望下,凡事都急求速成,什麼東西都沾一點,卻又不夠深入。 弄到最後,一件都沒有好好的學成,心情也跟著低落。

逛 Blog 時碰巧讀到 Teach Yourself Programming in Ten Years 這篇文章。 作者提出了對人人學程式設計急求速成的反問,並用他的經驗告訴我們,那些求速成所花的時間, 根本就不夠養成一個真正的程式設計師。 網路上形形色色的成果展示,或是創意作品,也許只有短短幾分鐘,但可知作者在背後花了多少的時間和心血,才能達到這樣的能力?

正所謂,「台上十分鐘, 台下十年功」。

之前讀到李四端對於新聞工作的感想 你要新聞慢跑還是漫跑?,也是心有所感. 或許在汲汲騖騖的生活中,也要找機會停下腳步來想一想,自己是否真的熱愛所投身的工作、事業? 還是只是漫不經意的走馬看花。

最近洽巧讀到一篇值得一看的程式設計學習的導引,How To Become A Hacker. 除了呼應了 "Teach YOurself Programming in Ten years" 所表達的觀念,也鼓勵讀者多學習性質不同的程式語言,並嘗試以不同語言的性質來思考問題。

小小繞了一圈操場,才發現真正要走的路,還很長很長…

Nerdy(宅) — 2007-01-23

Nerdy(宅)

我不太喜歡看電視, 覺得看一些節目很花時間. 但如果把瀏覽器比作電視機, 把滑鼠比作搖控器的話. 會發覺其實所做的事是很像的, 只不過是換成自已熟悉的節目而已.

Wiki和Blog興起之後, 網路上的節目變得越來越多. 最常遇到的情況像是:

"用google查個關鍵字ABC吧..."
--> (開firefox連google)

"這個網頁看起來不賴."
-->(點選)

"嗯, 這個wiki的內容很不錯"
-->(開Tab)
-->(加Bookmark)

"唔, 這幾個文件似乎都引用到這個Blog?"
-->(連blog)

"哇, 果然是強者!"
-->(加Bookmark)
-->(逐一點選blog文章)

"順便看看強者blog提供的連結吧..."
-->(連wiki...)
-->(連blog...)

"文中介紹的DEF是什麼東西!?"
-->(loop to the beginning)
....

幾個時辰過後, 接踵而來的不是獲得知識的喜悅, 反而是喘不過氣來的無力感與失落感. 該查的關鍵字沒查完, 什麼事都沒作到, 因而感覺到失落. 而網路逛得越久, 越覺得網路世界是如此的龐大, 而自已卻如此的渺小. 這份無力感更是讓人想逃避, 放空一切.

宅.

關於PCF的連結 — 2007-01-05

關於PCF的連結

在網站搜了一下,才發現 PCF 的資料並不如想像中的那麼多,找到的網站,幾乎都是格式轉換的用法,很少有提到PCF的規格和程式碼,在 wikipedia 甚至沒有專頁的介紹。

少歸少,還是找到了一些不錯的技術文件如下:

  • BDF的規格書PCF的規格 眼尖的人可以發現這裡可以找到大多數字型檔的規格書: Font File Format,這些資料是 FontForge 用心整理的, 對字型工作者提供莫大的幫助,而主頁有放正體中文翻譯的文件教學,內容很棒!
  • BDF&PCF的深度文件 (日文) 因為是日文,所以從中得到的資訊很有限,不過有介紹到兩個字型的資料結構,內容相當深入,搜一下 Google,發現作者多賀奈由太就是寫 hexadecimal dump tool(hex) 的人,難怪…
  • Unicode fonts and tools for X11 這篇文章也介紹了不少字型的資訊,尤其在最後兩三章提供了不少關於字型工具的聯結,很有幫助。
  • QPF(QT Preredered Font) 隨手逛到 Qtopia 也有自己的字型檔,不過他也支援 Freetype 的字型引擎,這讓我想到 Freetype 能否進一步輕量化,提供 Embedded System 高品質的字型引擎?不過文中也提到 Unicode 字型最大的弱點:
    • All supported fonts use the Unicode character encoding. Most fonts available today do, but they usually don't contain *all* the Unicode characters. A complete 16-point Unicode font uses over 1 MB of memory.

寫到這裡,沒想到查個文件, 東點點西點點,就花了一個下午的時間。

Planet OrzLab —