google code-beautifer

星期四, 6月 28, 2007

Krusader

基本上 Krusader 就是跟以前DOS下的 Norton Commander ,後來Windows 上的
Total Commander, Linux 文字模式下的Midnight Commander 是一樣的雙排瀏覽檔案管理器。功能極為強大。Krusader 是qt 寫的圖形介面,我一般是在gnome桌面環境下搭配Nautius 跟emacs-gtk 來處理日常絕大部分的工作。檔案可以直接在彼此之間拉來拉去。其實這三者單獨都夠強大到單獨取代其他兩者去執行一些事,不過搭配使用更能讓我優游於從各種不同的工作方式角度來完成日常工作。

Krusader 支援多重分頁,管理多重目錄很方便,也支持網路上的目錄,舉凡sftp,ftp,samba...都可以用,管理網路檔案一如當地檔案。此外有兩個幾乎是殺手級的功能:一是把某個檔從RPM 一堆檔裡抓出來,一是把一個大檔自動切成小檔。

抽取式儲存裝置的考量:


不要在剛插入usb 儲存裝置就立即起動Krusader,那可能會把Krusader弄掛掉。等Gnome 桌面的Nautius正確辨認(跳出該儲存裝置的視窗)完後再啟動Krusader。

Krusader支援多重分頁,而且關掉後下次起動時還會記得上次分頁裡開啟處理的目錄路徑,不過要是分頁裡開啟處理的目錄路徑是usb 儲存裝置,最好先插入再啟動Krusader。不然他會抱怨找不到該路徑。

外掛程式


因為krusader 是為KDE 量身打造,有些設定用KDE公用程式對gnome 的使用者不便,要自己指定替代的公用程式,我有找到一些替代程式


  • General


    • kdesu
    • gksu
    • kget
    • gwget
    • kmail
    • 這個在下面選項會再出現,我還不知道如何用firefox 或evolution 去取代文字列的用法
    • krename
    • gwenrename,或是renameutils
    • locate

    • updatedb


  • Packers


    • dpkg

    • rar
    • 在http://www.rarlab.com/download.htm上有40天試用版
    • kmail

    • unace
    • 有免費版在http://www.winace.com/files/linunace25.tgz下載



桌面拖拉檔案的相容性


Krusader跟Nautius 也是可以直接拉檔案到gnome-terminal 或Emacs-gtk 下去處理。操作非常直覺。gnome-commander 跟Krusader互拉檔案也可以。不過我從 nautius 的檔案視窗裡拉照片到jUploadr不成問題,但不知為何就是無法從krusader 裡把照片拉過去。看來jUploader 對Krusader(或者是所有的qt程式)相容性不好。我發了bug 報告在
http://sourceforge.net/tracker/index.php?func=detail&aid=1626334&group_id=127771&atid=709422

其他的競爭者


Gnome-commander 已經相當接近Krusader 的成熟度,而且在使用介面上更直覺清爽,唯一沒有辦法說服我的地方是還沒支援多重分頁,目錄同步跟sftp 這三個重要的功能。不過我相信應該不久就會出現。

延伸閱讀


在Linux跟flickr間傳輸(照片)檔案

星期三, 6月 27, 2007

安裝使用VirtualBox: 執行虛擬作業系統的新選擇

V 1.0

前言


對我們這種常在某一種Linux 上工作,但偶而要跑其他作業系統去測試一些事情的人,單一機器多重開機雖然效能最高,還是有他不便之處(切換當時就沒辦法同時在習慣的系統下工作)。在一個作業系統下跑虛擬機器去跑另一個作業系統有時會很重要。

之前有跑過 VMware player ,但VMplayer 2.0 在我的64bit機器上有問題。替wine作好設定的 wine-doors 又跑不起來。 最近發現了Virtual Box:
http://www.virtualbox.org/
覺得還不錯。以下是VirtualBox 詳細安裝使用說明。不像有些禿鷹公司把別人完全開放的英文文件作個勞什子的簡單翻譯文件,就要去跟政府要大筆錢,還用PDF...等種種小手段去限制干擾大家使用;也不像一些喜歡偷看我文章卻又喜歡批評我的基本教義派,除了嘴巴叫叫些歪理,往往對他批評的領域卻一點實際技術的東西都端不出來。下面是細節毫無保留全都錄,希望對關心開放軟體的朋友有所助益,也希望受益的朋友也能飲水思源,秉持copy left 的精神去回饋自由跟開放軟體社群。

各種虛擬機器軟體的基本比較,可以參考
http://en.wikipedia.org/wiki/Comparison_of_virtual_machines
之後我會另文發表VMware, VirtualBox 跟Qemu 三者的細節比較 。

下載安裝程式


VirtualBox目前最新的是1.4版 有支援32 bit
VirtualBox-1.4.0_21864_mdv2007.1-1.i586.rpm.run
跟64 bit 版
VirtualBox_1.4.0_Linux_amd64.run
Mandriva 2007.1 上的RPM是1.3.8版,我發現1.3.8 設定沒有 USB,VRDP(遠端顯示) 跟Share Folder(分享資料夾),此外裝完後1.4 版後,1.3 版介面文字也會變成中文,建議直接去官方下載PUEL (Personal Use and Evaluation License) 版1.4.0。下面是以 1.4.0為示範。

1.4.0 預設目錄在 /opt/VirtualBox-1.4.0
也可以自行選擇,然後執行以下指令,如:
mkdir /usr/local/VirtualBox1.4.0
chmod +x VirtualBox_1.3.2_Linux_x86.run
./VirtualBox_1.4.0_Linux_amd64.run install /usr/local/VirtualBox1.4.0

他會要你看同意書後,鍵入yes才能繼續安裝。

裝完後在Mandriva 的gnome選單中,他會在應用程式->更多應用程式>模擬器下出現 Inno Tek VirtualBox的選項

在起動Virtua Box後
在Gobal setting 裡,你可能會在General 選項裡想改掉下面的路徑設定
VDI ~/.VirtualBox/VDI
Machine ~/.VirtualBox/Machines

之後就可以在Vitural Machine Manager 下,按下左上方的"New"圖示,建立虛擬機器影像

建立虛擬機器影像


在虛擬機器環境上, host表示實體機器上執行的主端作業系統,guest表示虛擬的客端作業系統。一臺虛擬機器少要有一個虛擬磁碟影像。客系統的虛擬機器磁碟影像檔,是放在主作業系統的檔案系統上。如果是放在Linux 的原生ext3檔案系統分割區效能應該會好一點。萬一虛擬硬碟檔要放在 FAT/FAT32 分割區下,則會受限於單一檔案不能超過 4GB的限制。以下是以英文版介面說明:


  1. 出現圖M2的"建立虛擬機器法師"畫面,再按"Next"圖示到下一步。
  2. 出現圖M3的畫面,提供選擇虛擬機器名稱(在設定網路時很重要)跟作業系統型態,再按"Next"圖示到下一步。
  3. 出現圖M4的畫面,提供選擇虛擬機器分配記憶體大小,(預設是168M,大一點的系統建議384M以上),再按"Next"圖示到下一步。
  4. 出現圖M5的畫面,提供選擇虛擬磁碟(預設是沒有磁碟),可以選"Existing"圖示去選用之前建好的。選"New" 圖示去叫出建立虛擬機器影像法師
  5. 再按"Next"圖示結束設定,出現圖M6的新畫面,這時候可以看到會多出 Setting,Delete,跟Start的選項。


這時候可以針對不同虛擬機器影像做個別內部設定

建立虛擬磁碟法師



  1. 在Vitural Disk Manager 下,按下圖D1左上方的"New"圖示,
  2. 出現圖D2 的"建立虛擬磁碟法師"畫面。再按"Next"圖示到下一步。
  3. 出現圖D3的畫面,提供選擇虛擬磁碟檔案大小是動態配置還是固定,(預設是動態配置Dynamically),再按"Next"圖示到下一步。
  4. 出現圖D4 的畫面,提供選擇虛擬磁碟檔案路徑名,(預設是NewHardDisk1.vdi)跟大小,再按"Next"圖示到下一步。
  5. 出現圖D5要求確認畫面,再按"Next"圖示結束設定



虛擬機器影像做個別內部設定



在 VirtualBox 主畫面中針對某虛擬機器影像按下"設定值"(Settings)圖示

  • 一般(General)
  • 客端若是Windows ,要在(advanced) 進階分頁底下,把ACPI 跟IO APIC這兩個選項都啟用,會省掉一些問題。
  • 硬碟
  • 最多可以掛載3個硬碟
  • 軟碟
  • 可以使用實體軟碟或是影像檔,包括進行系統開機
  • 光碟機
  • 只能模擬一台光碟機,但可以切換,可以設定使用實體光碟機或是 ISO 檔模擬實體光碟機,包括進行系統開機
  • 音效
  • 選用Alsa音效驅動程式
  • 網路
  • VirtualBox 網路能模擬 4 張卡。可在網路卡0的分頁中勾選
    啟用網路卡,一但主端對外能上網,客端不需作任何調整就能以NAT+HDCP方式上網

以下設定是1.4 版才有,後詳

  • USB

  • 遠端顯示(VRDP)

  • 分享資料夾(Share Folder)



最後按 "OK" 圖示完成設定,這時就可以在主畫面中選擇一個虛擬機器,按下"Start"鍵圖示就會開始啟動虛擬機器系統

萬一遇到 vboxdrv 無法正確載入,
VirtualBox kernel driver not installed. VBox status code: -1908 (VERR_VM_DRIVER_NOT_INSTALLED).
查查 nmi是不是有問題,是的話要在 kernel參數加上nmi_watchdog=0

安裝 Guest Additions



因為是虛擬機器, 客端顯示硬體驅動程式不是顯示真正的硬體,也無法裝自己的驅動程式。以我見過的例子:測試XP 客端上的裝置管理員上面列有二個不明裝置: 一個是顯示卡一個是不明顯卡 (實體主機上是nvidia)另一個是不明基本系統裝置。不過顯示正常,至少切到1024x748解析度沒有問題。

但要是安裝 Guest Additions 會使虛擬機器的驅動解析度與滑鼠整合操控性更好,如此一來,就不需要多按一下快速鍵就能把滑鼠移出VirtualBox視窗外。而且至少可以解決 nvidia Gforce 的問題(又多了個理由不要用ATI顯示卡),讓虛擬機器支援了更高的解析度 。從比較虛擬機器開機聲音的延遲程度,我相信這跟其他模擬作業系統軟體的外掛如WMware-tools 一般,會使得客端虛擬機器的效能更接近主端系統的效能。在1G Ram的AMD64 4000+上測試,安裝前Guest Additions竟然 Virtual Box CPU承載一直逼近百分之百!雖然同時跑其他程式如emacs還是很順,但看得還是有點心驚膽顫。安裝後,虛擬機器螢幕解析度提高到1152x864,但CPU承載掉到合理的60%

這是只有包含於 PUEL edition (Personal Use and Evaluation License) 而開放原碼版沒有的。安裝完PUEL版之後會在對應目錄下找到 additions/VBoxGuestAdditions.iso 預設路徑在
/opt/VirtualBox/additions/VBoxGuestAdditions.iso

C:\Program Files\InnoTek VirtualBox\VBoxGuestAdditions.iso

安裝時如果有掛載其他實體光碟或虛擬光碟映像檔,可能會失敗,最好先卸載其他光碟。啟動虛擬機器後,把VBoxGuestAdditions.iso當成實體光碟掛載到虛擬機器上,可以從Virtual Box下拉選單的 Devices-> Install Guest-Additions 去安裝。

常用快速鍵



  • F12
  • 在開機時選擇boot的媒體
  • 滑鼠點 2 下
  • 啟動視窗:將畫面主控權切換成虛擬系統。
  • 以下需要配合主端控制鍵,預設是右 Ctrl 鍵,也可換成如左Ctrl 鍵給右撇子方便使用

    • 主端控制鍵按 1 下
    • 跳出客端系統視窗。
    • 主端控制鍵 + f 鍵
    • 全螢幕/視窗模式切換。
    • 主端控制鍵 + Backspace 鍵
    • 在客端系統中模擬Ctrl+Alt+Backspace (Unix系統重新起動X 視窗)。
    • 主端控制鍵 + Fn 鍵
    • 在客端系統中模擬Ctrl+Alt+Fn,... (Unix系統切換到第號文字console , 1 <= n <= 12)。
    • 主端控制鍵 + Delete 鍵
    • 在客端系統中模擬Ctrl+Alt+Del(Windows 系統叫出程式管理員或重開機)。
    • 主端控制鍵 + q 鍵
    • 關機
    • 主端控制鍵 + r 鍵
    • 立即重開機(如同硬體reset )。



進階使用



USB裝置要啟用時,到視窗主選單裝置->USB裝置把要啟用的裝置按左鼠鍵選取使用。跟VMware 一樣,同時間主客端間只能有一個存取 USB裝置,從VirtualBox客端卸載USB 裝置後,主端系統就可以抓到該 USB 裝置,這樣可以讓主客端之間作資料的傳遞分享。

分享檔案夾的設定



除了USB 儲存裝置,可以使用分享檔案夾(share Folder ) 在透過內部網路分享儲存媒體(類似NFS或網路芳鄰)的方式讓主客端之間分享檔案。

分享檔案夾的功能可以在關掉連接外部網路的狀態上使用,就算關掉客端系統的虛擬網路卡對外連線,主客端仍然可以由分享檔案夾分享檔案。這麼一來,當有人想灌個windows 客端系統只用來執行少數Linux下沒有的應用軟體,但又怕windows系統客端曝露在連外網路的危險之中,就可以不用顧慮分享檔案夾上的windows系統客端一旦接上網路,就會有被來自外部網路上病毒、木馬等等惡意程式攻擊的安全性風險。


  • 主端上的設定

  • 可以透過GUI 或命令列來達成:先把一個虛擬機器架起來,把作業系統裝完後

    • GUI :在設定裡指定"檔案夾路徑"與"名稱",詳見下面說明:
    • 命令列:
        先關閉虛擬機器。
      1. (只有windows host 需要)假設虛擬機器叫xp,命令列開一個 command prompt 終端機視窗(Windows 系統下用cmd 叫出),切換目錄到 VirtualBox 虛擬硬碟存放的目錄。路徑可以參看一下當初VirtualBox 的 File 選單中的 Global Settings 裡面指定的虛擬機器集目錄,比如說
        /home/run/VB/Machines/,在該目錄底下可以找到個別虛擬機器相對應的目錄。如虛擬機器xp就會建立對應的子目錄 /home/run/VB/Machines/xp
      2. 用下列形式執行命令
        VBoxManage sharedfolder add "VM Name" -name "Share Name" -hostpath "路徑"

        VBoxManage sharedfolder add "xp" -name "again" -hostpath /home/run/again
          其中
        • VM Name
        • 指的是虛擬機器的名稱,如xp。要注意虛擬機器名xp,跟使用的虛擬硬碟名稱XXXYYZZZ.dvi 可以不一致。這裡要用虛擬機器名。
        • Share Name
        • 指的是自己在虛擬機器中定義的分享檔案夾名稱,如again
        • 路徑
        • 指的是要分享給客端的主端實體路徑名稱,如/home/run/again

      3. 其實可以直接修改系統設定檔,在該 VM Name 的目錄下,有個 VM Name.xml 檔案,如/home/run/VB/Machines/xp/xp.xml 可以用文字編輯器直接打開來編輯

    • 要確認設定的話,可以在終端機裡執行
      VBoxManage list vms
      看看會不會出現類似下面的字眼:
      Shared folders:
      Name: 'again', Host path: '/home/run/again' (machine mapping)

  • 客端上的設定

  • 啟動虛擬機器,開機完後在虛擬機器中

    • Linux

    • mount -t vboxsf again /media/VM
      其中again要和主端指定的分享名"again"一致,/media/VM是你想掛載的目錄。這也可以用/etc/fstab 之類的方式來變通掛載。
    • Windows

    • 把 \\vboxsvr\again 當成網路分享來用。(注意:不見得能用檔案總管直接上samba 網路瀏覽),這也有好幾種方式。用檔案總管下的tool -> map network drives 是一個方式,或打開一個 command prompt 終端機視窗,執行:
      net use x: \\vboxsvr\ShareName
      其中x:是你想在windows下看到的磁碟代號,而ShareName要和主端的分享名稱要一致,如
      net use z: \\vboxsvr\again
      注意在x:和\\vboxsvr之間需要加空白。


之後在虛擬機器上用Krusader或Total commander 之類的檔案總管打開網路儲存媒體,就可以看到分享檔案夾了。

星期一, 6月 25, 2007

在Linux跟flickr間傳輸(照片)檔案

有下面幾個選擇

FlickrUploadr
需要Python, Gtk 跟 /usr/lib64/python2.5/config/Makefile(MDK2007.1 在lib64python2.5-devel-2.5-4.1mdv2007.1.x86_64)

安裝:
下載軟體後解開,在目錄裡下達
python setup.py install

執行程式:
Uploadr

不過這些第三方的上傳軟體都得先讓Flickr知道。首先他們會讓你用閱覽器登入Flickr網站確認同意他們有寫的權限,
(日後取消可到http://flickr.com/services/auth/更改)完成後再回到程式裡就可以開始用了。

FlickrUploadr使用很方便,把想上傳的照片拖拉到它的視窗中就行。FlickrUploadr設計是一次傳一張。而下面的Juploadr是設計成多張一次傳。

Juploadr

JUploadr是用Java寫的,有分amd64跟i386兩個版(也有Mac跟windows ),裝上java就可以運作了,支援Flickr 跟Zooomr。

我把他在 /usr/local/下解開,執行檔是
/usr/local/jUploadr-1.1.2-linuxGTK-i386/jUploadr

/usr/local/jUploadr-1.1.2-linuxGTK-amd64/jUploadr
萬一原始設定上被系統路徑搞混,簡單的方式是去改這一行
JAVA_PROGRAM_DIR=""

把要上傳的照片拖拉到它的視窗中,等照片被拉進視窗後會顯示出每張照片的縮圖時就準備好上傳了。這時可在個別照片上按右鼠鍵,就會跳出新視窗供修改屬性,設定完成後按upload 就可上傳,全部完成後會跳出視窗通知。在照片只是十幾二十張時,反應延遲還算可接受。不過一次傳極大量張數時,顯示所有照片的縮圖就會很慢。我從 nautius 的檔案視窗裡拉照片不成問題,但不知為何就是無法從krusader 裡把照片拉過去。

Firefox Universal Uploader

這是依賴Firefox 的一個擴充套件,可以很容易的上下傳檔案到一些Web 2.0 網站。要上傳及備份flickr相片都十分容易。目前支援Flickr, Picasa, Youtube, Box.net(1GB of free space) Facebook。以後準備支援Google Videos, Webshots 。以下以Flickr為例說明。

它的外觀類似Krusader的設計,分為三大塊視窗:
本地端檔案及目錄會顯示在左邊視窗遠端的檔案會顯示在右邊視窗,在Flickr所建立的集合(set)會以目錄的形式呈現,進去就可以看到在該集合的相片。
下方分成兩個分頁用來顯示傳輸進度及資訊看板。以Flickr而言,在右邊視窗選擇檔案或集後,下方資訊看板就會顯示相片預覽,這時可以編輯相片的標題, 描述及設定權限。

如果想上傳一堆檔案,可以把檔案先選好(可以用ctrl ..等配合滑鼠),按右鼠鍵選擇upload一次上傳。只是目前不支援在遠端建立set的功能。要另外動手建立。
要備份相片只要反向傳輸即可。下載遠端檔案集合時,若本地端沒有對應的子目錄,系統則會自動建立。重覆的檔案名稱會自動附加上流水號。

星期日, 6月 24, 2007

MDV 2007.1 Multimedia Kernel 問題與解答

MDV 2006 時dkms用Multimedia kernel 沒問題,到了20907.0起後期就弄不起來。
嚴格說來這是因為新版multimedia kernel 的路徑換了名稱。只需要
cd /lib/modules/2.6.17.14-mm-desktop-5mdv
ln -s /usr/src/kernel-multimedia-2.6.17.14-5mdv build
ln -s /usr/src/kernel-multimedia-2.6.17.14-5mdv source
或者
cd /lib/modules/2.6.17.14-mm-laptop-5mdv/
ln -s /usr/src/kernel-multimedia-2.6.17.14-5mdv build
ln -s /usr/src/kernel-multimedia-2.6.17.14-5mdv source

dkms可能不會一次編成功所有模組,簡單方式就是重開機讓dkms再編過

不然就讀手冊自己去搞這些
dkms -m ati -v 8.37.6-1plf2007.1 build
....

星期五, 6月 15, 2007

安裝 flash 9 player 的正確解答

下面是在Mandriuva 2007.1 跟舊版 (可能是2007/2006) 上的經驗,其他以RPM
為基礎的發行版應該類似。我相信這可以解決長久以來對在Linux上安裝
flash9人云亦云的問題

RPM在此下載
http://www.adobe.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash&P2_Platform=Linux&P3_Browser_Version=Netscape4%20o

有安裝舊版的話,
先把舊的 (如/usr/local/mozilla/plugin下的)
libflashplayer.so
flashplayer.xpt
弄掉

MDV 2007.1之前的gcin舊版請升級,然後執行
urpmi flash-plugin-9.0.31.0-release.i386.rpm

裝的是64 bit MDV的話請見附錄

我在2007.1上測試,預設locale是 zh_TW.UTF-8,(所以這跟系統locale 無關)
安裝後,在firefox 網址欄打入
about:plugins
會顯示Shockwave Flash 9.0 r31
裝好後可以到此
http://labs.adobe.com/wiki/index.php/Flash_Player:9:Update:Full-Screen_Mode:Demos
欣賞諸如BCC 高品質的影像示範
http://www.flashcomguru.com/apps/fullscreen_player9/fullscreen.html
或者是去youtube 打開任一個分享影片,如
http://www.youtube.com/watch?v=1vc9SMCRrSk

之前MDV舊版用firefox 1.5.07 開flash 網頁裡純中文字會變成亂碼,如
http://www.taiwanmobile.com/index.html
這時候按老鼠右鍵,顯示的是英文flash提示
但在Mandriva 2007.1 上firefox 2.0.0.3 上中文字顯示正常。

當時有人說但如果使用 "env LC_ALL=zh_TW firefox" 啟動 firefox 顯示中文
就沒問題了。但當時我試了不成,字型還是沒設對。比對的結果如下

$ strings /usr/lib/flash-plugin/libflashplayer.so | grep -i big
-*-*-*-*-*-*-*-*-*-*-*-*-big5-*
BIG-5
bigEndian
big5
csbig5
cn-big5
x-x-big5
big5-hkscs
cn-big5
x-x-big5
BIG_ENDIAN bigEndian

2007.1 傳回的結果則是
-*-*-*-*-*-*-*-*-*-*-*-*-big5-*
big5
csbig5
cn-big5
x-x-big5
big5-hkscs
cn-big5
x-x-big5
少掉
BIG-5
bigEndian
BIG_ENDIAN bigEndian

$ strings /usr/lib/flash-plugin/libflashplayer.so | grep -i libgtk
libgtk
libgtk-x11-2.0.so.0

2007.1 傳回的結果則只有 libgtk-x11-2.0.so.0

我在 MDV 2007.1 下並沒有做任何改動 (預設Locale 跟之前一樣是
zh_TW.UTF-8)但完全沒有問題,建議之前有問題的人軟體升級

我發現在Mandriva 上真正的問題跟閱覽器Big5 Locale 沒有直接的關係,而是
在於字型的問題。一但我把臺北字型裝上,而且把他正確的設定好,就行了。作法請見安裝big5 中文點陣字型
http://shelandy.blogspot.com/2007/06/big5.html#links

我推測這是出在flash 9 想要去找big5編碼的(點陣)字 所以有些人在使用
fireflysung.ttf 替代 bkai00mp.ttf 能夠解決這個問題。http://www.ubuntu.org.tw/modules/newbb/viewtopic.php?topic_id=3535
只是剛巧fireflysung.ttf內含big5編碼點陣字。我懶的去交叉比對。要是有人確認的話,請通知一聲。

要想他發展的更好,可到Adobe 請願
http://www.adobe.com/cfusion/mmform/index.cfm?name=wishform

附錄:64bit 系統考量

目前沒有64bit的flash9,做法一是作業系統裝64bit的,但是瀏覽器的部份乾脆都裝32bit的(firefox, flash, java...)。做法,更誇張的做法二是另裝32bit系統然後用 chroot。

不過我覺得都不需要,64 bit MDV的話只要把下面這個nspluginwrapper裝起來就可以了。
http://gwenole.beauchesne.info/projects/nspluginwrapper/
MDV上有RPM,然後額外執行
nspluginwrapper -i /usr/lib/flash-plugin/libflashplayer.so
他可以把 32 bit firefox plugins 包起來, 提供 64bit 介面給 64 bit
firefox使用。大部份時候都很穩,但沒有支援Java Plugin 。

由這一點就可以看出Mandriva 易用的好處。BBS 上有一些對新手該用什麼發行
套件的爭論實在都沒有搔到癢處。這時候就可以看出Mandriva 的確是新手的首
選(老手選發行套件就都見仁見智)。

有人宣稱Java雖然有64bit版,但是不包含Plugin,尤其是要看一些線上串流的Plugin
幾乎都沒有32bit的。不過我還沒有碰到過這樣的情況,真的要的話,搞不好在wine下跑windows 或 VMware player 跑另一個 32bit linux 還比較方便

http://blogs.adobe.com/penguin.swf/ 中的
What's So Difficult? 64-bit Edition
http://blogs.adobe.com/penguin.swf/2006/10/whats_so_difficult_64bit_editi.html
提到一些移植32-bit軟體移植到64-bit Edition的問題,對用64bit 機器但考慮該用什麼bit 版本的人會有一點用處

延伸閱讀:
在64bit 2007MDV上跑32 bit 套件
http://shelandy.blogspot.com/2007/04/64bit-2007mdv32-bit.html#links

相關的討論見
http://freesf.tw/modules/news/article.php?storyid=3030
http://people.debian.org.tw/~chihchun/2006/11/02/flash-player-9-for-linux/
http://www.in-life.idv.tw/index.php?/archives/392-ae-flash-9-aecae.html

星期四, 6月 14, 2007

安裝big5 中文點陣字型

在安裝mandriva 2007.1 後,基本的調校之一包含了安裝臺北字型。
因為 flash player 9 跟有一些沿用X-windows 點陣字的軟體如舊版的emacs處
理中文還是需要,我把在MDV2007.1 上裝上big5編碼的臺北字型的過程記下供參考。

2007.1預設的是fonts-ttf-chinese-0.1-0.20060928.1mdv2007.1 ,這套
Unified Chinese True Type font是Arne Goetje 合併了文鼎的向量字跟螢火飛
的點陣字還有簡體跟香港字,之前在MDV2007上我跟Jim 討論的部份粗體中文字型的問題http://cle.linux.org.tw/forum/viewtopic.php?t=1637。
已不存在。我推測問題出在我們之前(2006, 2007.0)用的螢火飛新宋體 TTF 的
hinting 。我懶的去交叉比對,要是有人確認的話,請通知一聲。不過由於有
人不懂技術跟經營社群,又喜歡當"big brother" 在我背後以一付高道德標準的姿態講些五三四的,我不會在那裡繼續回應技術問題,省的麻煩,等著看又有某某再度步上CLE CLDP論壇的結局。要討論的請在這裡或到自由軟體技術交流網的MDV論壇。噴口水的文字就請免了。


檢查系統環境:

fc-list | grep AR 可以看到文鼎中楷跟細上海宋
fc-list | grep -i big5 看不到 big5

臺北字型是有包好RPM,先把 taipeifonts-1.2 的RPM裝上 ,內部檔案包括
/usr/X11R6/lib/X11/fonts/misc/taipei16.pcf.gz
/usr/X11R6/lib/X11/fonts/misc/taipei20.pcf.gz
/usr/X11R6/lib/X11/fonts/misc/taipei24.pcf.gz
/usr/X11R6/lib/X11/fonts/misc/taipeifonts.alias
/usr/X11R6/lib/X11/fonts/misc/vga12x24.pcf.gz

不過沒配置好 font.dir 跟 font.alias,要手工設定:
cd /usr/X11R6/lib/X11/fonts/misc/
mkfontdir
cp taipeifonts.alias fonts.alias
此外xfs 系統沒有把/usr/X11R6/lib/X11/fonts/misc/ 加入路徑群,可以直接
打開檔案 /etc/X11/fs/config 編修,或下指令 chkfontpath檢查

/usr/share/fonts/misc:unscaled
/usr/share/fonts/drakfont
/usr/share/fonts/drakfont/Type1
/usr/share/fonts/drakfont/ttf
/usr/share/fonts/otf
/usr/share/fonts/ttc
/usr/share/fonts/75dpi:unscaled
/usr/share/fonts/100dpi:unscaled
/usr/share/fonts/Type1
/usr/share/fonts/TTF
/usr/share/fonts/Speedo
/usr/share/fonts/default/Type1
/usr/share/fonts/default/Type1/adobestd35
/usr/share/fonts/TTF/dejavu
/usr/share/fonts/TTF/latex
/usr/share/fonts/ttf/decoratives
/usr/share/fonts/ttf/western
/usr/share/lilypond/2.11.20/fonts/type1
/usr/X11R6/lib/X11/fonts/misc

要確定/usr/X11R6/lib/X11/fonts/misc在路徑群裡面.
設置好後,重啟動X 視窗
xlsfonts | grep -i big5 就會看到
-default-ming-medium-r-normal--16-160-72-72-c-160-big5-0
-default-ming-medium-r-normal--20-200-72-72-c-200-big5-0
-default-ming-medium-r-normal--24-240-72-72-c-240-big5-0
-taipei-fixed-medium-r-normal--0-0-75-75-c-0-big5-0
-taipei-fixed-medium-r-normal--16-150-75-75-c-160-big5-0
-taipei-fixed-medium-r-normal--20-200-75-75-c-200-big5-0
-taipei-fixed-medium-r-normal--24-240-75-75-c-240-big5-0
-taipei-ming-medium-r-normal--16-160-75-75-c-160-big5-0
-taipei-ming-medium-r-normal--20-200-75-75-c-200-big5-0
-taipei-ming-medium-r-normal--24-240-75-75-c-240-big5-0

成功後,emacs 不用額外設定直接看到中文,firefox 開flash 網頁老鼠右鍵中文選單也沒問題。

延伸閱讀:(後續)
安裝 flash 9 player 的正確解答
Emacs 編輯中文設定
Java 中文字型設定

星期二, 6月 12, 2007

在OpenOffice.org 中文計劃上歷史的今天

參與 OpenOffice.org 中文計劃的人,甚至臺灣開放軟體社群不參與OpenOffice計劃的人,大概很難不注意OpenOffice中文計劃第一任管理員黃沛霖的講話。在那麼多正體中文跟簡體中文言論上的衝突場合裡,先不管誰是誰錯,我覺得他是極極少數能讓雙方都能平靜下來聽他說話的人。像較於一些只會高分貝雞同鴨講的基本教義派,他光是這點我覺得就很難得的。相對於臺灣一堆都在正式的OpenOffice.org 中文計劃之外打轉沒有進入核心的人,這幾年參與OpenOffice.org 中文計劃的簡體字人數優勢漸漸超過用正體中文的義工,不過相處還相當融洽,這是非常難得的。很可惜他因為個人因素即將要卸任,對於臺灣OpenOffice.org 的社群,甚至開放軟體社群,我覺得臺灣都不見得有人能取代他對正體中文 OpenOffice.org 的助益。對我的感覺,就像 Keith Packard 從 Xfree86.org 離開一樣。只不過Keith Packard 當年是被迫的,黃先生是主動的。

很多事情我不能明講, 這只有長期在中文 OpenOffice.org 待的人才能體會。很多事不是我一個人能控制的,所以我在OpenOffice.org 中文計劃開發者論壇留了一個回應,留待幾年之後大家回頭來看這個事,就知道什麼是我不能明講的。

-----------------------------------------------------

黃兄作為第一任中文計劃管理員,從無到有開創了目前的局面,我覺得非常難得。我個人從一開始就參與OOo中文計劃,覺得在參與者裡少有像黃兄這樣熱心的,黃兄退下這個位置是OOo中文計劃的損失,不過也祝福黃兄個人前途大展。

之前有些長期參與的義工也很熱心竟然都沒有出來接這個位置,現在有人出來接當然是很好。只有一點小小的想法: 希望借這個第一次轉換的機會,為將來更好的發展打下基礎。我對誰來接沒有什麼意見,這主要是程序的問題,其實黃兄要叫誰接,我想也沒有多少人有異議。不過既然黃兄特別提到用民主的方式,我希望藉此建立起一個好的制度,讓OOo中文計劃以後的管理員,都能基於前人的基礎愈做愈好。真正的民主不是嘴巴高喊"人民"或"社群"口號,而是能真的在這些小節裡落實:

1. 贊成/反對票到時會不會公開計名? 不公開計名的話,票是寄到黃兄的哪個私人信箱去?
2. 贊成/反對票是針對個人投兩票,還是對這兩個人整體投一票?

Pui Lam Wong 提到:
> > 各位好。
> >
> > 因為個人時間不足,固在與 OpenOffice.org Native Language Confederation 主席 Charles-H. Schulz、副主席 Louis Suárez-Potts、一些中文計劃成員、以及一些自由軟體人士討論後,決定任命兩位新主席共同掌管中文計劃:洪宗勝博士及 Cheng Lin。
> >
> > 二人簡介列於此信之下。對此一決定無反對意見者,請回覆此信並於回信第一行寫上「+1」。若有反對者,請於回信第一行書「-1」,並請書明原因。有問題者,請回信發問。
> >
> > 表決期為七日。即表決將於北京時間 2007年6月19日 23:59 終止。若讚成者多於反對者,此一任命張於 2007年6月20日 00:00 生效。
> >
> > 在下手頭上所有的重點資料皆在下面,若有重要遺漏,請 Mr. Lin 及 洪博士回信補足。
> >
> >
> > 黃沛霖上
> >
> > -----------------------
> >
> > 洪宗勝
> > ===
> > 洪宗勝博士,號威豆,網上人稱「威豆博士」。1987年得清華大學核子工程博士之位。2000年,成為 RedHat Certified Engineer 及 RedHat Certified Examiner。2003年當選(台灣)軟體自由協會第二屆理事,及(台灣)開放系統協會第六屆理事。2002 - 2003 年間多次應邀到不同大學及組織演講與推廣自由軟體。2004年為(台灣)資訊工業策會顧問,輔仁大學資訊管理所助教,青年國是會議自由軟體題之専家證人,後為晟鑫科技總經理。2005年,與 Firefly 等人共同發起「中文OSS 桌面應用增進計劃」(http://opendesktop.org.tw)。2006年當選開放系統協會第七屆常務理事。
> >
> > Cheng Lin
> > ===========
> > Cheng Lin 於 2001 至 2004 年間掌管 RedOffice 之開發及發佈。後於 2006 年,成為 OASIS UOML (http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=uoml) 及 Chinese UOF (Uniform Office Format) Standard 組織之成員。同年,始掌 RedOffice 之人手及以 OOo VCL TestTool 完成之自動測試。

星期六, 6月 09, 2007

metacity 桌面管理員預設鍵盤快速鍵用法

meta city 是目前gnome 桌面預設的視窗管理員,雖然大家慢慢有遷到compiz 或beryl 等3D "桌面管理員"的傾向,但對一些老的顯示卡沒法跑 3D 桌面的,metacity 還是不可或缺的


  • switch_windows 在提示模式下於桌面上的所有開啟程式間切換
  • Alt-Tab
  • switch_panels 在提示模式下於桌面上的所有面板間切換
  • Ctl-Alt-Tab
  • cycle_windows 於桌面上的所有開啟程式間立即切換
  • Alt-ESC
  • cycle_panels 於桌面上的所有面板間立即切換
  • Ctl-Alt-ESC
  • show_desktop 切換在工作區隱藏/顯示視窗
  • Ctl-Alt-d
  • switch_to_workspace_left 跳到左邊的工作區
  • Ctl-Alt-向左鍵
  • switch_to_workspace_right 跳到右邊的工作區
  • Ctl-Alt-向右鍵
  • switch_to_workspace_up 跳到上面的工作區
  • Ctl-Alt-向上鍵
  • switch_to_workspace_down 跳到下面的工作區
  • Ctl-Alt-向下鍵

    以上四個功能加上SHIFT鍵 會同時把視窗移到相鄰工作區

  • activate_window_menu 啟動工作視窗選單
  • Alt-SPACE
  • toggle_fullscreen
  • disabled
  • toggle_maximized
  • disabled
  • toggle_shaded
  • disabled
  • close 關閉工作視窗
  • Alt-F4
  • minimize 最小化視窗
  • Alt-F9
  • begin_move 啟動移動視窗模式
  • Alt-F7 (可以用鍵盤或老鼠移動位置;或者直接按Alt- 跟老鼠左鍵不放後,用老鼠拖曳移動位置)

  • begin_resize
  • Alt-F8 改變視窗大小
  • 從最大化視窗還原原大小
  • Alt-F5
  • 視窗最大化
  • Alt-F10
  • Alt-F1

  • Alt-F2

  • 擷取全螢幕快照
  • PRINT
  • 擷取視窗快照
  • Alt-PRINT


其他相關

  • 殺掉 X 視窗
  • Ctl-Alt-BACK
  • 重開機
  • Ctl-Alt-DEL


衍生閱讀
Compiz 3D 桌面的使用設定
Skippy -- 快速視窗切換應用程式

星期五, 6月 08, 2007

在Emacs 上用正規表達式(Regular Expression)

前言

我痛恨Computer Science 一堆老師的位子都被有辦法的外系背景的人佔走,這些人又不懂電腦實務,結果搞出來的電腦教育七零八落。變成惡性循環。這檔事中外皆然,但臺灣尤烈。

假如離散數學學過了正規表達式(Regular expression)跟automata ,就一廂情願以為是可以直接在compiler 上套用non-deterministic的觀念,那就會死的很慘。就算修過compiler ,知道了要用deterministic的觀念,要以為在unix 上的find/grep/awk/表達檔案 wild card 上也可直接套用正規表達式(regular expression) 觀念來用,保證也死的很慘。因為解釋方式不一樣。現在發現,就算知道了前述 unix 系統上的工具如何正確的用正規表達式,在Emacs 下用法還是不太一樣,要小心。但是一但會用,真是如虎添翼。

在eamcs裡起動正規表達式的取代是用
ctrl-alt-%

先輸入搜尋字串正規表達式模版,按enter 後,再輸入取代的字串,一般基本的擴充正規表達式(extended Regular Expression)大多可以用

要輸入控制字元如 Crtl-J (也就是unix 上的換行控制字元),用按Ctrl-Q 後再按j 也就是先按 Ctrl-Q 後再按該字元。這讓Emacs 可以搜尋跟取代跨行的文字。強!

以下是詳細列表

  • ^
  • 代表字串開頭
  • $
  • 代表字串結尾
  • .
  • 任何字元
  • *
  • 重複前面sub-RE任意次, 跟unix 檔案不一樣的是,這跟數學上的RE 用法接近,前面要接一個sub-RE,sub-RE可以是字元RE或字串RE
  • +
  • 同*用法,但是是出現一次以上
  • ?
  • 同*用法,但是是出現零或一次
  • [ ... ]
  • 把 []裡的字元當成集合元素來用,任選其中之一
  • [^ ... ]
  • 把 []裡的字元當成集合元素來用,任選這個集合的補集合裡其中元素之一
  • \
  • 逃逸字元,把上述特殊符號當一般字元時要先加\
  • \|
  • 或: 前後兩個sub-RE 任選其中之一 ,比如說 腦殘 \| 丁丁
  • \( ... \)
  • 連接或群化:把\( \) 裡的平行元素(用\| 分隔)或把sub-RE 元素連成一個大的序列RE,簡而言之就是數學裡的 (,),按照其出現的順序,這些被\( ... \) 形成的RE 可以被後面再次呼叫引用,如\(腦殘 \| 丁丁 \)
  • \數字
  • 去引用前面被\( ... \) 形成的RE,如 \2 是引用前面出現過的第二個\( ... \)的正規表達式模組
  • \`
  • 在檔案(正確說法其實應該是buffer)起頭的空字串
  • \'
  • 在檔案(正確說法其實應該是buffer)末尾的空字串
  • \b
  • (英)文字正前或正後方的空字串 `\bfoo\b' 對應任何單獨存在的 `foo' 字串(以sub-string 型式出現的如food就不算).
  • \B
  • 不在(英)文字正前或正後方的空字串
  • \<
  • 在(英)文字正前方的空字串
  • \>
  • 在(英)文字正後方的空字串
  • \w
  • 對應一個文字字元(對英文而言,即abcd,...不包含空白之類的分隔字元)
  • \W
  • 對應一個非字元字元,也就是\w 的補集
  • \scode
  • 對應任何一個程式(code)字元. 程式字元就是上面那些特殊符號,如
    `w'(文字字元), `-' for whitespace, `(',...等等 。詳情見GNU emacs 手冊的章節: The Syntax Table.
  • \Scode
  • 對應一個非程式字元


我這裡寫的有一點心虛,是因為emacs原來只針對英文設計,處理中文時,因為語文結構上的差異造成了功能定義變得不明確。不過基本上我目前用emacs 22 處理中英文的試驗結果,\b 跟 \w 對待中文字的確是如同英文一般。有意者可以參考gnu 出版的原文手冊。這裡是GNU emacs 手冊提到正規表達式的章節:
http://www.gnu.org/software/emacs/manual/emacs.html#Regexps

星期三, 6月 06, 2007

GNU 正式發表 Eamcs 22.1

在停留在21 版六年之後,gnu 終於正式發表了22版。官方宣告在此
http://permalink.gmane.org/gmane.emacs.announce/11

一些主要的新增功能有
支援GTK+ 介面
X windows Drag-and-drop
支援 x86-64 架構
...
基本上族繁不以備載。

個人試用結果:我在Mandriva 2007.0上已開始用了 emacs-gtk beta版的RPM ,感覺相當不錯,unicode直接支援,不用加裝套件。
2007.1 開始, 舊版emacs-21.4-2跟emacs-snapshot-common-22.0.94-1跟xemacs-21.4.19-4 三者可以共存

星期二, 6月 05, 2007

OpenOffice.org Mac OS X aqua 版現身

朋友借我臺舊Mac 幫他出問題時看看。以後開始會留神 Mac上的開放原碼軟體

MacOS 的使用者大多是用 NeoOffice 去讀寫 openoffice
聽說以往在Mac上裝 openoffice 需要加裝 X-windows
照這樣推斷,Mac OS 的aqua 介面不是基於 X-windows 的東西,這倒是出乎我意料之外
竟然基於 BSD 核心的圖形化系統沒有跑 X-windows !

今天 Openoffice.org 宣布了Mac OS X aqua版官方的OpenOffice.org (叫作 OpenOffice.org Aqua) Alpha 版開放下載
需要 Mac OS X 10.4 (Tiger)
http://porting.openoffice.org/mac/download/aqua.html

Alpha 版意味這是不穩定的測試版,
不過這對開放格式ODF 的版圖擴張有某種程度的正面意義

詳情見
http://porting.openoffice.org/mac/download/aqua.html

星期日, 6月 03, 2007

skype linux 1.4 終於現身

基本上相對於其他完全開放/半開放(只開放client端)原碼的VOIP如gizmo,我不是很喜歡用skpe 。純粹是為了在Linux 上保有跟其他平台的人通話的使用自由,才在用被迫用skype。相對於其他Linux上的VOIP軟體,skype 的Linux 1.3 版作的不好,跟skype自己 windows 版穩定度,功能...,也差上一大節。Linux版大半年沒改版了,還是蠻期待基本的音效穩定度可以加強。

現在1.4 還在 alpha 階段。改進了不少東西,audio裝置的選擇變多了,而且開始有支援API/dbus 。使用介面用最新的QT4 改寫過了
不過介面的分群暫時無法顯示,看來怪怪的。有些功能像OSS 支援暫時拿掉了。不過不礙事。

有分兩個版本:
skype-alpha_staticQT-1.4.0.64-generic.tar.bz2
需要 libdbus-1.so.2 可是Mnadriva 2007 64bit 系統裡的是 libdbus-1.so.3,所以要
cd /lib; ln -s libdbus-1.so.3 libdbus-1.so.2

需要 32bit libsigc++2.0 所以要手動安裝
urpmi libsigc++2.0_0-2.0.17-1mdv2007.1.i586.rpm

假如是skype-alpha-1.4.0.64-generic.tar.bz2 (for static release) 還要多裝 32 bit libqtdbus4
urpmi libqtdbus4-4.2.3-3mdv2007.1.i586.rpm

並且把在 /lib 建立對應的 symbolic link
cd /lib;
ln -s /usr/lib/qt4/lib/libQtGui.so.4 libQtGui.so.4
ln -s /usr/lib/qt4/lib/libQtNetwork.so.4 libQtNetwork.so.4
ln -s /usr/lib/qt4/lib//libQtCore.so.4 /libQtCore.so.4
ln -s /usr/lib/qt4/lib//libQtCore.so.4 libQtCore.so.4

不過 skype 官方說
* Qt 4.2.3 contains a bug that if unpatched will cause expanded contact details to be displayed incorrectly.
* Qt 4.3.0-beta is considered not yet release worthy, and may cause unpredictable side-effects with the Skype 1.4 client.

所以我還是改用靜態連結版本。

詳細參見
https://developer.skype.com/LinuxSkype#head-3fc9435082cb4f65fac2d0cc058d4265ccceb7d7

星期六, 6月 02, 2007

Mandriva 2007.x 3D desktop 啟動速度比較

Mandriva 2007.x用了 parallel init,開機真的不慢,到gdm/kdm 這段都算快
用了雙螢幕好久一段時間,但2007.0 開機+desktop啟動速度感覺上是用過最慢的一個。即使CPU 一直在提升(現在是AMD 4000+, 1M L2 cache), video 保持在nvidia Ti-4200 128M RAM
不知是雙螢幕,compiz,2007.0,還是我沒設好?試過CPU 3000+/4000+差距不成問題。但換成2007.1新的組合就沒事了,又回到以前那種啟動神速。所以我認為是 2007.0 系統設定/xgl/舊版nividia 驅動的問題。

我反覆測試的結果,發現就算同樣的設定,數值也有數秒(n<5))的波動,也許是parallel init/硬碟cache hit 所照成的,留幾個數據供大家參考:

舊的2007.0(nvidia 96xx twinview + gxl +compiz + gnome 2.16)
1. 從 grub 按 enter 開始到圖形介面progress光條完成: 33 sec
2. GDM 出現 再加7 sec (中間有出現 nivida logo畫面,可以在xorg.conf裡把他拿掉 )
3. 從GDM 打完密碼到compiz 把 gnome menu(包含網路的服務)全部load 完
再加2分24 sec
0:33+0:07+2:24=3:04

其中第三段:
gdm 打入密碼後螢幕變黑,中央出現gnome 2.16 載入中的小視窗
視窗裡有幾個icon ,全載入後才會進入gnome 桌面(開始載入桌布/選單之類的。)光是gnome 2.16 載入中的小視窗第一個icon 出現,就在那裡停了2:21所以我的menu 服務icon雖多,一共也才幾秒 (2:24-2:21=0:03)這幾秒內可以看得到網路服務icon先畫出沒資料,再畫出網路資料,瓶頸不在畫menu那。雖然我的menu 很多,光包含網路的服務(天氣)就好幾秒,但gnome desktop 完成絕對要2分多,大瓶頸

新的2007.1 (nvidia 96xx twinview + aigxl +compiz + gnome 2.18)
1. 從 grub 按 enter 開始到圖形介面progress光條完成: 35 sec
2. GDM 出現 再加12 sec (中間有出現 nivida logo畫面,可以在xorg.conf裡把他拿掉 )
3.1 從GDM 打完密碼到螢幕變黑,中央出現gnome 2.18 載入中的小視窗完成消失: 再加4 sec
3.2 gnome 2.18 載入中的小視窗完成消失: 再加10 sec
3.3 gnome 桌面全部載入(桌布/選單之類跟畫出額外的網路服務icon跟網路資料 )再加11 sec(假如螢幕都很乾淨,沒有放大量的捷徑的話,則只加 4sec)
2007.1 起動桌面的時間
0:35+0:12+0:04+0:10+0:11=1:12
對照2007.0的 0:33+0:07+2:24=3:04快了一倍

我沒力氣去追glx 的問題。我之前遇到一些與舊程式不相容的情況。如nvidia-settings 不會正確顯示的問題,讓我 決定放棄glx。一度我想裝beryl 來取代 compiz 但是不管2007.0/2007.1 ,nividia 或ATI 上全裝不出來,還把gnome 給搞砸了。雖然beryl 有一些外掛如火燄特效很酷,不過至少在compiz 上,最重要的視窗縮圖預覽(MacOS X 上的 expose') 功能,aiglx 跟xgl 速度差異根本感覺不出來。所以決定先用 aiglx 的 compiz 來工作。

另外 2007.1 只跑單螢幕+沒 3D 桌面的情況:
第1, 2段也是約 40 sec (36+9=45)
第三段: (10+8)=18 sec

關於雙螢幕3D 桌面的設定,則會再另外刊出