星期日, 7月 30, 2006

在微軟視窗上安裝 GIMP 2.2 的注意事項

文章來源:  LinuxHall

經過了許多版本的更新和修訂,GIMP 2.2 的 Windows 視窗版現在已可正常顯示中文介面了。然而,卻有另一個新的 script-fu error bug 出現:官方的 Bugzilla 除錯紀錄表示這個問題正在修正中,而 GIMP for Windows 用戶電郵列表上對此 bug 之討論亦未有明確頭緒,所以暫時只好用一些方法繞過這個錯誤訊息。

【更新】:此問題應已於 GIMP 2.2.10 更新版上獲得修正,詳見內文。

需要的 GIMP for Windows 軟件可以在這個地址下載:
http://gimp-win.sourceforge.net/

安裝 Windows 版的 GIMP 2.2.x 注意事項:

  1. 安裝 GTK 2.6.9 for Windows 時,你亦可順道安裝 GTK-Wimp theme 介面主題:中文介面已可正常無誤地顯示了

  2. 修改介面字型大小:在安裝了 GTK-Wimp 主題後,若你想調較介面的字型大小,請修改 C:\Program Files\Common Files\GTK\2.0\etc\gtk-2.0\gtkrc

    font_name="Sans 9" 加到下面一段設定之內:

    style "msw-default"
    {
    GtkWidget::interior_focus = 1
    GtkOptionMenu::indicator_size = { 9, 5 }
    GtkOptionMenu::indicator_spacing = { 7, 5, 2, 2 }
    GtkToolbar::shadow-type = etched-in
    GtkHandleBox::shadow-type = etched-in
    GtkSpinButton::shadow-type = in
    GtkComboBox::add-tearoffs = false

    GtkTreeView::allow-rules = 0
    GtkTreeView::expander_size = 11
    GtkUIManager::add-tearoffs = false
    font_name="Sans 9"

    engine "wimp"
    {
    }
    }
    class "*" style "msw-default"

  3. 新的 GTK-2.6.9 for Windows 已提供自己的語言選擇工具 Select language:你只須在 Start Menu > Programs > GTK+ Runtime Environment > Select language 作設定,便可轉到你想指定的介面語言。

  4. 繞過 Script-fu 的錯誤訊息

    當你使用 Select language 設定選用非英語的介面時(像繁體中文 zh_TW),啟動 GIMP 2.2.8 時會遇到 Script-fu crash 的錯誤訊息。Windows 版的官方開發人員已在研究修正此 bug。在此期間,你可藉以下方法暫時避過這個錯誤:

    【更新】此問題應已於 GIMP 2.2.10 更新版中獲得修正,更新以後,應無須再使用以下所提之繞道辦法。

    1. 暫時只設定使用英語介面

    2. 把位於 C:\Program Files\GIMP-2.0\lib\gimp\2.0\plug-ins\script-fu.exe 之檔案,暫時移到別的目錄,這樣便不會有錯誤訊息。可是卻會失去 script-fu plugin 腳本插件功能。

    3. 有用戶發覺將 script-fu.exe 此檔之 OS 相容性改為 「Windows 2000」 也可避過 error 錯誤訊息;不過要碰下運氣:有些用戶即使這樣做以後仍發生錯誤

    4. 另有用戶表示先移除 script-fu.exe,然後安裝 Tiny-fu 便可解決,可是也有人表示這個方法不行,所以大家亦只好試試。

在微軟視窗上安裝 GIMP 2.0 的注意事項

文章來源: LinuxHall

GIMP 是 Linux 上的內定圖像軟件,地位與 Photoshop 在 MAC 或 Windows 相約。可能一般使用者未發現原來 GIMP 也有開放源碼的 Windows 版本,且而連 GIMP 2.0 也可以安娤在 Windows 之上。可能有種種理由,閣下還需要停留一些時間在 Windows 上工作,但如果要處理圖像而不想支付數千圓的購買 Photoshop,那 GIMP 2.0 當然是閣下的一個理想的替代軟件。在這裡和各位分享安裝 GIMP 2.0 在 Windows 上時的一些竅門。

需要的 GIMP for Windows 軟件可以在這個地址下載:

http://gimp-win.sourceforge.net/


安裝 Windows 版的 GIMP 2.0 注意事項:

1) 在安裝 GTK 時,請不要安裝 GTK-Wimp theme 這個介面主題, 因為它會令中文介面不能顯示,變成方格。

2) 修改介面字型大小:在沒有安裝 GTK-Wimp 這個主題,你可修改

C:\Program Files\Common Files\GTK2.0\etc\gtk-2.0\gtkrc
此檔案來改變 GIMP 的介面字型大小:

修改 "gtkrc" 的內容成如下:

gtk-font-name="Sans 9"

(註:切記句首並沒有'#'號。另你可隨情況使用 9 以外的數值)

存檔,重新啟動 GIMP,便會發現介面字體大小改變了。

Windows 2000/XP 用戶注意

若你想替不同的用戶設定不同的 GTK 介面字型大小,你可建立一個新的檔案 ".gtkrc-2.0"(檔名無引號),並如上加入 gtk-font-name="Sans 9" 的內容,存檔,把該檔放在這個目錄位置:

C:\Documents and Settings\username (username 為你的登入帳號名字)

3) 要改變 GIMP 使用中文或其他語言介面,你可以:

* 在 Windows 95/98/98SE 系統 *
把以下任何一句加入 C:\AUTOEXEC.BAT 檔內:

set LANG=zh_TW (設定繁體中文介面)
set LANG=zh_CN (設定簡體中文介面)
set LANG=jp_JP (設定日文介面)
set LANG=en (設定英文介面)
set LANG=en_US

接著重新 reboot 啟動系統。

* 在 Windows NT/2000/XP 系統 *
滑鼠右鈕按 My Computer > 選擇 Properties > 接著選擇 Advanced tab,然後按 Environmental Variables 這個按鈕。

打開新視窗後,按 New 按鈕加入

把 Variable name 設定成 LANG
把 Variable Value 設定成 en
(或 zh_TW, zh_CN, jp_JP 其中一項,其代表意思見上)

不管在 User 或 System variables 中設定都同樣有效,但若設定成 System variables,那 GTK 介面語言亦將適用於其他登入帳號的用戶。

4) 在沒有 Administrator 權限的 Windows NT/2000/XP 系統安裝 GIMP 2.0

安裝後執行以下部驟,這樣便可在 GIMP 載入 filter/plugins 時, 避過 missing DLL 的錯誤訊息:

把所有位於 Gimp-2.0\bin 目錄的 *.dll 檔 複製至 Gimp-2.0\lib\gimp2.0\plug-ins 目錄

例:COPY C:\Program Files\GIMP-2.0\bin\*.dll
C:\Program Files\Gimp-2.0\lib\gimp2.0\plug-ins

5) Adobe Photoshop 用戶可以修改 GIMP 使用
Photoshop 的熱鍵設定 (hotkey),以配合你的使用習慣。

修改方法: 請到這個目錄位置
C:\Program Files\GIMP-2.0\etc\gimp\2.0

把檔案 ps-menurc 更名為 menurc,然後重新啟動 GIMP。

進一步請參看這個網頁:
http://epierce.freeshell.org/gimp/gimp_ps.php

6) GIMP-2.0 Windows 版推介 Plugin(選擇性安裝):

=> Windows File-Open Plugin
(轉用 Windows 本身的檔案開啟介面)
http://registry.gimp.org/plugin?id=3908

=> Deweirdifyer Plugin
(改善 Windows 版因多重視窗,不利於 Ctrl-Tab 熱鍵切換當前軟件的問題)
http://registry.gimp.org/plugin?id=3892
http://gug.sunsite.dk/forum/?threadid=1630

星期日, 7月 16, 2006

gmail contact group

gmail終於有了contact group了,這對喜歡分享的我是件值得高興的事,以前想要轉寄mail的時候,常常要在contact選個半天,一不小心還會選錯,有時候想到動作繁複就懶得寄了.現在有了這個功能方便多了.
另外,還發現一個介紹gmail的好站,叫做GmailTip.com,裡面有很多不錯的小技巧哦

install xawtv

wget http://dl.bytesex.org/releases/xawtv/xawtv-3.94.tar.gz
tar xvfz xawtv-3.94.tar.gz
apt-get install libasound2-dev aalib1-dev liblircclient-dev xlibs-static-dev libdv4-dev libxv-dev x-dev libxext-dev libxt-dev libxrender-dev libxrandr-dev lesstif-dev libzvbi-dev xlibmesa-gl-dev libquicktime-dev libxaw7-dev
./configure --include /usr/src/linux/include
su
make install
exit

Install Kaffe

wget ftp://ftp.kaffe.org/pub/kaffe/v1.1.x-development/kaffe-1.1.5.tar.gz
tar xvfz kaffe-1.1.5.tar.gz
apt-get install xgettext libart-2.0-dev libxtst-dev libxt-dev
libgtk2.0-dev zlib1g-dev zip unzip libasound2-dev libgmp3-dev jikes
./configure
su
make install
exit
vi Hello.java
export CLASSPATH=.:/usr/local/kaffe/jre/lib/rt.jar:/usr/local/kaffe/jre/lib/tools.jar
jikes Hello.java
java Hello
[Hello, world!!!]

bash - for.sh

#!/bin/bash

COMMANDS=(
dmesg "cat /proc/asconf_info"
"cat /proc/cpuinfo"
)
#COMMANDS=(xxx yyy zz)

for i in ${COMMANDS}; do
    echo item:$i
done

echo "#="${#COMMANDS[*]}

i=0
while [ $i -lt ${#COMMANDS[*]} ]; do
    echo while:${COMMANDS[$i]}
    let i=i+1
done

echo ${COMMANDS[0]}
echo ${COMMANDS[1]}
echo ${COMMANDS[2]}

my kurobox

Linux kurobox 2.4.17_mvl21 #24 2004年 10月 19日 火曜日 17:17:03 JST ppc GNU/Linux

mike@kurobox:>dmesg
Memory BAT mapping: BAT2=128Mb, BAT3=0Mb, residual: 0Mb
Linux version 2.4.17_mvl21 (root@toda_dev.melcoinc.co.jp) (gcc version 2.95.3 20010315 (release/MontaVista)) #24 2004年 10月 19日 火曜日 17:17:03 JST
KURO-BOX (C) 2004 KUROUTO-SHIKOU.
On node 0 totalpages: 32768
zone(0): 32768 pages.
zone(1): 0 pages.
zone(2): 0 pages.
Kernel command line: root=/dev/hda1
OpenPIC Version 1.2 (1 CPUs and 139 IRQ sources) at 80040000
decrementer frequency = 32.493625 MHz
Calibrating delay loop... 172.85 BogoMIPS
Memory: 124760k available (1244k kernel code, 556k data, 188k init, 0k highmem)
Dentry-cache hash table entries: 16384 (order: 5, 131072 bytes)
Inode-cache hash table entries: 8192 (order: 4, 65536 bytes)
Mount-cache hash table entries: 2048 (order: 2, 16384 bytes)
Buffer-cache hash table entries: 8192 (order: 3, 32768 bytes)
Page-cache hash table entries: 32768 (order: 5, 131072 bytes)
POSIX conformance testing by UNIFIX
PCI: Probing PCI hardware
Linux NET4.0 for Linux 2.4
Based upon Swansea University Computer Society NET3.039
Initializing RT netlink socket
Starting kswapd
Disabling the Out Of Memory Killer
Journalled Block Device driver loaded
pty: 256 Unix98 ptys configured
MELCO INC. RTC driver ver 1.00
Serial driver version 5.05c (2001-07-08) with MANY_PORTS SHARE_IRQ SERIAL_PCI enabled
ttyS00 at 0x80004600 (irq = 138) is a 16550A
ttyS01 at 0x80004500 (irq = 137) is a 16550A
block: 128 slots per queue, batch=32
RAMDISK driver initialized: 16 RAM disks of 10000K size 1024 blocksize
Uniform Multi-Platform E-IDE driver Revision: 6.31
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
CMD680: IDE controller on PCI bus 00 dev 60
CMD680: chipset revision 2
CMD680: 100% native mode on irq 17
ide0: BM-DMA at 0xbffed0-0xbffed7, BIOS settings: hda:pio, hdb:pio
ide1: BM-DMA at 0xbffed8-0xbffedf, BIOS settings: hdc:pio, hdd:pio
hda: WDC WD2500JB-00REA0, ATA DISK drive
ide0 at 0xbffef8-0xbffeff,0xbffef6 on irq 17
hda: 488397168 sectors (250059 MB) w/8192KiB Cache, CHS=30401/255/63, UDMA(100)
Partition check:
hda: hda1 hda2 hda3
FLASHDISK:Initialized [FUJITSU MBM29PL32TM]
eth0: Identified chip type is 'RTL8169s/8110s'.
eth0: RTL8169s/8110s Gigabit Ethernet driver supports Jambo Frame 1.8n4b <2004-3-16> at 0xc9000f00, 00:0d:0b:69:6f:d6, IRQ 16
eth0: Auto-negotiation Enabled.
eth0: 100Mbps Full-duplex operation.
SCSI subsystem driver Revision: 1.00
request_module[scsi_hostadapter]: Root fs not mounted
usb.c: registered new driver usbdevfs
usb.c: registered new driver hub
hcd.c: ehci-hcd @ 00:0e.2, PCI device 1033:00e0 (NEC Corporation)
hcd.c: irq 19, pci mem c9002f00
usb.c: new USB bus registered, assigned bus number 1
hcd/ehci-hcd.c: USB 2.0 support enabled, EHCI rev 1. 0
hub.c: USB hub found
hub.c: 5 ports detected
usb-ohci.c: USB OHCI at membase 0xc9004000, IRQ 19
usb-ohci.c: usb-00:0e.0, NEC Corporation USB
usb.c: new USB bus registered, assigned bus number 2
hub.c: USB hub found
hub.c: 3 ports detected
usb-ohci.c: USB OHCI at membase 0xc9006000, IRQ 19
usb-ohci.c: usb-00:0e.1, NEC Corporation USB (#2)
usb.c: new USB bus registered, assigned bus number 3
hub.c: USB hub found
hub.c: 2 ports detected
usb.c: registered new driver usblp
printer.c: v0.11: USB Printer Device Class driver
Initializing USB Mass Storage driver...
usb.c: registered new driver usb-storage
USB Mass Storage support registered.
NET4: Linux TCP/IP 1.0 for NET4.0
IP Protocols: ICMP, UDP, TCP, IGMP
IP: routing cache hash table of 1024 buckets, 8Kbytes
TCP: Hash tables configured (established 8192 bind 8192)
NET4: Unix domain sockets 1.0/SMP for Linux NET4.0.
NET4: AppleTalk 0.18a for Linux NET4.0
RAMDISK: Compressed image found at block 0
Freeing initrd memory: 2137k freed
fff70000:4f4b4f4b
EXT2-fs warning: checktime reached, running e2fsck is recommended
VFS: Mounted root (ext2 filesystem).
fff70000:4f4b4f4b
kjournald starting. Commit interval 5 seconds
EXT3-fs: mounted filesystem with ordered data mode.
VFS: Mounted root (ext3 filesystem) readonly.
change_root: old root has d_count=2
Freeing unused kernel memory: 188k init
Adding Swap: 530136k swap-space (priority -1)
EXT3 FS 2.4-0.9.17, 10 Jan 2002 on ide0(3,1), internal journal
Trying to free nonexistent resource <80004600-80004607>
kjournald starting. Commit interval 5 seconds
EXT3 FS 2.4-0.9.17, 10 Jan 2002 on ide0(3,3), internal journal
EXT3-fs: mounted filesystem with ordered data mode.
NTFS driver v1.1.21 [Flags: R/O MODULE]

mike@kurobox:>cat /proc/asconf_info
PRODUCTNAME=KURO-BOX/HG(IESHIGE)
VERSION=1.00
SUBVERSION=FLASH 1.0
PRODUCTID=0x00001002
BUILDDATE=2004/10/19 17:18:54
BOOTFLAG=OK

mike@kurobox:>cat /proc/cpuinfo
cpu : 82xx
revision : 16.20 (pvr 8081 1014)
bogomips : 172.85
vendor : Motorola SPS
machine : Sandpoint
processor : PVID: 0x80811014, vendor: Motorola

mike@kurobox:>cat /proc/meminfo
total: used: free: shared: buffers: cached:
Mem: 130138112 122347520 7790592 0 16420864 74362880
Swap: 542859264 1847296 541011968
MemTotal: 127088 kB
MemFree: 7608 kB
MemShared: 0 kB
Buffers: 16036 kB
Cached: 71272 kB
SwapCached: 1348 kB
Active: 69264 kB
Inactive: 35964 kB
HighTotal: 0 kB
HighFree: 0 kB
LowTotal:       127088 kB
LowFree:          7608 kB
SwapTotal:      530136 kB
SwapFree:       528332 kB

mike@kurobox:>free
             total       used       free     shared    buffers     cached
Mem:        127088     119492       7596          0      16036      71272
-/+ buffers/cache:      32184      94904
Swap:       530136       1804     528332

mike@kurobox:>mount
/dev/hda1 on / type ext3 (rw,noatime,errors=remount-ro)
proc on /proc type proc (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
/dev/hda3 on /mnt type ext3 (rw,noatime)

mike@kurobox:>df
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/hda1             10325748    407036   9394192   5% /
/dev/hda3            229516916     32828 217825316   1% /mnt

mike@kurobox:>apt-get moo
         (__)
         (oo)
   /------\/
  / |    ||
 *  /\---/    ~~   ~~
...."Have you mooed today?"...

bash - printinfo.sh

#!/bin/bash
COMMANDS=(dmesg
"cat /proc/asconf_info" "cat /proc/cpuinfo"
"cat /proc/meminfo" free mount df "apt-get moo"
)

function info {
    echo
    echo "$user@$host:>$*"
    $*
}

user=`who | awk '{print $1}'`
host=`hostname`
uname -a
i=0
while [ $i -lt ${#COMMANDS[*]} ]; do
    cmd=${COMMANDS[$i]}
    #if cat then check file is exist
    if [ "${cmd:0:3}" = "cat" ]; then
        if [ -e ${cmd:4} ]; then
            info $cmd
        fi
    else
        info $cmd
    fi
    let i=i+1
done

How to develop GTK2 program on windows

1.download files
all files coming from http://www.gimp.org/~tml/gimp/win32/downloads.html
ftp://ftp.gtk.org/pub/gtk/v2.6/win32/glib-2.6.5.zip
ftp://ftp.gtk.org/pub/gtk/v2.6/win32/glib-dev-2.6.5.zip
ftp://ftp.gtk.org/pub/gtk/v2.6/win32/gtk+-2.6.8.zip
ftp://ftp.gtk.org/pub/gtk/v2.6/win32/gtk+-dev-2.6.8.zip
ftp://ftp.gtk.org/pub/gtk/v2.6/win32/pango-1.8.0.zip
ftp://ftp.gtk.org/pub/gtk/v2.6/win32/pango-dev-1.8.0.zip
ftp://ftp.gtk.org/pub/gtk/v2.6/win32/atk-1.9.0.zip
ftp://ftp.gtk.org/pub/gtk/v2.6/win32/atk-dev-1.9.0.zip

2.extract them to the same directory
my case is D:\work\test\vc\gtk2\devel

3.edit your environment variable
call System Properties dialog
call System Properties dialog



press Enviorment variable button
press Enviorment variable button



add a system variable GTK2DEVEL
add a system variable GTK2DEVEL


append your devel directory to Path variable
append your devel directory to Path variable

4.start your VC6
start your VC6


5.new a Win32 Console Application
new a Win32 Console Application

6.choose An empty project.
choose An empty project.

7.Insert a file into project named "hello.c"
Insert a file into project named hello.c

8.copy and paste the hello world code and save
here is the code
http://www.gtk.org/tutorial/ch-gettingstarted.html#SEC-HELLOWORLD


9.choose menu /Project/Settings and C/C++ tab with Category Code Generation then modify Use run-time library to Debug Multithreaded DLL


10.choose Category Preprocessor then modify Additional include directories to
$(GTK2DEVEL)/include,$(GTK2DEVEL)/include/gtk-2.0,$(GTK2DEVEL)/include/glib-2.0,$(GTK2DEVEL)/lib/glib-2.0/include,$(GTK2DEVEL)/include/pango-1.0,$(GTK2DEVEL)/lib/gtk-2.0/include,$(GTK2DEVEL)/include/atk-1.0


11.change to Link tab and Category Input then append Object/library modules with
gobject-2.0.lib glib-2.0.lib gtk-win32-2.0.lib gdk-win32-2.0.lib gdk_pixbuf-2.0.lib iconv.lib


12.modify Additional library path to
$(GTK2DEVEL)/lib


13.compile it


14.run and hello world

LaTTe和Kaffe的不同

原文出處
http://latte.snu.ac.kr/doc/difference_kaffe.shtml

LaTTe一開始是建立於Kaffe 0.9.2的源碼上,是個自由免費的Java virtual machine.不過Java virtual machine的核心部份幾乎被改寫.包括了bytecode execution engines, garbage collector, exception manager及thread synchronization mechanism.

首先,LaTTe的執行引擎(例如:JIT compiler and the interpreter)是從頭寫起.因為,Kaffe把重點放在可移植性及支援多平台上,它有的是一個相對簡單的JIT compiler和有點慢的interpreter.相反的,LaTTe有的是用組合語言精心撰寫的JIT compiler及相當快的interpreter.此外,LaTTe可以同時使用JIT compiler及interpreter,而Kaffe只可以使用其中一個.

garbage collector對效能有很大的影響.Kaffe提供了一個老式的標記-清除的garbage collector.LaTTe也使用了標記-清除的garbage collector,但只有部分用了老方法.LaTTe的garbage collector的內部結構和Kaffe完全不同.而且實作後在LaTTe上表現的非常快.

LaTTe並沒有在轉譯method時,轉譯Java method中的exception handlers.而是當process丟出例外時才轉譯.因此,LaTTe的exception manager的作法和Kaffe不同.此外,不論例外是由已轉譯的程式碼,或是由interpreter中丟出,對LaTTe來說都是毫無影響,但對Kaffe就不然.

LaTTe使用了經過少許修改的Kaffe的user-level thread system.但是,支援Java monitors的thread synchronization mechanism是重新設計的,為的是要比Kaffe快.這個新的synchronization的設計,使得物件架構變的不同.

Install Linux VServer


Linux VServer Project
apt-get install libncurses5-dev gcc g++ make patch kernel-package
wget http://www.kernel.org/pub/linux/kernel/v2.4/linux-2.4.30.tar.bz2
tar xvfj linux-2.4.30.tar.bz2
wget http://www.13thfloor.at/vserver/s_release/v1.2.10/patch-2.4.30-vs1.2.10.diff.bz2
bunzip2 patch-2.4.30-vs1.2.10.diff.bz2
cat patch-2.4.30-vs1.2.10.diff patch -p1
make menuconfig
make dep
make-kpkg kernel_image
su
make-kpkg kernel_image
dpkg -i kernel-image-2.4.30-vs1.2.10_10.00.Custom_i386.deb
wget http://www.13thfloor.at/vserver/s_release/v1.2.10/util-vserver-0.30.tar.bz2
tar xvfj util-vserver-0.30.tar.bz2
./configure
make install
mkdir /vservers
chmod 000 /vservers
chattr +t /vservers
wget http://www.paul.sladen.org/vserver/debian/debian-newvserver.sh
chmod +x debian-newvserver.sh
vi debian-newvserver.sh
[MIRROR="http://debian.linux.org.tw/debian"]
[EXTRA_PACKAGES=""]
debian-newvserver.sh --hostname vs1 --domain domain --ip 192.168.0.221
vserver vs1 enter
vi /etc/ssh/sshd_config
[Port 221]
exit
vserver vs1 start
ssh -p 221 192.168.0.221