2004-05-28 23:38:46

The Art of Unix Programming, plucker version

This is a good book written by ESR. The original URL is http://www.catb.org/~esr/writings/taoup/html/.

I made a plucker version of this book. It is placed at here. Fell free to fetch it. :)

由 plasma 於 11:38 PM 所發表 | 迴響 (4)

2004-05-20 17:55:16

ECB, Emacs Code Browser

今天在 FreshPorts 上看到有一個叫作 ecb, Emacs Code Browser 的東西更新了.

很好奇, 這是什麼東西呢?

先連到網站 去看看. 由介紹跟畫面擷圖的部份來看, 這是個把 Emacs 變成像 Visual Studio 一樣, 顯示目前編輯中的檔案所在的目錄, 以及該目錄內的所有檔案列表, 再加上目前編輯檔案的結構 (例如副函式, 變數, 物件結構). 還有曾經編輯過的檔案與編譯結果.

在 FreeBSD 上的安裝是相當地簡單:

cd /usr/ports/devel/ecb
make install clean

然後在 .emacs 裡加上

;; Enable ECB, Emacs Code Browser
(add-to-list 'load-path
             "/usr/local/share/emacs/21.3/site-lisp/ecb/")
(require 'ecb)

不過我的 .emacs 有開 Folding Mode, 在稍後起動 ECB 時, 會因為要寫入 Emacs 的 customize 資料而導致內容毀損. 要讓 Emacs 載入它時不要進行 folding, 得在檔案第一行加上:

;; -*- mode: Emacs-Lisp; folding-folding-on-startup: nil; -*-

重新啟動 Emacs, 然後以 M-x ecb-activate 啟動 ECB 即可. 上方選單會多一個 ECB 選項.

一開始的畫面是分成左右兩半. 左邊是 ECB 視窗, 右邊是編輯視窗. 左邊由上到下分為四個部份: 目錄 (視窗名 directory), 目錄下的檔案 (視窗名 source), 檔案內的結構 (副常式, 變數等等, 視窗名為 method), 以及編輯過的檔案歷程 (視窗名為 history). 要跳到這幾個視窗, 可利用 C-c . g 再加上視窗名的第一個字母, 如 C-c . g d 可跳至目錄視窗. 要跳回編輯視窗, 則是 C-c . g 後加數字鍵.

如果不要顯示 ECB 視窗, C-c . l w (字母 L, 不是數字 1) 可關閉. 再輸入一次即可開啟.

在 ECB 視窗裡, 除了上下移動之外, 最重要的兩個按鍵是 TABENTER. TAB 可用來開啟或關閉節點, ENTER 則是選擇. S-ENTER 也是選擇, 但與 ENTER 不同的是, 它會讓 ECB 重讀所需資訊.

今天用了一天的心得是這樣. 它還附有詳細的說明文件, 可輸入 C-h i mecb ENTER 叫出它的 Info 說明文件.

由 plasma 於 05:55 PM 所發表 | 迴響 (1)

2004-05-14 09:38:48

Plucker, N600C 與電子書

Plucker 是一個在 Palm 上的離線瀏覽網頁的開放源碼閱讀器. 它分為兩個部份, 一個是 parser, 一個是 viewer. parser 是在個人電腦上執行, 將給定的網頁抓取下來並儲存成 Plucker 的格式. viewer, 顧名思義, 就是在 Palm 上執行的閱讀程式.

這跟電子書有什麼關係呢?

網路上可找到電子書, 有很多是 chm 的. 在 FreeBSD 上, 唯一能直接看 chm 的是 xchm, 但是幾乎從來沒有看到它正常工作過. 另一個方法, 就是利用 chmview 把 chm 檔案解開來, 利用 browser 看. 但是我嫌它佔硬碟空間.

阿紫 (就是我的 CLIE N600C) 除了要拿來記東西, 另一個用途就是拿來看電子書. Palm 上可以使用的 Doc Reader 不少, 但是 Palm Doc 是一大篇的文字檔, 而 chm 可是有許多連結串來串去的. 在網路上找了好一陣子, 終於找到 Plucker! 更讚的是, FreeBSD 的 ports 裡就已經有了!

首先, 我們要安裝以下的 port:

  • converters/chmview
  • palm/plucker

然後把 /usr/local/share/plucker/SysZLib.prc, /usr/local/share/plucker/viewer_en.prc 同步至 Palm 裡. 你也可以把 Plucker 的使用文件 /usr/local/share/plucker/PluckerUserGuide.pdb 一起安裝進去, 先感受一下 Plucker 的威力. 這樣, Viewer 的部份就算完成了.

接著要設定 Plucker parser 的部份. 首先, 先建立一個 .plucker 的目錄. 建立好的 Plucker DB 會放在這裡.

接著, 把 /usr/local/etc/plucker/pluckerrc.sample 複製到自己的目錄下:

cp /usr/local/etc/plucker/pluckerrc.sample ~/.pluckerrc

請加上以下的設定:

palm1bit_graymap_file     = /usr/local/share/netpbm/palmgray1.map
palm2bit_graymap_file     = /usr/local/share/netpbm/palmgray2.map
palm4bit_graymap_file     = /usr/local/share/netpbm/palmgray4.map
palm8bit_stdcolormap_file = /usr/local/share/netpbm/palmcolor8.map

這些是 netpbm 提供的色彩轉換檔. 不設定好的話, 在轉圖形檔時會出錯.

要把 chm 檔案轉換成 Plucker DB, 首先要先用 chmview 把 chm 解開, 然後找出 toc.html (也許該電子書的第一頁不是這個檔, 請自行試驗) 在哪裡, 然後執行 plucker-build 來建立 Plucker DB:

plucker-build --bpp=8 --doc-file=BOOK_TITLE --stayonhost file://PATH/TO/toc.html

其中 --bpp=8 是指定成彩色. 阿紫有彩色顯示的功能, 當然要這麼作.

執行完畢後, 會在 ~/.plucker 裡產生一個 BOOK_TITLE.pdb 的檔案. 這就是轉好的 Plucker DB 檔, 把它同步到 Palm 裡去吧.

接下來要研究怎麼把 PDF 放到阿紫來看. 這樣就幾乎所有的電子書都能看了. :D

由 plasma 於 09:38 AM 所發表 | 迴響 (0)

2004-05-13 14:37:51

CLIE N600C

跟網友買了一台二手的 CLIE N600C 日文機, 打算要來取代現在使用的 Palm IIIxe.

機器來的時候, 己經重新灌過, 是完完整整的日文機. 本來以為只要 USB 線插上去後, 再自己灌進掌龍中文等軟體就好了. 沒想到完全不是這麼一回事!!!

搞了半天, 原來 Windows 要灌 USB Driver, 但是光碟片裡沒有 Windows 2000 的驅動程式. 原物主說, 因為這是水貨機, 沒有註冊, 拿不到新版的 CLIE PalmDesktop, 而據說新版的程式有內附 USB Driver. 原物主又說, 他都是用紅外線的, 建議我也用紅外線傳輸.

這個是後話. 當時因為 Windows 上弄不起來 USB, 再來就是動到小黑的頭上. 但是 FreeBSD 認不到走 USB 的 CLIE. 還好筆記書都會有紅外線埠, 再來就是研究如何走紅外線埠來進行同步了.

首先, 先依 FreeBSD on a Thinkpad X23 的 infrared 所述, 把紅外線通訊的部份架起來. 網頁上的 birda.sh 請確實裝起來. 請確認 BIOS 裡有開啟紅外線的支援. 我花了半個鐘頭, 才發現 BIOS 裡的紅外線支援是關掉的. ><~~~

再來, 把 ports 裡的 palm/jpilot 裝起來. 裝起來之後, 請進入喜好設定, 將序列埠的位置指向 /dev/ttypv.

好了! 就是這麼簡單. 寫起來很快, 不過這花掉我半天的時間...

再來是 Windows 的部份. 公司有 USB-IrDA bridge, 先去借來用, 不然花了錢卻發現不能用就糟了.

把它接起來, 驅動程式裝好, 結果在設定 HotSync Manager 使用 InfraRed 時有問題. 它會一直說 Error accessing the IR port. 的錯誤. 拜請 Google 大神之後, 在 IR Hotsync for Win2K & WinXP Notebooks 找到解決的方法.

重點就是: Windows 的無線傳輸會設定用來傳輸影像! 之前的錯誤訊息就是 HotSync Manager 無法取得紅外線設備的緣故, 因為被 Windows 給佔住了! 進控制台把它取消掉就好了.

現在小黑跟公司的桌機都可以對 CLIE 進行同步. Windows 的好處是 PalmDesktop 在多使用者的管理還滿方便的, 舊 Palm 上的資料就利用匯出匯入來轉到 CLIE 上, 而且許多程式也有可在 Windows 上執行的專用界面. 小黑則是隨時隨地可進行同步. 而且要是我想輸入資料的話, 在小黑上打好, 再同步到 CLIE 上, 速度應該會快很多.

接下來要來煩惱的, 是 CLIE 要叫什麼. :p

由 plasma 於 02:37 PM 所發表 | 迴響 (0)

2004-05-03 12:50:36

Making Hibernation Partition On ThinkPad X23

This is not the frist time for me to create a hibernation partition on my laptop, and it's a bit annoying to search for the URL of the utility to do this.

So, I decide to write it down.

BTW, the OS is FreeBSD.

* Go to the following URL and fetch "Hibernation utility diskette II for standalone boot": http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-4PESMK . Make the floppy.

* Boot from the floppy. Following the instructions on the screen and make a hibernation partition. Take out the diskette and reboot.

* FreeBSD is not able to boot up. The screen shows 'Read error'. Seems the boot manager is overwritten. Don't panic, your lovely FreeBSD isn't altered. It's time to take out your bootable FreeBSD CD-ROM. You do have it at hand, don't you?

* Configure -> Label. Don't change any parameter here. Press 'w' to write the untouched layout back onto hard disk. It's fine if you don't change anything. Then it'll ask you to select a boot manger. Choose one except 'none'. You have to do things this way to make the setup program to write boot manager onto HD.

* Reboot. Now we have our FreeBSD back (untouched), and hibernation by pressing Fn+F12 works now.

由 plasma 於 12:50 PM 所發表 | 迴響 (0)