大於與小於50000的差異

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

下面所記載的程式碼, 主要的目的是判斷在字型檔大於50000Bytes時,就改採用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!”));

}

你要慢跑還是漫跑?

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

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

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

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

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

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

Nerdy(宅)

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

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

“用google查個關鍵字ABC吧…”
–> (開firefox連google)
“這個網頁看起來不賴.”
–>(點選)
“嗯, 這個wiki的內容很不錯”
–>(開Tab)
–>(加Bookmark)
“唔, 這幾個文件似乎都引用到這個Blog?”
–>(連blog)
“哇, 果然是強者!”
–>(加Bookmark)
–>(逐一點選blog文章)
“順便看看強者blog提供的連結吧…”
–>(連wiki…)
–>(連blog…)
“文中介紹的DEF是什麼東西!?”
–>(loop to the beginning)
….

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

宅.

關於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.

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