Tag: 795da3

  • Not Again, MingLiu!

    長話短說,從 FreeType 2.4.4 (2010-11-28 release) 開始,只要編譯的時候有啟用 BCI (Byte Code Interpreter) ,新細明體就不應該會破掉了,只是因為一些原因 (下面詳述),一直到 2.4.5 (2011-06-24 release) 才算是完全解決。 這個問題牽扯到許多有趣知識,所以我決定作個筆記以免以後忘掉。 TrueType 首先是一些名詞解釋,TrueType 是常見的字型 (font) 格式,由 Apple 發展,後來被 Microsoft 採用並發揚光大;雖然沒有經過任何國際組織的標準化,在當時儼然已經成為業界標準 (de facto standard)。 TrueType 使用的檔案格式又稱為 sfnt 格式,由許多不同的表格 (table) 組成,每個表格由四個字的標籤 (tag) 表示,其中我們最關心的是 glyf 這個表格,因為所有的字符 (glyph) 都儲存在這個表格內。每個字符僅僅紀錄了形狀,要知道某個編碼的某個字元 (character) 是對應到哪個形狀,還要透過 cmap這個表格來查詢;也有一個字沒有相對應的字符,或是沒有任何字對應到某個字符的情況。 參考資料: Hinting (Instructing) TrueType 是一種外框字型 (Outline Font),也就是說每一個字符都是以向量圖形的方式呈現,理論上可以在各種不同解析度下呈現相同的形狀。 但是越是在低解析度的時候,由於可用的像素較少,越容易遇到邊界的表達能力問題,如右圖的 M 字,若沒有對齊像素點的話,呈現出來的圖案就會比較瘦長且左右不對稱,如果稍微向右移動並加寬一點,呈現出來的圖案就會比較接近原本向量圖形所預期的形狀;這個動作正是 Hinting […]

  • Blog Redesigned

    最近又把 Blog 整頓了一番,目標是改用靜態網頁。使用靜態網頁搭配一些網頁樣板程式不禁讓人想起最初使用 MT 來寫 Blog 的時候,不同的是現在有像Disqus 或是 IntenseDebate 這樣的動態留言服務,讓網頁可以完全的只提供靜態內容,不用多一個 cgi 程式來提供留言功能,這隱然成為最近流行的網頁設計方法之一。 轉換的過程中學到一些新東西,紀錄於此。 網頁編譯器 現在網頁是用產生的,它是大師 Joey Hess 的作品,大師稱它是一個wiki compiler,可以透過各種規則把網頁的原始碼 (可能是 markdown 的格式) 轉成 HTML 網頁。因為強大的 inline 規則以及各式各樣的外掛程式,也有許多人把 ikiwiki 當作Blog 的平台。 轉換的過程其實滿順利的,因為舊的 Blog 都是以 Markdown 寫成,換到ikiwiki 的 Markdown 引擎只需要一點點修改。要感謝 WordPress 可以把資料庫匯出成 XML 格式,轉換只需要簡單的 XSLT 就完成了,我用的XSL 是參考這裡修改,去掉Comment 以及更新 meta的格式而成。 改用文字編輯器來寫 Blog 後,會習慣在 72 行的地方換行,但是在瀏覽器中只要換行就會多一個空白,以前寫網頁的時候遇到中文都要小心的換行才不會讓不該空白的地方出現空白,也不能打開 Emacs 的 auto-fill […]

  • Display VCS info in prompts

    通常 VCS (Version Control System) 都會在工作目錄底下藏一些特殊目錄用來儲存資訊,如 .svn .git .hg 等,因此我們可以在 shell prompt 上動一些手腳,當我們進到 VCS 工作目錄時,自動顯示相關的訊息在 prompt 上。 而 zsh-beta 4.3.6-dev-0+20080921-1 內建了由 Frank Terbeck 開發的 vcs_info 子系統,可以自動偵測 bzr, cdv, CVS, darcs, git, hg, mtn, p4, svk, svn, tla 等多種 VCS,並設定相關的環境變數可以顯示在 prompt 上。 我的 prompt 設定如下 詳細的設定請參閱 zshcontrib(3) GATHERING INFORMATION FROM VERSION CONTROL SYSTEMS

  • Xorg 1.4 XInput Hotplug

    Xorg 1.4 開始支援 hal based 的 xinput hotplug,也就是說滑鼠跟鍵盤這些設備可以拔來拔去而不用在 xorg.conf 裡面設定,再加上越來越多 driver 可以 auto-configuration,xorg.conf 裡面的東西越來越少了。 xorg 的 evdev driver 是利用 linux kernel 的 evdev 支援,來使用滑鼠、鍵盤等多種設備,我的 Logitech V450 就一定要用 evdev 才能支援所有的按鍵。 無奈 Debian Sid 中的 Xorg 以及 evdev 都非常的新,但是一些升級的配套措施跟文件跟不上,導致最近發生許多問題,相關的 bug report 有 #443292、#442316。 今天終於把滑鼠鍵盤都設定好了,關鍵在於 hal 的設定跟 gnome 的設定。 首先是設定 hal,因為 hal 預設只設定了使用 evdev,但是沒有顧慮到非使用 us layout 的人,導致升級之後鍵盤 layout […]