November 25, 2007

兆 = 百萬 ?

大陸都稱 M 為兆, 詢問他們為什麼 1兆 = 1百萬, 也說不出所以然,
Google 查到這種說法源自於十進位系統, 十 百 千 万 亿 兆 京 彼此之間都差十倍, 十億為兆, 即 106
一般數學上的兆為 1012, 避免混淆, 1012用「萬億」表達.
科技上所用到的兆都指106, 如百兆網路(100M), 兆赫(MHz)等.
ref. 維基百科 - 兆 | "兆" 有多大

Posted by pank at 09:04 PM | Comments (0)

October 05, 2007

Linux-VServer

DreamHost 看到新服務 Private Servers, 才知道有 Linux-VServer 這個好用的 virtual machine, 於是就拿來試試看.

以下範例環境為 Mandriva 2007.1
由於 Linux-VServer kernel level isolation 的 virtual machine, 效能比 VMware, Virtual PC 等軟體要好很多,
所以 Kernel 必需要 patch, Linux Kernel 2.6.22.29 + vs2.2.04
Patch 完後, 一些 VS 相關的 CONFIG 已經有開啟, 不需額外設置.
編完後使用新的 Kernel 開機
安裝所需的工具
urpmi --auto util-vserver
urpmi --auto util-vserver-build
會安裝 util-vserver* 的相關套件

使用 Guest Image, 這裡用 debian-3.1-i386-minimal.tar.gz
wget -O debian-3.1-i386-minimal.tar.gz http://lylix.net/component/option,com_remository/Itemid,304/func,download/id,21/chk,ad695f2687833170ce7b8f7010843fcc/

建立 virtual machine
vserver debian build -m template --hostname debian.pank.org --interface eth0:192.168.0.11/24 -- -t stage3-i586-20060317.tar.bz2
建立的方式有很多種, -m template 是使用 tarball 方式, 也就是上一步驟抓的 Guest Image, 也可以由現有的系統自己做.

啟動 virtual machine
vserver debian start
出現錯誤訊息 ncontext: vc_net_create(): Invalid argument
根據官網的 FAQ 作修正
echo 101 > /etc/vservers/debian/context
再啟動就可以了

進入 virtual machine
vserver debian enter

最後修改 Host 的 sshd_config, ListenAddress 必需指派 IP, 不能用 0.0.0.0,
如此才能順利連到 virtual machine 的 sshd (ref. 在 VServer 上安裝各種網路服務的注意事項)

因為 VServer 使用 chroot 機制, 會有一些限制.
一些資源, 像網路卡是和 Host 共用(MAC 一樣)

Posted by pank at 12:33 AM | Comments (0)

September 11, 2007

Get stand alone MSI from Windows Live Installer

使用 Windows Live Installer 安裝後, 可以在下列路徑取得獨立的 MSI 安裝檔,
%windir%\system32\config\systemprofile\Local Settings\Application Data\WindowsLiveInstaller\MsiSources
例如 Windows Live Messenger 是 Install_{6560D90C-5223-49A3-B78C-A48C31EAEC56}.msi
2007-11-06 Update: 8.5.1302 的路徑改成 %ProgramFiles%\Common Files\WindowsLiveInstaller\MsiSources
有了原始 MSI 檔, 就可以做出 MSI 格式的 Pure Windows Live Messenger 8.5.1288

Posted by pank at 01:06 AM | Comments (0)

September 05, 2007

csv2sql

如果有大量的 csv 格式資料(逗點分隔的文字檔)要匯入資料庫, 可以這樣做
sed -e "s/^/INSERT TABLE_NAME values('/;s/$/');/;s/,/','/g" file.csv > file.sql

Posted by pank at 11:23 AM | Comments (0)

July 31, 2007

Adjust Windows Internet Time Synchronization Interval

如果你的電腦時間一天就差了好幾秒, 想要把網際網路時間調整成每天同步一次

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient]
"SpecialPollInterval"=dword:00015180

預設是七天(dword:0093a80)
ref. 設定 Windows Time 服務,以防止大規模的時間位移

Posted by pank at 09:29 AM | Comments (0)

July 29, 2007

HiNet Spam Mail Tag

大概從 2007-03-21 開始, 經過 HiNet mail server 的信, 若被判斷是 Spam, Header 會加上兩個 Tag
X-Brightmail-Tracker:
X-HiNet-Brightmail: Spam

這個應該是給 Webmail 用的, 有 X-HiNet-Brightmail: Spam 的就會分類在垃圾信件匣.

把 Mail forward 到自己的 Server, 這個 Tag 也可以拿來用, 例如用 procmail
:0
* ^X-HiNet-Brightmail: Spam
/dev/null

Posted by pank at 11:58 PM | Comments (0)

July 26, 2007

Fix MSN/Windows Live Messenger error code 80072efd

先看看官方的 如何修復錯誤碼 81000365、8100035b 或 80072EFD?
若還是不行, 用 Regsvr32 來重新登錄一些 dll 檔
regsvr32 softpub.dll wintrust.dll initpki.dll dssenh.dll rsaenh.dll gpkcsp.dll sccbase.dll slbcsp.dll cryptdlg.dll
ref. DrLBlogs-寧靜的海豚-MSN 80072efd錯誤的解決辦法

Posted by pank at 10:47 AM | Comments (0)

July 22, 2007

Taiwan High Speed Rail

7/21 搭高鐵去台北一日遊, 去程(台中到台北) 50 分鐘, 回程 49 分鐘, 坐下來休息一下就到了, 真快.
行車時還滿穩的, 感覺不出是以 250~290 KM/H 的速度在前進.
可能是因為票價偏高, 雖然是假日, 但是搭的人不多, 約有 3/4 都是空位.

Posted by pank at 01:24 AM | Comments (0)

June 12, 2007

MySQL init_connect is not executed for users that have the SUPER privilege

使用具有 SUPER 權限的 User 連資料庫, 寫在 my.cnf 的 init_connect 將不執行,
因為萬一 init_connect 寫錯, 一般 User 無法連線時, SUPER User 還可以連進資料庫,
修正此參數.
ref. MySQL: System Variables

Posted by pank at 01:14 PM | Comments (0)

April 30, 2007

SquashFS

SquashFS 是類似 cramfs 的壓縮式唯讀檔案系統
目前還沒有進 Kernel, 需用 Patch 方式加入 SquashFS 的功能.
SquashFS 的壓縮率明顯比 cramfs 好, 拿 /usr/local/apache (v2.2.4, 28M) 來作測試,
SquashFS size 9207808, cramfs size 11780096, SquashFS 的 size 是 cramfs 的 78%
另外還有 Squash LZMA Patch, 可以有更高壓縮率.

Posted by pank at 12:06 PM | Comments (0)

April 26, 2007

Enable scrollback with PuTTY+screen

PuTTY 若是遇到軟體是用 alternate screen, 就不會把 buffer 加到 scrollback,
然而 screen 就是用 alternate screen, 所以 PuTTY+screen scrollback 會失效.
有兩種方式可以解決
1. 停用 PuTTY 的 alternate screen
Terminal / Features / Disable switching to alternate terminal screen
2. 停用 screen 的 alternate screen
加一行 termcapinfo xterm ti@:te@ 到 screenrc
ref. A.7.19 Since I upgraded to PuTTY 0.54, the scrollback has stopped working when I run screen.

Posted by pank at 11:25 AM | Comments (0)

April 19, 2007

Windows 2K/XP set NUMLOCK on

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Control Panel\Keyboard]
"InitialKeyboardIndicators"="2"

ref. InitialKeyboardIndicators
"InitialKeyboardIndicators"="0" NUMLOCK is off.
"InitialKeyboardIndicators"="2" NUMLOCK is on.

Posted by pank at 11:00 AM | Comments (0)

April 09, 2007

Mandriva(Mandrake) RPM Search Update

Mandriva(Mandrake) RPM Search
URL 指向 Mirror 站 (舊版: 檔案是放 Local, 且只有 i586 的 RPM),
使用 Mirror 站 rsync 過來的 File List, 使搜尋範圍更廣, SRPMS, x86_64, updates 等都可以找到.
搜尋結果指向的 Mirror 站如下:
TW - Taiwan mirror ftp.isu.edu.tw
DE - Germany mirror wftp.tu-chemnitz.de
FR - France mirror fr2.rpmfind.net
JP - Japan mirror ftp.kddlabs.co.jp
US - United States mirror mirrors.usc.edu
ref. Mandriva(Mandrake) RPM Search

Posted by pank at 12:44 AM | Comments (0)

March 31, 2007

Command line printing for Acrobat Reader

AcroRd32.exe /t file.pdf 可以直接把 PDF 檔印出來, 適用 7.0.x 版 (Acrobat Reader 7.0.9 中文版)
若有大量的 PDF 檔要印, 用 /t 參數寫批次檔是最快的.
但是在 Adobe Reader 8 此參數好像拿掉了, 試了沒反應.

Posted by pank at 01:58 AM | Comments (0)

March 21, 2007

mtop - MySQL top

mtop 可以列出 MySQL Server 目前有那些 user, 從那邊連過來, 下什麼 SQL 指令

Posted by pank at 12:27 AM | Comments (0)

March 16, 2007

[Shell Script] Sort IP Addresses

# cat host
140.117.1.77
140.117.11.7
140.1.99.1
# sort host
140.117.11.7
140.117.1.77
140.1.99.1
# sort -t. -nk1,1 -k2,2 -k3,3 -k4,4 host
140.1.99.1
140.117.1.77
140.117.11.7

Posted by pank at 04:18 PM | Comments (0)

March 08, 2007

BIND dump cache

BIND 8
kill -2 `pidof named`

BIND 9
rndc dumpdb

cache will saved as named_dump.db in named directory.

Posted by pank at 02:16 PM | Comments (0)

March 07, 2007

[PHP] Send mail with remote SMTP server

主機若沒有跑 mail service, 要用 PHP 透過其他 SMTP 來寄信,
Windows 下可以改 php.ini
[mail function]
SMTP = smtp_server
其他 UNIX 環境, 不支援上面的方法, 真怪.
大致有兩種做法:
1. 使用現成 Class, 如 PEAR::Net_SMTP, phpguru.org - SMTP class, 這些 Class 是透過 fsockopen() 的方式寄信
2. 裝 Light SMTP Agent, 如: mini_sendmail
然後改 php.ini 裡的 sendmail_path
sendmail_path = /usr/local/sbin/mini_sendmail -s smtp_server -t

Posted by pank at 11:13 AM | Comments (1)

February 27, 2007

Run cron jobs at last day of the month

for Linux
0 8 28-31 * * [ `date -d tomorrow +\%e` -eq 1 ] && do-something

for other Unix,BSD
0 8 28-31 * * [ `echo \`cal\` | awk '{print $NF}'` -eq 1 ] && do-something

More, run cron jobs at last workday of the month
0 8 26-31 * * root [ `echo \`cal | cut -d' ' -f2-6\` | awk '{print $NF}'` -eq `date +%e` ] && do-something

ref. 系统管理員工具包: 時間和事件管理

Posted by pank at 10:25 AM | Comments (0)

February 07, 2007

MySQL OPTIMIZE TABLE

MySQL 在刪除資料時, 並不會釋放出磁碟空間,
當刪除很多資料時, 可以用 OPTIMIZE TABLE 來把資料 defrag 一下, 並且會釋放出磁碟空間.
OPTIMIZE TABLE tbl_name

Posted by pank at 05:28 PM | Comments (0)

February 04, 2007

Bind up/down arrow key to BASH history-search

在 ~/.bashrc 或 /etc/bashrc 加入以下兩行
bind '"\x1b\x5b\x41":history-search-backward'
bind '"\x1b\x5b\x42":history-search-forward'
這樣就可以鍵入 command prefix + 上下鍵做 history search, 很方便.
感謝 zxvc 提供
ref. [心得] 好用的bash history function

Posted by pank at 01:03 AM | Comments (0)

January 24, 2007

BASH socket IO

BASH 可以藉由存取
/dev/tcp/host/port
/dev/udp/host/port
來作簡單的 socket IO
看實例:
bashget.sh 使用 /dev/tcp/host/80 抓 http:// 檔案, 類似 wget 簡易版
bashmail.sh 使用 /dev/tcp/host/25 發 mail
ref.
Unixjunkie Blog: Two Cool Bash Tricks
Bash tricks | bhaskarvk.info

Posted by pank at 05:35 PM | Comments (0)

January 10, 2007

Batch create users

useradd -p`echo 1234 | openssl passwd -stdin` test
(create user test with password 1111 using default crypt algorithm)
useradd -p`echo 1234 | openssl passwd -1 -stdin` test
(create user test with password 1111 using MD5 algorithm)

Posted by pank at 10:16 AM | Comments (0)

December 10, 2006

[PHP] File 'NONEXISTENT/charsets/?.conf' not found (Errcode: 2)

會產生這個錯誤的原因是 PHP 所使用的 MySQL lib 和 MySQL 的版本不搭,
解決方式是重新編譯 PHP, configure 時加入 --with-mysql=/usr 指定 MySQL 正確位置.
最後用 phpinfo() 檢查一下 MySQL Client API version 和系統是否一致.
ref: PHP誌:File `NONEXISTENT/charsets/?.conf` not found (Errcode: 2)

Posted by pank at 04:28 AM | Comments (0)

MySQL Replication

MySQL Replication 可以把資料庫即時複製到另一台主機, MySQL 備援、Load Balance 都會用到.
範例: A(Master, IP:10.1.1.1) -> B(Slave)
先把兩邊的 MySQL 停掉, 把 A 的資料庫複製到 B, 用 tar 的就可以了.
A(Master) my.cnf 設定

[mysqld]
server-id=1
log-bin
binlog-do-db=dbname

B(Slave) my.cnf 設定
[mysqld]
server-id=2
log-bin
master-host=10.1.1.1
master-user=root
master-password=password
replicate-do-db=dbname
log-slave-updates

Slave 必需有權限可以存取 Master 的指定資料庫, 設完後啟動兩邊的 MySQL.
檢查:
在 A 進入 mysql -u root
show master status; 看看有無指定資料庫的資料.
在 B 進入 mysql -u root
show slave status; 看看有無指定資料庫的資料, 並且有兩個 Yes.
測試:
在 A 指定資料庫建立一個新的 Table, 看看 B 有沒有自動建立.
若無法成功, 把兩邊的 MySQL 停掉, 到 MySQL 資料目錄(預設在/var/lib/mysql),
rm -f *-bin.* *.info
再把兩邊的 MySQL 啟動.
ref. MySQL Replication 設定分享

Posted by pank at 03:51 AM | Comments (0)

December 04, 2006

Christmas Spam

接近聖誕節, 開始促銷各式各樣的聖誕節禮物, Spam 數量會攀升, 稱 Christmas Spam.
附圖是 pank.org 使用 bogofilter 所過濾出的 Spam 統計.
大概11月中, Spam 數量就開始竄高.
ref. Don't let Christmas spam fill your email stocking, Sophos warns

Posted by pank at 02:51 PM | Comments (0)

November 21, 2006

lftp limit-rate

lftp 是少數能做到限速的 ftp client
set net:limit-rate 1048576:102400
表示下載 1M, 上傳100K (bytes per second), 預設是 0:0 (無限制)
也可以把設定加到 lftpd.conf
例:
printf "set net:limit-rate 1048576:102400\nget ls-lR.gz\n" | lftp ftp.isu.edu.tw

Posted by pank at 11:28 AM | Comments (0)

November 14, 2006

Remove System Volume Information

若用不到 Windows XP/2003 下的「系統還原」功能, 可以把 System Volume Information 清除,
以節省一些硬碟空間, 僅適用 NTFS 分割區.
關閉系統還原(控制台>系統>系統還原>關閉所有磁碟上的系統還原)
停止 Distributed Link Tracking Client 服務(控制台>系統管理工具>服務)
cacls "c:\System Volume Information" /e /g everyone:f
rd/q/s "c:\System Volume Information"
c: ~ h: 批次處理範例:
for %d in (c d e f g h) do cacls "%d:\System Volume Information" /e /g everyone:f
for %d in (c d e f g h) do rd/q/s "%d:\System Volume Information"
清完後多了不少空間.

Posted by pank at 01:00 AM | Comments (0)

November 10, 2006

RedHat9: rpmdb: unable to join the environment

會出現這個訊息是在 RedHat9 用 Kernel 2.6 開機, 然後用 rpm -q 或 rpm -qa 做查詢動作.
此問題和 O_DIRECT 有關.
解決方法有兩個:
1. export LD_ASSUME_KERNEL=2.2.5 (Workaround)
2. upgrade RPM to rpm-4.2-1.i386.rpm (need reboot to work fine)
ref. Bugzilla Bug 92247: rpmdb: unable to join the environment - db4 error(11) from dbenv->open: Resource temporarily unavailable

Posted by pank at 04:36 PM | Comments (0)

November 09, 2006

comm

comm 這個指令可以比對兩個已排序的檔案相同的地方
輸出有三個欄位,
column 1 只有出現在 file1
column 2 只有出現在 file2
column 3 兩個檔案相同的地方
參數
-1 不顯示 column 1
-2 不顯示 column 2
-3 不顯示 column 3
如: comm -12 file1 file2 就可以秀出兩個檔案相同的地方

Posted by pank at 12:12 AM | Comments (0)

October 04, 2006

GCC >= 4.0 is not supported by kernel 2.4

一年前用 Mandriva 2006 時, 就覺得很奇怪, make kernel 2.4.x 都會有問題.
一直到 kernel 2.4.33 出了(2006-08-11 released), 才知道原因:
in init/main.c
/*
* gcc >= 4 is not supported by kernel 2.4
*/
#if __GNUC__ > 3
#error Sorry, your GCC is too recent for kernel 2.4
#endif

Posted by pank at 09:09 AM | Comments (0)

September 25, 2006

WinsockXPFix

有時移除木馬或病毒後, 可能會造成無法上網的狀況.
原因是木馬或病毒在網路服務中加入自己的程式, 並且修改 Registry Keys,
當移除木馬或病毒時, 沒有修復 Registry Keys 反而造成無法上網.
症狀:
無法上網
ping 可以通, 但是會出現嗶聲, 第一行會出現一個問號
Pinging ? with 32 bytes of data:

Reply from 168.95.1.1: bytes=32 time=5ms TTL=243
Reply from 168.95.1.1: bytes=32 time=5ms TTL=243
Reply from 168.95.1.1: bytes=32 time=4ms TTL=242
Reply from 168.95.1.1: bytes=32 time=4ms TTL=242
nslookup 可以查, UDP OK
在 cmd(命令提示字元)下執行 TCP 動作
如: telnet ptt.cc
會出現錯誤訊息「無法載入或初始化所要求的服務提供者」
這種問題可以用 WinsockXPFix (載點2) 來修復.
軟體說明:
This Utility Restores Registry Keys,
that may become Corrupt after Removing the Host Program that Modified them.
如果是 Windows XP SP2 可以使用 netsh winsock reset, netsh winsock reset 的效果和 WinsockXPFix 一樣(2007-06-13)
相關軟體: HijackThis LSP-Fix
ref. 資安論壇 :: 觀看文章 - 是否是病毒or木馬?已經多台電腦網路正常可ping但網頁死掉!!!
如何判定並修復 Winsock2 毀損

Posted by pank at 03:26 PM | Comments (0)

September 21, 2006

PPPoE Server + FreeRADIUS + MySQL

準備檔案
wget ftp://ftp.samba.org/pub/ppp/ppp-2.4.4.tar.gz
wget http://www.roaringpenguin.com/penguin/pppoe/rp-pppoe-3.8.tar.gz
wget ftp://ftp.freeradius.org/pub/radius/freeradius-1.1.3.tar.bz2

以下設定
MySQL Server 用 mysql_server 代稱
RADIUS Server 用 radius_server 代稱
實作時請換成您的 Server IP 或 Hostname
MySQL 部分
tar jxf freeradius-1.1.3.tar.bz2
mysqladmin -u root -p create radius
mysq -u root -p radius < freeradius-1.1.3/./doc/examples/mysql.sql
mysql -u root -p radius
先加入一些資料
insert into radgroupreply (groupname,attribute,op,value) values ('user','Auth-Type',':=','Local');
insert into radgroupreply (groupname,attribute,op,value) values ('user','Service-Type','=','Framed-User');
insert into radgroupreply (groupname,attribute,op,value) values ('user','Framed-IP-Netmask','=','255.255.255.255');
insert into radgroupcheck (groupname, attribute, op, value) values ("user", "Auth-Type", ":=", "Local");
加入使用者
insert into radcheck (username,attribute,op,value) values ('pank','User-Password','==','1111');

FreeRADIUS 部分
tar jxf freeradius-1.1.3.tar.bz2
cd freeradius-1.1.3
./configure && make install
cd /usr/local/etc/raddb
編輯 clients.conf, secret 是 Client 端連 FreeRADIUS 所需的密碼(shared secret)

client 127.0.0.1 {
secret = 1234
shortname = localhost
}

client 192.168.0.0/16 {
secret = 1234
shortname = lan
}


編輯 radius.conf, 開啟 sql 並 mark 掉不需要的部分
authorize {
preprocess
chap
mschap
suffix
sql
...
}

accounting {
...
sql
...
}


編輯 sql.conf
...
server = "mysql_server"
login = "mysql_username"
password = "mysql_password"
radius_db = "radius"

測試能否正常運作
radiusd -X
radtest pank 1111 mysql_server 0 1234
若有看到 Access-Accept 就 OK

PPPoE Server 部分
tar zxf ppp-2.4.4.tar.gz
tar zxf rp-pppoe-3.8.tar.gz
cd ppp-2.4.4
./configure && make install
cd ../rp-pppoe-3.8/src
./configure --enable-plugin=../../ppp-2.4.4
--enable-plugin 是必要參數, 才能使用 -k (kernel-mode PPPoE)
make install
cp ppp-2.4.4/pppd/plugins/radius/radius.so /etc/ppp/plugins
cp ppp-2.4.4/pppd/plugins/radius/etc/* /etc/ppp/radius
編輯 /etc/ppp/options

lock
crtscts
nobsdcomp
nodeflate
nopcomp
plugin /etc/ppp/plugins/radius.so
radius-config-file /etc/ppp/radius/radiusclient.conf

編輯 /etc/ppp/radius/radiusclient.conf
auth_order radius
login_tries 4
login_timeout 60
nologin /etc/nologin
issue /etc/ppp/radius/issue
authserver radius_server:1812
acctserver radius_server:1813
servers /etc/ppp/radius/servers
dictionary /etc/ppp/radius/dictionary
login_radius /usr/local/sbin/login.radius
seqfile /var/run/radius.seq
mapfile /etc/ppp/radius/port-id-map
default_realm
radius_timeout 10
radius_retries 3

編輯 /etc/ppp/radius/servers
radius_server 1111

pppoe-server -k -I eth0 -L 192.168.1.10 -R 10.0.0.1 -N 64
啟動 PPPoE Server (kernel-mode), Server Local IP 是 192.168.1.10, Client 端的起始 IP 10.0.0.1, 最多同時 64 個 Clients 同時連線.

Posted by pank at 08:38 AM | Comments (2)

September 20, 2006

OpenVPN

OpenVPN 可以使用任何單一 Port 來建立 VPN Tunnel
Linux Kernel 需要有 TUN/TAP 支援
Network device support > Universal TUN/TAP device driver support

準備檔案
wget http://openvpn.net/release/openvpn-2.0.8.tar.gz

安裝
tar zxf openvpn-2.0.8.tar.gz
cd openvpn-2.0.8
./configure && make install
cd easy-rsa/2.0
編輯 vars 指定變數
. vars (載入 vars)
./build-ca (產生 CA cert, keys/ca.*)
./build-key-server server (產生 Server Key, keys/server.*)
./build-dh (產生 DH parameters, keys/dh1024.pem)
./build-key client1 (產生 Client1 Key, keys/client1.*)
openvpn --genkey --secret keys/ta.key (產生 tls-auth Key)
mkdir /usr/local/etc/openvpn
cp -a keys /usr/local/etc/openvpn

Server 端設定
編輯 /usr/local/etc/openvpn/server.conf

dev tun
port 443
proto tcp # use tcp, could pass by proxy server
server 192.168.2.0 255.255.255.0
push "redirect-gateway" ; 自動將 Client 的 default gateway 設成經由 VPN Server 出去
push "dhcp-option DNS 168.95.192.1"
push "dhcp-option DNS 168.95.192.2"
client-to-client
ifconfig-pool-persist ipp.txt ; 此檔 Server 會自動產生
keepalive 10 120
tls-server
ca /usr/local/etc/openvpn/keys/ca.crt
cert /usr/local/etc/openvpn/keys/server.crt
key /usr/local/etc/openvpn/keys/server.key
dh /usr/local/etc/openvpn/keys/dh1024.pem
comp-lzo
persist-tun
persist-key
status openvpn-status.log
verb 3

Client 端設定
Config 檔存成 client1.ovpn
client
dev tun
dev-node OpenVPN ; 此名稱需和 TAP-Win32 virtual ethernet adapter 連線名稱一致, 預設應是「區域連線n」, 按 F2 改名為 OpenVPN
proto tcp
remote 218.187.1.1 443 ; 218.187.1.1 為 Server IP
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client1.crt
key client1.key
comp-lzo
verb 3

Client 端可以使用 OpenVPN GUI for Windows
將 client1.* (Config, Key等) 放到 X:\Program File\OpenVPN\config
在 OpenVPN Tray Icon 按兩下就可以開始連線
ref.
OpenVPN - Richliu's wiki
MacBlog3:使用 OpenVPN
OpenVPN - DebianWiki
Gentoo Forums - OpenVPN 2.0 TAP mini-HOWTO

Posted by pank at 02:13 AM | Comments (0)

September 02, 2006

MT Scode be Hacked

昨天我的 Blog 被留下大量的 Comment spam, 可見目前的 Spam bot 已經進步到可以辨識一些 Captcha.
所以 MTScode 已經沒什麼作用, Scode 的 Captcha 簡單且具規則性, 被破也不足為奇, 可參考 PWNtcha - captcha decoder
應急之策是修改 lib/MT/App/Comments.pm, 在 my $sscode 那行, 增加自訂的字串,
例如我的 Blog 是要加 A
看到 Security Code 是 7777, 請輸入 A7777

Posted by pank at 07:06 PM | Comments (0)

July 30, 2006

LightScribe 光速寫

最近添購了一台 HP 740e
LightScribe (光速寫)HP 研發的技術, 出現在 2004 年, 直到最近, 市場上才看到平價的 LightScribe 燒錄機.
現在只支援灰階, 我覺得效果已經不錯了. 將來一定會出現彩色的技術.
目前 LightScribe 的空片價位: CD-R NT 15~20/片. DVD NT 25~40/片
ref. HP台灣 - 數位娛樂新世界 - 如何使用 - LightScribe

Posted by pank at 03:30 AM | Comments (2)

July 28, 2006

Gmail Full Again

上次 1G 的時候, 大概一年多, 容量又滿了 :(
Gmail 容量上升的速度, 比我 Mail 容量增加的速度還慢.

曾到 Help Center 詢問是否可以經由付費提升容量, 不過還沒有回應.
之前 1G 時, 容量可以超過而不會有退信, 而現在容量達到上限就會有如下的退信

From: Mail Delivery Subsystem <mailer-daemon@googlemail.com>
Subject: Delivery Status Notification (Failure)

This is an automatically generated Delivery Status Notification
Delivery to the following recipient failed permanently:

username@gmail.com


先把 Spam 全砍了再用一陣子, 再滿就要換帳號了, 還好我只用來備份備 Mail, 換帳號只要改一下 Forward 設定即可.
另外在砍 Spam 時發現有一個新功能 Delete all spam messages now (英文版).

Posted by pank at 01:11 AM | Comments (0)

July 10, 2006

WLM: 移除我的電腦裡的「我的共用資料夾」

裝了 WLM 後, 我的電腦裡會多了一個「我的共用資料夾」, 用不到又覺得礙眼? 以下是移除方法:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\CLSID\{FC9FB64A-1EB2-4CCF-AF5E-1A497A9B5C2D}\ShellFolder]
"Attributes"=dword:f0500000

要復原 "Attributes"=dword:f0000000
或是把 Attributes 刪除

Posted by pank at 09:40 PM | Comments (2)

July 04, 2006

Windows Vista's Memory Diagnostic

Windows Vista 灌好後, 在開機選單有一個 Tools: Windows Memory Diagnostic
這個功能還滿實用的, 很多電腦不穩的狀況都是因為 RAM 的關係.
其實微軟很早就有提供測 RAM 的免費工具: Microsoft Windows Memory Diagnostic,
可做成 Floppy 或 CD 開機測試片.

Posted by pank at 11:15 PM | Comments (0)

June 28, 2006

PHP MSSQL extension

要先裝 FreeTDS
PHP configure 時加 --with-mssql
編輯 /usr/local/etc/freetds.conf

[mssql]
host = your_mssql_server
port = 1433
client charset = cp950
tds version = 8.0

MSSQL 2000 以上 tds version 可以用 7.0 或 8.0, 我用 MSSQL 2005, tds version = 8.0 沒問題.
可以先用 tsql -S servername -U username -P password 作測試,
servername 是 freetds.conf 裡訂的識別字串(本例是 mssql)
PHP 程式內用
mssql_connect('mssql','username','password'); // 這邊和 mysql_connect 不同, 第一個參數是 servername, 參照 freetds.conf
mssql_select_db('your_db'); // 某些狀況此步驟可省略
其他的 mssql functionmysql 的大同小異.

Posted by pank at 12:57 AM | Comments (0)

June 24, 2006

WLM: 新增自己為連絡人

WLM 竟然可以新增自己為連絡人, 這算是 Bug 嗎?
不過無法和自己聊天, 點進去會進入 Windows Live Mail

2006-06-26 Update: 原來早就可以新增自己為連絡人

Posted by pank at 01:24 AM | Comments (4)

June 22, 2006

PHP/MySQL Client does not support authentication protocol requested by server

Warning: mysql_connect(): Client does not support authentication protocol requested by server; consider upgrading MySQL client in xxxx.php
原因: MySQL 4.1 以上版本使用了新的密碼驗證機制,
而 PHP 4.x 內建的 MySQL Library 是 3.23, 不支援新的密碼驗證機制.
解決方法:
mysql> SET PASSWORD FOR 'some_user'@'some_host' = OLD_PASSWORD('newpassword');
mysql> FLUSH PRIVILEGES;
ref. MySQL 5.0 Reference Manual :: A.2.3 Client does not support authentication protocol
MySQL 4.1.7 and PHP 4.3.x 搭配注意事項

Posted by pank at 01:36 PM | Comments (0)

June 17, 2006

Coke + Mentos = Fountain

曼陀珠丟進可樂就會出現噴泉效果
影片1 | 影片2
CNN:網路流行蔓陀珠配可樂的噴泉效果

Posted by pank at 01:43 AM | Comments (0)

June 13, 2006

BASH/TCSH Auto Logout

for BASH, set TMOUT variable, unit: seconds
e.g. export TMOUT=300
   (auto logout if 5 minutes idle)

for TCSH, set autologout variable, unit: minutes
e.g. set autologout=5
   (auto logout if 5 minutes idle)

Posted by pank at 11:13 AM | Comments (0)

Mailbox to Maildir

Mailbox 是全部郵件都放在一個檔
Maildir 是用一個目錄來儲存, 一封郵件一個檔
兩者的比較, 可以參考 Zhiqiang::He: Mbox vs Maildir - 兩者原理和區别

MTA: postfix
修改 main.cf
home_mailbox = Maildir/

MDA: procmail
修改 /etc/procmailrc
MAILDIR=$HOME/Maildir
DEFAULT=$HOME/Maildir/ (後面要加 / )

POP3: dovecot
修改 dovecot.conf
default_mail_env = maildir:/home/%u/Maildir

MUA: mutt
參考 rafan's blog » 從 mbox 到 maildir

轉換工具: mailbox 2 maildir converter

Posted by pank at 10:10 AM | Comments (0)

Show Postfix queue file contents

postcat - show Postfix queue file contents
pfcat.sh Shell script to easily display the contents of a queue file.
ref.
Postfix and Email Resources
酷!學園 :: 觀看文章 - postfix's queue 檔的問題?

Posted by pank at 08:54 AM | Comments (1)

June 04, 2006

JOE 3.4

joe-3.4 [Notes] (2006-05-30 11:22)
這版在 FreeBSD 下 make 時會卡在一個 sed 的步驟, 原因是檔案參數空白, 就卡住了.
Linux 下正常. 可能跟 Shell 有關, 該行用 @< 這個變數, 不曉得什麼意思.
在 configure 後, 做以下修正, 就可以順利 make
perl -pi -e "s/< /@.in /g" `find . -name Makefile`
此版本終於新增 restore cursor position 功能.
syntax highlignt 也改善許多.

Posted by pank at 06:32 PM | Comments (1)

May 25, 2006

NOKIA 注音輸入的相關字功能

例如要打成功, 打完後, 打第一個候選字就是, 第二個候選字是.
NOKIA 8250 用了五年多, 竟然最近才發現這個功能, 大概是我太少發簡訊.

Posted by pank at 09:15 AM | Comments (0)

May 24, 2006

UrMap Address Parameter

UrMap 提供傳地址參數的方式顯示地圖, 非常方便.
http://www.urmap.com/SearchEngine/?qs=地址
http://www.urmap.com/SearchEngine/map.jsp?address=地址
兩種表示法結果是一樣的

Posted by pank at 12:17 AM | Comments (0)

May 09, 2006

Aten KVM Hot-key

買了一個 Aten 4 Port KVM, 包裝與說明書竟然都沒提到 Hot-key,
在官網的 Manuel 找到:
press and release each key in the sequence individually:
[Ctrl] then [Shift] then [Alt] then the Port ID number, then [Enter].
鍵要一個接一個按, 真不人性化.
現在的 KVM 都不用外加電源, 滿方便的.

Posted by pank at 09:27 PM | Comments (2)

May 04, 2006

中華電信市話費率

中華電信市話費率
很少打電話的選網路型基本型A就對了, 月租費還可以抵 25 元通話費,
若平均通話時間超過三分鐘, 選網路型, 平均不到三分鐘就選基本型A.
基本型B基本型C的差別在於月租費, 基本型B月租費較便宜, 但是通話費比基本型C貴一點(每五分鐘差 0.1元)
網路轉寄的信件教大家選基本型C, 其實這個費率只對常打電話的有利.

Posted by pank at 01:30 AM | Comments (0)

April 26, 2006

Silent Hill

同事給了兩張 Silent Hill (沉默之丘) 試映會的票, 剛剛跟老婆去看了, 還不錯.
這部是電玩改編的電影, 驚悚恐怖的氣氛、場景和去年同樣是電玩改編的 DOOM (毀滅戰士) 有像, 但比毀滅戰士好看多了.
拿到試映會的票真不錯, 可以搶先看電影而且又免費, 有票又沒空去看的人記得丟給我啊!

Posted by pank at 11:50 PM | Comments (0)

April 01, 2006

數位相片與傳統相片

由於數位相機的平價化, 造成數位相機日漸普及, 出去玩已經很少看到使用底片相機的人.
伴隨而來的是大量的數位相片檔案(以下的數位相片均指數位相片檔案).

其實, 數位相片比傳統相片更難保存

傳統相片放了 50 年, 頂多變黃, 顏色變淡, 數位相片要保存 50 年, 可是一大挑戰, 難度比保存傳統相片要高多了.
現在的沖印技術比以前好, 傳統相片在良好保存下, 可以保存很久.
數位相片呢?
我粗估,
40% 的人只能保存 < 1年 - 數位相片毀於下次電腦重灌
30% 的人只能保存 < 3年 - 良好電腦使用習慣, 但是沒有燒錄備份, 數位相片毀於下次硬碟毀損
20% 的人只能保存 < 10年 - 良好燒錄備份習慣, 數位相片毀於 CD/DVD 無法讀取時
只有少數的人能保存數位相片 > 10年 - 良好的備份習慣, 並定期燒成 CD/DVD 或以 MO 備份, 隨著新儲存媒體的誕生, 轉存到新的儲存媒體

大部份的人可能不會注意到這個問題, 要等到多年的珍貴回憶全部毀損時才會意識到保存數位相片的重要性.
可善用網路相簿(如: flickr), 幫您備份, 但畢竟不是每張相片都適合公開, 私密的照片記得設 Private.
重要的相片還是洗出來比較好, 數位相片是很脆弱的.
看到這篇的同時, 趕快備份您的數位相片吧!
2006-04-03 Update: gslin 指正: 如果你不願意公開,那麼你可以傳到 Flickr 上並設定 Private

Posted by pank at 05:30 PM | Comments (2)

March 30, 2006

日劇: 一升的眼淚(1リットルの涙)


有人說: 看完 一升的眼淚(1リットルの涙) 大概會流一升的眼淚 - 這是我看過最感人的日劇.
描述女主角 亞也 罹患 脊髓小腦變性症(SCD), 堅強地面對病魔的故事.
真人真事改編, 只有與麻生遙斗的一段戀情是虛構的.
看完會覺得, 身為正常人實在很幸福.
相關 Blog:
Makoto Rakuen: 一升的眼淚
S小姐的行李:[推薦] [日劇] 一升的眼淚
Just Love For Maple ~ 【日劇】一升の眼淚
不是學壞,只是學不乖: 一升的眼淚 (分集劇情)
2006-03-30 Update: 找不到劇中的 glue 搜尋引擎, 似乎是虛構的.

Posted by pank at 12:30 PM | Comments (2)

January 18, 2006

Convert Gallery 1.x from Big5 to UTF-8

今天把 Gallery 從 Big5 轉換到 UTF-8
感謝 PipperL 所提供的 轉換程式
如果 albums 目錄不在 gallery 目錄下, 要改一下 $albumdir
執行後, 按最下面的 Convert all file from big5 to UTF-8
zh_TW.utf8 語系檔可以在 Gallery 檔案區 找到

ref. 終極邊疆BLOG: Migration Gallery from Big5 to UTF-8

Posted by pank at 11:02 AM | Comments (0)

January 09, 2006

SSH X11 Forwarding

Server sshd_config 設 X11Forwarding yes, 不需要跑 X
Client 跑 X, 用 ssh -X host 連 Server, 就可以使用 Server 端的軟體, 執行結果傳回秀出來
Client 端連上 Server 後, echo $DISPLAY, 會顯示 localhost:1x.0
localhost:10.0
Server 端的 localhost 會 listen 601x port
tcp 0 0 127.0.0.1:6010 0.0.0.0:* LISTEN

Posted by pank at 09:24 AM | Comments (0)

January 06, 2006

Taiwanese English

台式英文只有台灣人聽得懂
Windows XP 念 Windows 叉P
MP3 念 MP三
我不反對這樣的念法(自己平常也是這樣念), 語言是一種溝通工具, 聽得懂就好.
但是不要跟外國人講台式英文, 聽的人大概會三條線.

Posted by pank at 12:48 AM | Comments (3)

January 02, 2006

Taipei 101 2006 Fireworks

本來想要去 象山101 跨年煙火秀, 不過有點下雨, 於是作罷.
就近去國父紀念館看, 人還是滿多的.
精彩的時刻時間過得特快, 感覺好像不到 2分8秒

SONY 不曉得花多少錢買那個廣告?
(BRAVIA by Sony)
2005-01-02 Update: 原來這次的煙火秀, 是由 SONY 獨家贊助

Posted by pank at 10:13 AM | Comments (0)

December 31, 2005

Notebook Battery

ASUS S1300N 買了約兩年半, 想買電池卻已經停產, 連副廠的電池也買不到 :(
只能用 換芯維修 的方式.
爾後 NB 買一年後就要買第二顆電池備用, 以免停產.
2005-12-31 Update: 電池換芯回來了, 效果還挺不錯, 跟新的一樣.

Posted by pank at 01:23 AM | Comments (0)

December 14, 2005

Add X-Country to mail header

I wrote a bash script to add X-Country tag to mail header.
e.g.: X-Country: TW
X-Country tag may be used for basic spam filtering.

Install:
Download xcountry.tgz
tar zxf xcountry.tgz -C /
ip-to-country data in /usr/local/xcountry, xcountry in /usr/local/bin

Usage:
Add following to procmailrc

:0fw
| /usr/local/bin/xcountry

Further more, if you want to delete mail from some countries, add following
# This example delete any mail from China and Korea.
:0
* X-Country: (CN|KR)
/dev/null

and you can use IP as parameter to get country code.
eg.
# xcountry 168.95.1.1
TW
# xcountry 200.200.200.200
BR

ref. Spamhaus TOP 10 Spam Origin Countries

Posted by pank at 03:46 PM | Comments (0)

November 29, 2005

Postfix: Hide Private IP Header

發信的 Client 端若在 Mail Server 的內部, Header 會出現 Private IP 的資訊
如: Received: from [192.168.1.77] (host77 [192.168.1.77])
這樣會有資訊洩露的安全性問題
在 header_checks 加上

/^Received:.*\[(192\.168|172\.(1[6-9]|2[0-9]|3[01])|10)\./      IGNORE
/^Received:.*\[127\.0\.0\.1/      IGNORE
就可以隱藏這些資訊

Posted by pank at 05:28 PM | Comments (0)

November 26, 2005

Enable TCP/IP Forwarding in Windows XP

How to Enable TCP/IP Forwarding in Windows XP
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
"IPEnableRouter"=dword:00000001

相當於 Linux 下的 sysctl -w net.ipv4.ip_forward=1
(echo 1 > /proc/sys/net/ipv4/ip_forward)

Posted by pank at 05:01 PM | Comments (0)

November 16, 2005

Sonicare toothbrush

昨天第一次用 Sonicare 音波振動牙刷
效果果然和傳說中一樣好, 刷完用舌頭舔牙齒就可以感覺明顯差別, 這是傳統牙刷無法達到的清潔效果.


Posted by pank at 10:00 AM | Comments (0)

October 20, 2005

Send executable file to Gmail

雖然 Gmail Help Center 有提到
As a security measure to prevent potential viruses, Gmail does not allow users to receive executable files (such as files ending in .exe) that could contain damaging executable code.
Gmail does not accept these types of files, even if they are sent in a zipped (.zip, .tar, .tgz, .taz, .z, .gz) format. Any message of this type sent to your Gmail account will be bounced back to the sender.
但是實測 Gmail 只有檔 .zip .rar
.tar .tar.gz .tgz .tar.bz2 .bz2 .gz 都可以通過
另外也可以透過改副檔名或加副檔名的方式成功寄到 Gmail, 如 file.exe -> file.exe.foo

Posted by pank at 12:38 AM | Comments (0)

October 17, 2005

避開中山高收費站之路徑

數位男女 看到一篇 避開中山高收費站之路徑(需登入) 的文章
我再仔細分析過
避 楊梅收費站、員林收費站、新市收費站 是比較實用的
其他的都是公里數太長(如造橋收費站)、公里數差距過大(如新營收費站)或路不好走(如泰山收費站),
若考慮多花的時間及平面道路油秏較多, 不見得比較划算.
(南下)
避 楊梅收費站: 楊梅交流道下, 台一線, 湖口交流道上. 這一段國道與省道是平行的, 里程差 1.5KM
避 員林收費站: 員林交流道下, 北斗交流道上, 里程差 3.8KM
避 新市收費站: 安定交流道下, 國道8系統交流道上, 里程差 2.1KM
下次走走看避楊梅收費站的路.

Posted by pank at 01:20 AM | Comments (0)

September 29, 2005

Use strings to get Windows file properties

Windows 下有些檔案(如安裝程式)的內容會有一些公司名稱、版本等資訊
Linux 下可以用 strings 來取得這些資訊
例: 取得 Skype 安裝程式的檔案資訊
# strings -e l SkypeSetup.exe | grep -A20 CompanyName
CompanyName
Skype Software S.A.
FileDescription

FileVersion
1.4.0.71
InternalName
OriginalFilename
ProductName
ProductVersion
VarFileInfo
Translation

Posted by pank at 05:31 PM | Comments (0)

September 15, 2005

File Sharing Service

若有檔案想分享給別人, 自己又沒架站, 可以用以下這些站的服務

RapidShare
這家 link 最常看到, 滿多人用的, 可能是因為很多人用, 速度不快
檔案大小限制: 50MB
保留時間: 系統會自動刪除超過 30 天沒有存取的檔案
要等秒數
網址範例: http://rapidshare.de/files/5125227/msnpp.exe.html

SendMeFile.com
檔案大小限制: 30MB
保留時間: 14天
要等秒數
網址範例: http://www.sendmefile.com/00084416

mytempdir.com
檔案大小限制: 25MB
保留時間: 14天
要等秒數
網址範例: http://sr2.mytempdir.com/159383

Savefile.com
檔案大小限制: 60MB
保留時間: 14天
不用等秒數, 經過兩個畫面才下載
不能上傳執行檔(bat, exe 等)
網址範例: http://savefile.com/files/9620290

Upload2.net
檔案大小限制: 25MB
保留時間: 系統會自動刪除超過一年天沒有存取的檔案
要等秒數
網址範例: http://www.upload2.net/download2/06JeYcErSZcvicW/msnpp.exe.html

UltraShare.net
檔案大小限制: 28.6MB (30,000,000 bytes)
保留時間: 系統會自動刪除超過 30 天沒有存取的檔案
不用等秒數, 經過兩個畫面才下載
網址範例: http://s5.ultrashare.net/hosting/fs/b26b17fc76032281/

zUpload.com
檔案大小限制: 500MB
保留時間: 系統會自動刪除超過 30 天沒有存取的檔案
不用等秒數
用 wget 不會存成正確檔名
網址範例: http://z11.zupload.com/download.php?file=getfile&filepath=8429

YouSendIt.com
檔案大小限制: 1G
保留時間: 7 天或 25 次下載
不用等秒數
網址範例: http://s27.yousendit.com/d.aspx?id=1JP8X84RJ7DVR2RMG7HSEPATH0

myShareBox.com
檔案大小限制: 100MB
保留時間: 系統會自動刪除超過 30 天沒有存取的檔案
要等秒數
網址範例: http://www.mysharebox.com/dl.php?key=6853783

MegaUpload.com
檔案大小限制: 250MB
保留時間: 系統會自動刪除超過 30 天沒有存取的檔案
要等秒數
網址範例: http://www.megaupload.com/?d=C8M99TOD

UploadSend.com
檔案大小限制: 50MB
保留時間: 系統會自動刪除超過 30 天沒有存取的檔案
不用等秒數
用 wget 不會存成正確檔名
網址範例: http://uploadsend.com/d.php?file=true&filepath=2336

StoreandServe.com
檔案大小限制: 100MB
保留時間: 系統會自動刪除超過 30 天沒有存取的檔案
不用等秒數
網址範例: http://storeandserve.com/download/6644/msnpp.exe.html

mimima.com
BT 檔分享專用
檔案大小限制: 未知, BT 檔都不大, 應該是沒有限制
保留時間: 未知
檔案上傳後, 會自動改為 [0-9A-Za-z]{10}.torrent
立即下載, 不用等秒數
網址範例: http://www5.mimima.com/link.php?ref=6njV6mY6IA

2005-09-18 Update: Savefile.com, Upload2.net, UltraShare.net
2005-10-20 Update: zUpload.com, YouSendIt.com, myShareBox.com
2005-10-28 Update: MegaUpload.com, UploadSend.com, StoreandServe.com
容量最大的是 YouSendit.com(1G), 保留最久的是 Upload2.net(一年)

ref. Free online file storage/sending

Posted by pank at 09:54 PM | Comments (1)

September 14, 2005

Free DNS Hosting

free-webhosts.com 有列出一些 Free DNS Hosting
當手邊沒那麼多機器時, 可以用這些服務來設定多台 DNS
推薦兩家
EveryDNS.net 介面簡潔, 設定容易, 可設定 Master/Slave, 免費帳戶最多可管理 20 個 domain, 有四台 name server:
  ns1.everydns.net
  ns2.everydns.net
  ns3.everydns.net
  ns4.everydns.net
當 Slave 時, Master 需設定 allow-transfer { 64.158.219.3; };
XName.org 功能強大, 支援 IPv6, 可設定 Master/Slave, 有兩台 name server:
  ns0.xname.org
  ns1.xname.org
當 Slave 時, Master 需設定 allow-transfer { 195.20.105.149; 193.23.158.13; };
覺得好用的話可以 donate

Posted by pank at 07:52 PM | Comments (0)

北藝大畢業舞展 李偉淳尋找另一個自己

昨天結識了一位舞者 - 李偉淳, 他是前雲門舞集2舞者,
9月30日至10月2日(五六日三天), 將在 國立台北藝術大學 舞蹈廳推出畢業舞展「尋找另一個自己」
歡迎大家去捧場.
ref. 蕃薯藤新聞: 北藝大畢業舞展 李偉淳尋找另一個自己

Posted by pank at 09:24 AM | Comments (0)

September 12, 2005

Apache2 + SSL + PHP5

據說 Apache 2.0 的效能較好, 一些常用的 Module, 已經內含, 很方便.
準備檔案
wget http://ftp.cis.nctu.edu.tw/data/UNIX/apache/httpd/httpd-2.0.54.tar.gz
wget http://tw.php.net/get/php-5.0.5.tar.bz2/from/tw.php.net/mirror
安裝
tar zxf httpd-2.0.54.tar.gz
tar jxf php-5.0.5.tar.bz2
cd httpd-2.0.54 (Apache2)
./configure --prefix=/usr/local/apache --sysconfdir=/usr/local/apache/conf \
     --enable-module=so \
     --enable-ssl --enable-rewrite --enable-proxy
make
make install
cd ../php-5.0.5 (PHP5)
./configure --with-mysql --with-apxs2=/usr/local/apache/bin/apxs \
     --enable-module=so --with-config-file-path=/usr/local/etc \
     --libexecdir=/usr/local/apache/libexec --with-iconv \
     --with-gd --with-zlib --with-jpeg-dir
make
cp .libs/libphp5.so /usr/local/apache/modules (把 PHP5 modules copy 到 Apache modules 目錄下)
SSL
參考 How can I create and use my own Certificate Authority (CA)?
cd /usr/local/apache/conf
openssl genrsa -out server.key
(若要 Apache 啟動時不需密碼, 就不要加 -des3, 若有加 -des3 後, 最後要調整為不要密碼, 可參考 How to remove a pass phrase?)
openssl req -new -key server.key -out server.csr
openssl genrsa -out ca.key
openssl req -new -x509 -days 3650 -key ca.key -out ca.crt
./sign.sh server.csr (sign.sh 在 modssl tar ball 內 pkg.contrib 目錄可以找到)
chmod 400 server.*
mv server.crt ssl.crt
mv server.key ssl.key
若覺得上述步驟太麻煩, 也可以這樣來產生自簽 Key
openssl req -new -x509 -nodes -out ssl.crt/server.crt -keyout ssl.key/server.key -days 3650
設定 httpd.conf
LoadModule php5_module modules/libphp5.so
DirectoryIndex index.html index.htm index.php (在 DirectoryIndex 該行後加上 index.php)
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
啟動 /usr/local/apache/bin/apachectl startssl

Posted by pank at 11:55 AM | Comments (0)

September 10, 2005

HiNet 連不上 Google

今天 HiNet 使用者可能會發現連不上 Google, 其實是 HiNet DNS 解析有問題,
寫了個 script 把各大 ISP 的 DNS 檢查一下, 發現有一半查出來是不正常的,
查 www.google.com.tw 得到 66.102.7.99, 66.102.7.104, 66.102.7.147 是正常的.
查到 66.249.89.99, 66.249.89.104 是不正常的.
dns.hinet.net 168.95.1.1 failed
hntp1.hinet.net 168.95.192.1 failed
hntp3.hinet.net 168.95.192.2 failed
ksdns.seed.net.tw 139.175.10.20 OK
tcdns.seed.net.tw 139.175.150.20 OK
dns.seed.net.tw 139.175.55.244 OK
dns1.seed.net.tw 139.175.252.16 failed
dns1.giga.net.tw 203.133.1.8 OK
dns2.giga.net.tw 203.133.1.6 OK
dns2.tfn.net.tw 211.78.215.200 failed
dns1.tfn.net.tw 211.78.215.137 failed
ns2.so-net.net.tw 61.64.127.2 OK
ns1.so-net.net.tw 61.64.127.1 OK
若連 Google 有問題的話, 把 DNS 改為上述 OK 的 DNS 即可.
2005-09-12 Update: 現在各 ISP 的 DNS 都可以查到正確的資料了

Posted by pank at 09:33 PM | Comments (1)

September 09, 2005

台北牛肉麵節

最近有個 台北牛肉麵節 網路票選台北市牛肉麵, 票選結果出爐.
這種票選只能當參考, 大概有一半以上是比店家所能號召的投票部隊多寡.
個人滿喜歡吃牛肉麵的, 只要是店家有賣有牛肉麵, 我一定會點牛肉麵!
台北的牛肉麵我不熟, 但是台中的牛肉麵我吃過滿多家的, 推薦幾家比較讚的:
六六順 南屯路上, 南屯路與五權路交叉口附近, 由市區往南屯方向, 過五權路, 在左手邊
湖南味 精武路上, 由市區往太平方向, 在左手邊
提督府 復興路上, 復興路與台中路交叉口附近, 台中酒廠對面

Posted by pank at 09:49 AM | Comments (2)

September 04, 2005

Acer TravelMate 3002WTCi

同事拿了一台 Acer TravelMate 3002WTCi, 請我幫忙灌一些軟體...
這台強調輕巧靈動, A4 大小, 其廣告是一隻小狗咬著 Notebook, 跳進車裡找主人, 俗稱小狗機或 A4 機.
第一個印象是質感很好!
值得一提的規格: 1.4KG、12.1"鏡面螢幕、Gigabit網路卡、外接式DVDl燒錄機、兩顆電池(3cell+6cell)
鏡面螢幕外表看起來很炫, 但是除了可以照鏡子外, 沒什麼用, 在使用時螢幕仍舊會反射, 看到螢幕中的自己, 我寧願選擇一般的螢幕.
12.1"的螢幕(1280x768), 字看起來略小.
提供的兩顆電池, 3cell 電池和 Notebook 的後面密合, 6cell 則會突出一塊, 6cell 的實際使用時間約四小時, 廣告宣稱的 6.5 小時, 是兩顆電池合計的時間.
右手邊有一個 USB 接頭, 接滑鼠很方便.
我給這台 85 分.

Posted by pank at 12:21 AM | Comments (3)

August 29, 2005

Free Web Hosting

free-webhosts.com, freewebspace.net 這兩個網站提供不少 free hosting 的資料, 有條件搜尋,
大部分都有廣告, 沒廣告的通常空間小或是功能比較少.

Posted by pank at 09:31 PM | Comments (0)

WCG - StarCraft

WCG 2005 offical games 仍舊有 StartCraft, 已經連續 n 年入選 offical games 了.
不愧是經典遊戲, 我有時還會拿出來玩一下, 現在 Patch 出到 1.13c.
Blizzard 很早就註冊了 starcraft2.com, 或許有出 StarCraft2 的計畫.
Update: 根據 DK 的訊息, Blizzard 不會出 StarCraft2 了 :(
查了一下, 官方的 General FAQ 提到:
Will you be making StarCraft II?
We have not announced any current plans for StarCraft II. We are all very close to the worlds and characters we created in the original game and the expansion set and while we do intend to revisit that universe, we have no plans to do so at this time.

Posted by pank at 09:05 PM | Comments (3)

Movable Type RSS 圖出不來 ?

自從用 Bloglines 後, 就發現用 Movable Type 架的 Blog, RSS 會有圖出不來的狀況(我的也是),
不知道是什麼原因, 是本來就這樣還是設定的問題?
另外,
Movable Type 最近出 3.2 版, 授權改回和 2.x 一樣, 付費版本只差在 Service (Expert tech support).
昨天有試用了一下, 2.x 版升級上來, 除了 Plugins 外, 幾乎不用改就能直接用,
MT 3.2 先試一段時間再來換.

Posted by pank at 10:20 AM | Comments (3)

August 25, 2005

Apache + Tomcat with mod_jk.so

安裝 Tomcat
wget http://archive.apache.org/dist/jakarta/tomcat-5/v5.5.11/bin/jakarta-tomcat-5.5.11.tar.gz
tar zxf jakarta-tomcat-5.5.11.tar.gz -C /usr/local
mv /usr/local/jakarta-tomcat-5.5.11 /usr/local/tomcat
下載 JDK 5.0 http://java.sun.com/j2se/1.5.0/download.jsp
chmod +x jdk-1_5_0_04-linux-i586.bin
./jdk-1_5_0_04-linux-i586.bin
mv jdk1.5.0_04 /usr/local/java
解開後放到 /usr/local/java
編輯一個 script for tomcat (/usr/local/bin/tomcat.sh)
#!/bin/sh
export JAVA_HOME=/usr/local/java
export CATALINA_HOME=/usr/local/tomcat
case $1 in
   start)
     /usr/local/tomcat/bin/startup.sh
     ;;
   stop)
     /usr/local/tomcat/bin/shutdown.sh
     ;;
esac
啟動 tomcat 用 tomcat.sh start, 關閉用 tomcat.sh stop
註: 在啟動 tomcat 前, JAVA_HOME, CATALINA_HOME 變數是必要的

編譯 mod_jk.so
wget http://archive.apache.org/dist/jakarta/tomcat-5/v5.5.11/src/jakarta-tomcat-5.5.11-src.tar.gz
tar zxf jakarta-tomcat-5.5.11-src.tar.gz
cd jakarta-tomcat-5.5.11-src/jakarta-tomcat-connectors/jk/native
./buildconf.sh
./configure --with-apxs=/usr/local/apache/bin/apxs
make
cp apache-1.3/mod_jk.so /usr/local/apache/libexec
註: 加 mod_jk.so 的用意就是可以用 JkMount 把 webapps 下的目錄 mount 到 DocumentRoot, 使可以不用打 :8080

設定 Apache
在 httpd.conf 加入
LoadModule jk_module libexec/mod_jk.so
AddModule mod_jk.c
JkWorkersFile conf/mod_jk.properties
JkLogFile logs/mod_jk.log
JkLogLevel info
# 指定那些檔案、目錄要用 Tomcat 去跑
JkMount /*.jsp ajp13
JKMount /jsp-examples/* ajp13
註: apache 在編譯時, configure 需加入 --enable-module=so 參數
在 apache conf 目錄下建編立 mod_jk.properties, 內容如下
workers.tomcat_home=/usr/local/tomcat
workers.java_home=/usr/local/java
worker.list=ajp13
worker.ajp13.port=8009
worker.ajp13.host=localhost
worker.ajp13.type=ajp13
註: ajp13 指 Apache JServ Protocol version 1.3

啟動 tomcat, 重新啟動 apache, 連連看
http://[your host]/index.jsp
http://[your host]/jsp-examples/
若有看到網頁, jsp 範例程式也正常, 大功告成!

Posted by pank at 07:25 PM | Comments (0)

Extract files from RPM file

rpm2cpio file.rpm | cpio -idv
-i for Extract
-d for Create leading directories where needed
-v for Verbose

Posted by pank at 05:31 PM | Comments (0)

August 24, 2005

Google Talk Testing



Google Talk IM 的部分是用 Jabber/XMPP 協定, 所以用 3rd Party 軟體, 如 Gaim(設定方法) 也可以連.
IM 的功能很陽春, 僅有純文字的聊天功能, 字不能設 Style(大小、顏色等), 沒有表情圖案, 沒有個人圖示.
語音的部分, 和 Skype 比較, 兩者音質非常接近, 反覆測了很多次, 感覺 Skpye 的音質還是比 Google Talk 好一點點.

Posted by pank at 08:00 PM | Comments (0)

August 20, 2005

水餃皮麵

水餃皮沒包完, 我跟老婆說「把皮切一切, 就變成刀削麵了」
今天中午就吃到了「水餃皮肉燥麵」
看起來和粿仔條差不多, 吃起來麵粉味重了點, 還不錯啦!

Posted by pank at 02:31 PM | Comments (0)

August 19, 2005

Postfix + vm-pop3d

Postfix 本身就有虛擬帳號功能, 再加上 vm-pop3d, 使得虛擬帳號使用者可以收 mail

/etc/postfix/main.cf 新增 virtual_maps = hash:/etc/postfix/virtual
user@domain1.com user.domain1.com
herny.pan@domain2.com henry.pan.domain2.com
mydestination 要加上 domain1.com, domain2.com
# postmap /etc/postfix/virtual (更新 /etc/postfix/virtual.db)
/etc/aliases 新增
user.domain1.com: /var/spool/virtual/domain1.com/user
henry.pan.domain2.com: /var/spool/virtual/domain2.com/henry.pan
# newaliases (更新 /etc/aliases.db)

到此 Postfix 部分設定完成(信件已可送到指定的目錄), 裝好 vm-pop3d, 以 inetd 或 xinetd 啟動,
再設定 vm-pop3d, 建郵件目錄及建密碼檔
建郵件目錄
mkdir -p /var/spool/virtual/domain1.com /var/spool/virtual/domain2.com
chown -R mail.mail /var/spool/virtual
目錄的 uid 要跟 Postfix 的 default_privs 一樣
建密碼檔
mkdir -p /etc/virtual/domain1.com /etc/virtual/domain2.com
htpasswd -c /etc/virtual/domain1.com/passwd user
htpasswd -c /etc/virtual/domain2.com/passwd henry.pan
再建立同 domain 的其他 user, 不用加 -c, 如 htpasswd /etc/virtual/domain1.com/passwd user2

Mail Client 端的設定
vm-pop3d 的虛擬帳號登入名稱, 要使用 Email 全名, 如 user@domain1.com
原有的主機帳號使用者不變

ref:
virtualmail-pop3d FAQ
使用 vm-pop3d 建置郵件虛擬帳戶

Posted by pank at 11:10 AM | Comments (0)

Pank's MSN bot for WEB2MSN

參考 abelyang 的文章 MSN Alert Testing , 用 tmsnc 0.1.5 版 + expect 弄了個簡單的 MSN bot, 用來做 WEB2MSN (網頁傳訊到 MSN)
想要測試的人, 請新增 MSN 連絡人: msn@pank.org
配合時間排程(crontab), 可以做到行事曆提醒功能
CLI 傳訊方法
wget -O /dev/null "http://pank.org/msn/?msn=MSN帳號&msg=訊息"

lynx -dump "http://pank.org/msn/?msn=MSN帳號&msg=訊息"
若 MSN bot 狀態是離線則無法傳訊
ref. Web2Messenger
Update: tmsnc 連得不太順, MSN bot 不定時上線

Posted by pank at 02:21 AM | Comments (0)

August 16, 2005

DreamHost Hosting

前不久註冊了 DreamHost 這家 Hosting (Crazy Domain Insane! 方案), 目前作為網站的備援.
使用一段時間後覺得還不錯, 該有的都有了, 最重要的是有 Shell 可以用.
Shell 下工具程式很齊全, 我常用的 joewgetncftp 都有, 也可以用 crontab, 可以 su 到其他帳號,
一般 User 該有的權限都有, 沒有什麼限制, 只差沒有 root 權限.
比上次試用一個月 GoDaddy 的 Hosting 好很多.
從 TANET 抓檔測試, 大概 200~300K/s, 上傳到 DreamHost, 速度不佳, 只有 30~40K/s 左右, 這大概是唯一缺點.

DreamHost 主機 OS: 應該是 Debian 3.0 (/etc/issue, /proc/version)
硬體規格
4 顆 Intel(R) Xeon(TM) CPU 2.80GHz (/proc/cpuinfo)
2G RAM
2 張網卡, 都是 Intel(R) PRO/1000 (/var/log/dmesg), eth0 bind 數十個 IP, eth0 bind 了 2 個 10.3.39.0/24 IP, 內部用 NFS 串起來

Crazy Domain Insane! 方案一年 $119.4, 二年 $190.8
內容含一個 Domain 註冊, 3 個 Full domain hosting, 15 個 Sub-domain hosting, 2.4G 容量, 月流量 120G
(GoDaddy 的 Delux Plan, 一年和 DreamHost 一樣要 $119.4, 一個 Domain hosting, 2G 容量, 月流量 100G)

DreamHost 有推薦制度, 推薦者可以自製 Promo Code, 我做了一個 Promo Code: WELCOME
註冊時填 WELCOME 可以有 $92 (美金)的折扣, 也就是一年 $27.4, 二年 $98.8

ref. pesty's DreamHost 的網頁空間

Posted by pank at 03:19 AM | Comments (0)

August 15, 2005

Software SIP Phone

SJphone 直接輸入 SIP address 撥打, 效果普通
Jajah 輸入 sip:SIP address 撥打, 撥 SIP address 有嚴重延遲, 在我的環境下大概差 4~5 秒, 似乎有經過中央 Server
Gizmo 號稱使用 SIP protocol, 但是不曉得如何撥打 SIP address
註: 使用 SIP protocol 的網路電話, 會有一個 SIP address, 跟 Email 格式一樣, 例如: pank@sipserver.com

Posted by pank at 09:50 AM | Comments (0)

August 11, 2005

不靠主機板啟動 ATX Power 的方法

ATX Power 的 Connector, 將兩個●接腳用迴紋針接觸一下即可
卡榫朝上示意圖
□□□●●□□□□□
□□□□□□□□□□
改裝舊的 CD-ROM 為 CD Player 時就會用到啦

Posted by pank at 01:53 AM | Comments (2)

August 09, 2005

Yahoo Messenger vs. Skype

Yahoo Messenger 今天出了 7.0 正式版, 7.0 的賣點是 VoIP 功能
立即下載來試試, 和 Skype 比較一下
Yahoo Messenger 的音質比較接近真實狀況, 雜音較多
Skype 似乎對人聲有作特別處理, 人聲很清楚, 雜音較少
結果仍是 Skype 比較優

Posted by pank at 10:20 PM | Comments (0)

MMS Ripper

MMS Ripper is a command line mms:// protocol downloader.

Posted by pank at 01:43 PM | Comments (0)

August 08, 2005

后豐鐵馬道

最近台中縣政府在推 兩馬觀光季
昨天到 后豐鐵馬道東豐自行車綠廊 騎腳踏車, 到了傍晚, 竟然還會塞車(腳踏車)
后豐鐵馬道4.8KM 東豐自行車綠廊12KM, 全線來回 33.6KM
后豐鐵馬道是今年才完工的自行車專用道, 由台鐵舊山線改建, 起點在豐原國道四號線高架橋下方, 終點至后里馬場

Posted by pank at 02:26 PM | Comments (0)

Firefox 貼多行網址

Making Firefox Handle Multiline Pasted ("Broken") URLs
網址列打 about:config
然後把 editor.singleLine.pasteNewlines 的值改成 3 (表示 3 行)
如此 Firefox 會把斷行的網址自動接起來, 不用再手動剪貼
ref. gslin's 在 Firefox 上貼網址

Posted by pank at 01:58 PM | Comments (0)

August 03, 2005

MSN Messenger 7.5

MSN Messenger 最近流出 7.5.01607.5.0162 Beta 版
msnmessenger7.net 有下載點

MSN Messenger 7.5.0162 中文版(中文化+修正 repacked)
msgslang.dll 使用 大野狼 所製作的中文化檔案
主程式經 MSNPP 修正
20050803 Update
MSN Messenger 7.5.0244 中文版(中文化+修正 repacked)
2005-11-04 Update: 上述連結已指向最新的 MSN Messenger 中文版

Posted by pank at 09:40 PM | Comments (2)

August 02, 2005

Unix Utilities Collection for Win32 1.0

把一些 GNU 工具 for Win32 蒐集起來, 包裝成 Unix Utilities Collection for Win32 1.0
(非 Cygwin 內的程式)
由以下套件組成
GNU utilities for Win32, winbash, wget, rar, base64, mmencode, vim, strings, bind9,
whois, hexl
在 cmd 視窗就可直接使用

cf. UnixKit (有用到 Cygwin 的程式)

Posted by pank at 10:29 PM | Comments (0)

August 01, 2005

環島遊

2005-07-25~30 利用蜜月回來還有一星期的休假時間
25晚 台中→台北 22:00 出發
26台北→宜蘭, 本來以為雪山隧道通了, 結果還沒通, 只到石碇, 改走北宜
27宜蘭→台東, 蘇花公路, 台九線
28台東→屏東(墾丁), 台九線
29屏東→高雄, 台一線
30高雄→台中, 二高 15:30到家
總里程1150KM
照片
宜蘭→台東 這一段比較趕, 幾乎整個早上都在開車, 台九線 台東→屏東 路況很差, 沿路有多處坍方,
回來時有經過楓港大橋(被海棠吹倒的萊爾富)
環島大概要一星期左右的時間, 時間才比較充裕
2005-08-02 News
最高速限一百公里 北宜高頭羅段 十月底通車 預估明年三月以前, 台北南港至蘇澳總長五十五公里的國道五號高速公路,將免費開放用路人使用

Posted by pank at 08:01 PM | Comments (2)

舊版千元鈔的 Bug

舊版千元鈔右上角幾何圖案中的三角形, 應該是45度, 卻寫成60度
7/20 發行了新版五百元、一千元鈔券, 大概是中央銀行也發現了這個 Bug, 而刪除了幾何圖案


Posted by pank at 03:14 AM | Comments (0)

July 26, 2005

大喜之日

7/17 是我大喜的日子, 感謝當天前來幫忙的親戚朋友同學們, 使得婚禮能順利進行, 也感謝親臨祝福的每一個人.
Jason 版的照片 | Michael 版的照片

結婚後去 關島 玩了五天, 因此 Blog 才荒廢了一陣子


Posted by pank at 03:23 AM | Comments (3)

July 16, 2005

SkypeIn

SkypeInSkype 的付費服務, 使一般電話能撥到 Skype.
好奇之下, 去買了個美國的號碼來玩玩, 三個月€10, 主要是想試試看買了號碼後 SkypeOut 會不會有 Caller ID 功能. 沒有顯示號碼是 SkypeOut 的致命缺點.
測試結果令人失望, 即使有了 SkypeIn 號碼, SkypeOut 撥出去也沒有 Caller ID, 一般電話撥進則正常(撥打的人要打國際電話).
所以在還沒有台灣號碼之前, SkypeIn 並不實用.

Posted by pank at 02:50 AM | Comments (0)

July 11, 2005

Windows Services for Unix (SFU)

Windows Services for Unix 是微軟提供的免費軟體, 類似 cygwin
要填一些資料才能下載(之前可以直接下載), Search Keyword SFU35SEL_EN.exe 可以找到直接下載位址.
個人認為不怎麼好用, 裡面的程式 rename 為 .exe Copy 到其他電腦是不能用的, 需要 SFU 相依的 dll.
若只是要用一些 GNU 工具推薦使用 GNU utilities for Win32

Posted by pank at 04:33 PM | Comments (0)

July 10, 2005

MSN Messenger 7 Remove File Transfer Protection

7.0.0777 版可以經由修改 registry 來接收執行檔, 7.0.0813、7.0.0816 已經不適用了(改了沒用)
修正方法請參考 MSN Messenger Hex Editting Tutorial

Find 74 13 6A 68
Edit EB -- -- --
可以直接用 MSNPP 或安裝修改好的版本 Pure MSN Messenger

Posted by pank at 04:55 AM | Comments (0)

MSN Messenger Pure Patch

msnnoad is a small program I wrote for remove MSN Messenger's ad.
now msnnoad rename to MSN Messenger Pure Patch (abbr. MSNPP).
MSNPP's goal is makes MSN Messenger pure and clean.
MSNPP is universal, in other word, MSNPP can apply to any version of MSN Messenger.
Download MSNPP (23K)
Download Pure MSN Messenger (Official MSN Messenger + MSNPP repacked version)
Features:
Allow multi-open (polygamy)
Remove bottom ad
Remove top Messenger title (string) NEW
Remove MSN Today button
Remove left tab
Remove bottom Add Contact button
Remove bottom MSN search bar
Remove text ad at bottom of dialog window
Remove file transfer protection (receive any file type) NEW
(Apply to MSN 6 only first 2 features)

Other similar programs
A-Patch
Clean Messenger
Mess Patch
MSNMSGR Ghost
MSN Messenger No Advertisement

Posted by pank at 04:24 AM | Comments (2)

July 08, 2005

羅馬拼音查詢

寫了一個 羅馬拼音查詢 程式, 對照表參考 五種華語拼音系統對照表

現在台灣的英譯很亂, 同一個地名、道路, 有好幾種翻法.
個人認為要國際化就用漢語拼音, 漢語拼音在中國推行已久, 又有 ISO 標準, 唯一缺點是有用到 ü 符號, 例如: 女(nü)
政府應該摒除成見, 直接採用漢語拼音當作標準.

ref. 漢語拼音 | 通用拼音 | 威妥瑪拼音

Posted by pank at 09:34 PM | Comments (1)

My Firefox Extensions

現在裝的 Extensions 很少
All-in-One Gestures 滑鼠手勢
Right Encoding 按右鍵可以選編碼, 不用到檢視選單
Tab Mix 提供很多 Tab 加強功能, 如: 把 Tab 移到下方、雙擊 Tab 關閉、滑鼠拖曳 Tab、設定開新視窗到 Tab
新同文堂 網頁簡繁轉換
jsLib Light 新同文堂所需的 Lib

ref. MozTW Firefox 擴充套件 Top 15

Posted by pank at 04:07 PM | Comments (1)

July 07, 2005

健康の油切綠茶

愛之味 的健康の油切綠茶最近頗紅, 第一支很白爛的 "油油油, 切 it out" 廣告, 令人印象深刻.
有人說這支廣告很爛, 我倒覺得這支廣告很成功, 不過內容涉嫌誇大誤導消費者, 後來就禁播了(ref. 油切可沿用 廣告須更改).
由於這飲料的出現, 使得「油切」變流行, 「油切」一詞源自於日文.
健康の油切綠茶600公克建議售價35元, 屬中高價位, 賣點是添加膳食纖維, 口味我不太喜歡.
市售的無糖綠茶目前還是覺得 御茶園 好喝.

Posted by pank at 02:16 AM | Comments (0)

July 04, 2005

x11vnc: a VNC server for real X displays

x11vnc allows one to remotely view and interact with real X displays.
一般的 VNC Server, 需佔用另一個 DISPLAY, 無法與本地的 X 共用 DISPLAY :0
使用 x11vnc 就可以和本地的 X 共用 DISPLAY :0, 即遠端看到的畫面和本地看的畫面一樣, 和 for Windows 的 VNC 類似.
e.g. x11vnc -forever -shared -rfbauth /root/.vnc/passwd
-forever keep listening for more connections
-shared more than one viewer can connect at the same time
-rfbauth use authentication on RFB protocol
x11vnc 還有簡單的 Web Server 功能, 首引檔是 index.vnc
e.g. x11vnc -httpdir /www -httpport 80

Posted by pank at 02:59 PM | Comments (0)

July 01, 2005

w3m

w3m 在 X 的 console 下竟然可以秀圖, 真是太神奇了!
記得以前試的時侯沒有圖啊, 可能圖出來的速度比較慢, 沒注意到 (現在是 0.5.1 版)

Posted by pank at 01:55 PM | Comments (0)

June 30, 2005

procmail Suspicious rcfile

procmail: Suspicious rcfile "/home/user/.procmailrc"
procmail: Couldn't read "/home/user/.procmailrc"

If your rcfile's permission is not correct, you'll see something error like above.
/home/user/.procmailrc must have permission 644
ref. man procmail
Suspicious rcfile "x"
The owner of the rcfile was not the recipient or
root, the file was world writable, or the direc-
tory that contained it was world writable, or
this was the default rcfile ($HOME/.procmailrc)
and either it was group writable or the directo-
ry that contained it was group writable (the rc-
file was not used).

Posted by pank at 10:34 AM | Comments (0)

婚紗照(完稿)


婚紗照完稿, 25 頁


Posted by pank at 01:05 AM | Comments (1)

June 28, 2005

婚紗照(未修片)


終於拿到未修片的檔案, 婚紗公司還真會拖


Posted by pank at 10:23 PM | Comments (0)

June 23, 2005

Gmail Notes

把 Gmail 當成線上記事簿! 這是我最近發現的用法
撰寫郵件後, 寫上要記的內容, 儲存草稿即可, 也可以套用分類標籤,
如此無論在那裡, 都可以查看 Gmail 記事簿, 挺方便.

另外前不久(20050607) isnoop.net Gmail invite spooler 關了, 原因是 Gmail's Product Manager 再也受不了這種服務.

Posted by pank at 02:13 PM | Comments (0)

winbash

winbash is a native win32 version of GNU bash without requiring the cygwin DLLs.
Download
bash 1.14.7, 版本有點舊
ref. GNU utilities for Win32

Posted by pank at 01:47 PM | Comments (0)

June 22, 2005

Query Services <-> Ports

Port to Services (查詢 port.tcp.portsdb.org 或 port.udp.portsdb.org 的 TXT record)
e.g.
# host -t txt 3389.tcp.portsdb.org
3389.tcp.portsdb.org text " Remote Desktop Protocol (RDP)"
3389.tcp.portsdb.org text "ChiliASP"
3389.tcp.portsdb.org text "ms-wbt-server"
# host -t txt 6000.tcp.portsdb.org
6000.tcp.portsdb.org text "x11"
6000.tcp.portsdb.org text "ChiliASP"
6000.tcp.portsdb.org text "eXcursions"
6000.tcp.portsdb.org text "Brick RCAPI"

Servie to Ports (查詢 service.tcp.portsdb.org 的 TXT record)
e.g.
# host -t txt https.tcp.portsdb.org
https.tcp.portsdb.org text "443"
# host -t txt edonkey.tcp.portsdb.org
edonkey.tcp.portsdb.org text "4661"
edonkey.tcp.portsdb.org text "4662"

ref. Ports Database

Posted by pank at 02:06 PM | Comments (0)

June 16, 2005

BASH Arithmetic Evaluation

BASH 中 (( )) 表示數值運算, 介紹一些數值的表示法

((C=A+B)) 等於 let C=A+B 等於 C=$((A+B)) 等於 C=$(($A+$B))
((A++)) 等於 let A++ 等於 A=$((A+1)) 等於 A=$(($A+1)), 其他類似的寫法如 A--, ++A, --A
((B=B+A)) 可以寫成 ((B+=A)), 其他類似的寫法如 ((B-=A)) ((B*=A)) ((B/=A))
條件式
((A>B)) 等於 [ $A -gt $B ]
((A==B)) 等於 [ $A -eq $B ] 等於 [ $A = $B ] (兩數值一樣時, 當作字串比對還是一樣)
((A!=B)) 等於 !((A==B)) 等於 ! [ $A -eq $B ] 等於 [ $A != $B ]

所有 comparison > < >= <= == !=
乘羃 ** 如 let A=2**10
餘數 % 如 let A=100%3
數字前加 0 表示八進位, 如 010
數字前加 0x 表示十六進位, 如 0x10

PS. BASH 數值表示範圍 -(2^63) ~ 2^63-1
即 -9223372036854775808 ~ 9223372036854775807

Posted by pank at 02:00 AM | Comments (0)

June 14, 2005

GNU utilities for Win32

GNU utilities for Win32 (3.2MB)
不用裝 Cygwin, 即可以在 Windows cmd 視窗使用常用的 GNU utilities
簡易安裝法: 解開把 *.exe 複製到 Windows 目錄(或者 PATH 有指到的地方)
copy usr\local\wbin\*.exe %windir%

Posted by pank at 03:05 AM | Comments (0)

June 13, 2005

Build disk image directly

An example to build disk image directly

#!/bin/sh
B=16 # cylinders
P1=100 # cylinders
P2=200 # cylinders
dd bs=1k count=16 if=/dev/zero of=0 # Linux disk first 16k stores MBR and partition table
dd bs=1k count=$((P1*64-$B)) if=/dev/zero of=1
dd bs=1k count=$((P2*64)) if=/dev/zero of=2
printf "nn\np\n1\n\n$P1\na\n1\nn\np\n2\n\n$P2\nw\nq\n" | fdisk -H 4 -S 32 -C $(($P1+$P2)) 0
mke2fs -F 1
mount -o loop 1 /mnt
cp files /mnt # copy your files to partition 1
umount /mnt
mke2fs -jF 2
mount -o loop 2 /mnt
cp files /mnt # copy your files to partition 2
umount /mnt
cat 0 1 2 > image.dd

Load image to disk
# dd if=image.dd of=/dev/sda

# fdisk -l /dev/sda

Disk /dev/sda: 32 MB, 32702976 bytes
4 heads, 32 sectors/track, 499 cylinders
Units = cylinders of 128 * 512 = 65536 bytes

Device Boot Start End Blocks Id System
/dev/sda1 * 1 100 6384 83 Linux
/dev/sda2 101 200 6400 83 Linux

Posted by pank at 11:25 AM | Comments (0)

macchanger

macchanger 和 ifconfig [interface] hw ether [MAC] 的功能一樣, 可以變更網路卡卡號,
但並不是實體地修改卡號, 重開機後仍會回復, 嚴格說起來是可以設定網路卡卡號.
另外一個好用功能是可以查詢 vendor

查詢本機 eth0
# macchanger -s eth0
Current MAC: 00:02:b3:9b:b9:ba (Intel Corporation)

查詢 00:e0:4c 開頭是那一家做的
# macchanger -l | grep 00:e0:4c
7079 - 00:e0:4c - Realtek Semiconductor Corp.

列出 D-Link 的 MAC list
# macchanger --list=D-Link
Misc MACs:
Num MAC Vendor
--- --- ------

Wireless MACs:
Num MAC Vendor
--- --- ------
0012 - 00:05:5d - D-Link DWL-650, DWL-650H
0013 - 00:06:25 - Linksys WPC11 v2.5, D-Link DCF-650W, Linksys WPC11 v3
# macchanger --list=D-link
Misc MACs:
Num MAC Vendor
--- --- ------
1374 - 00:05:5d - D-link Systems, Inc.
3426 - 00:0d:88 - D-link Corporation
3863 - 00:0f:3d - D-link Corporation
5340 - 00:50:ba - D-link
5862 - 00:80:c8 - D-link Systems, Inc.

Wireless MACs:
Num MAC Vendor
--- --- ------
指定 keyword 大小寫有差, 資料檔 /usr/local/share/macchanger/OUI.list 的內容, 大小寫並沒有統一,
還是用 macchanger -l | grep -i keyword 比較實用

Posted by pank at 10:55 AM | Comments (0)

June 09, 2005

P7ZIP

P7ZIP7ZIP 的 UNIX 版,
Supported formats: 7z, ZIP, CAB, RAR, ARJ, GZIP, BZIP2, Z, TAR, CPIO, RPM and DEB
要下載 source, make 7z 後, 才有解 RAR 的功能,
其解碼模組放在 /usr/local/lib/p7zip
binary package 裡面的 7za, 不能解 RAR

Posted by pank at 11:29 AM | Comments (0)

June 07, 2005

gcin

gcin 已比初期好很多(上一次試是 0.6.x)
Mandriva Linux LE20050.9.7, rpm 已經做好大部分的修改動作,
只要在 /etc/X11/xinit/XIM 前面加一行
XIM_PROGRAM=gcin
就大致 OK
唯一問題是遇到 Firefox、Thunderbird 時, 輸入視窗會卡在左上角,
作者表示, 這是 GTK2 的問題, 修正方法
不過 Firefox 官方版沒有把 libwidget_gtk2.so 分開,Mandriva 自己編的 Firefox 有.
我試了 Mandriva Linux 2005LE 內建的 Firefox 1.0.2 及 cooker Firefox 1.0.4 rpm,
用修正過的 so 檔覆蓋原檔後, over-the-spot 就正常了.

Posted by pank at 01:03 AM | Comments (0)

June 02, 2005

Ext2fsd

使用 Ext2fsd 可以讓 Windows 認得 Ext2/Ext3 file system, 可以 mount/umount, 而且可以讀寫, 比 Explore2fs 好用.
要有寫入功能, 在安裝時需勾選
Enable write support for Ext2 partitions
  Enable force writing support on Ext3 partitions

mount.exe 是放在 %windir%\system32
e.g.
To mount partition 3 of harddisk 0 to x:, then
mount 0 3 x:
To unmount x:, then
mount /umount x:
x: 是要掛載的磁碟
harddisk 0 是指第一個硬碟
partition 3 是指第三個分割區, 是實體的 partition 順序,
並不一定等於 hda3, 若 partition 3 位於 Ext partition, 就可能是 hda5 或 hda6

Posted by pank at 11:54 AM | Comments (0) | TrackBack

May 30, 2005

Nerd and Geek

NerdGeek
原本是意思不同的字, 隨著時間的變遷, 這兩個字的意思已經相當(根據 Wikipedia 的描述),
都是指: 技術強的電腦狂熱者
Nerd 原本的意思是聰明但是不善於社交的人
Geek 原本的意思是指瘋狂雜耍的人(表演咬下活蛇頭、活雞頭的雜耍演員)
這兩個字是否同義, 至今仍有一些爭議, 有人認為 Geek 比 Nerd 技術高但更不善於社交, 也有人持相反意見.

Why Geeks and Nerds Are Worth It... 這篇文章滿有趣的,
中譯: 找個 Geek/Nerd 當男友 from Night Thoughts

Posted by pank at 04:22 AM | Comments (0)

Use Windows Media Player 10 to rip CD to WMA/MP3

原來 Windows Media Player 10 就內建轉 WMA 或 MP3 的功能了,
工具/選項/擷取音樂, 可選擇 Windows Media Audio 或 MP3 格式,
選擇音訊品質後按確定, 之後點選擷取Label, 再按右上的擷取音樂.

Posted by pank at 03:38 AM | Comments (0)

May 26, 2005

HTB.init

HTB.init is a shell script derived from CBQ.init that allows for easy setup of HTB-based traffic control.
After I test, I think HTB.init is better and easier then CBQ.init.
Documents and examples in head of HTB.init, default HTB directory /etc/sysconfig/htb, put traffic class here.

Posted by pank at 10:51 AM | Comments (0)

Chinese Chess

淺紅 象棋, 有網路對戰及交談功能, 棋力並不強, 目前有兩個 AI plugin, 棋力分別是中與強,
使用 AI plugin, 選最高等級, 電腦都要想很久很久.
ref. Freshmeat 上的象棋軟體

Posted by pank at 10:23 AM | Comments (0)

May 25, 2005

GNU - Richard Stallman

昨天去參加 「2005國際自由軟體產業策略暨應用高峰會」-最佳企業應用實例研討
主要是去聽 GNU 之父 Richard Stallman 的演講,




講述 GNU 的歷史及 The Free Software Definition
  • The freedom to run the program, for any purpose (freedom 0).
  • The freedom to study how the program works, and adapt it to your needs (freedom 1). Access to the source code is a precondition for this.
  • The freedom to redistribute copies so you can help your neighbor (freedom 2).
  • The freedom to improve the program, and release your improvements to the public, so that the whole community benefits (freedom 3). Access to the source code is a precondition for this.
    Richard 的演講很清晰, 以我的英文程度竟也能聽懂八成
    接下來幾天在 台大、中研院、國家高速網路與計算中心 還有講場.
    除了 Richard 的精彩演說, 還有 IBMNovel大灣大哥大中華民國開放系統協會(COSA)聯電 的 Linux 經驗分享
    大概有幾個共通的因素使他們採用 Linux
  • Open standard/architecture (開放式標準、開放式架構)
  • Open source (開放源碼)
  • Reliable, Robustness (穩定性)
  • Low cost (降低成本)
  • Choice, Flexibility (選擇與彈性)
  • Excellent path to on demand business (客制化最佳途徑)

    相關連結:
    IBM Linux Portal - Linux at IBM
    Novel Linux Desktop
    Novel Hula Project

    PS. 感謝幫我拍照的不知名朋友

    Posted by pank at 02:54 AM | Comments (0)
  • May 19, 2005

    Dropbear SSH server and client

    Dropbear is a lightweight SSH2 server and client, it's small and useful for embedded environment.
    Server: dropbear (stripped size 110K in Mandrake Linux 10.0)
    Client: dbclient (stripped size 99K in Mandrake Linux 10.0)

    Server Setup
    mkdir /etc/dropbear
    dropbearkey -t rsa -f /etc/dropbear/dropbear_rsa_host_key
    or
    dropbearkey -t dss -f /etc/dropbear/dropbear_dss_host_key
    or use dropbearconvert to conver openssh key to dropbear key
    eg. dropbearconvert openssh dropbear /etc/ssh/ssh_host_rsa_key /etc/dropbear/dropbear_rsa_host_key

    Dropbear's sftp support relies on OpenSSH sftp binary or similar
    default path /usr/libexec/sftp-server describes in options.h

    Posted by pank at 11:24 AM | Comments (0)

    衣蛾

    以前就曾看到這種蟲, 它會貼在牆壁上, 移動很緩慢, 把它的外衣(袋子)撕開, 可看到裡面的幼蟲, 原來它叫衣蛾
    它的袋子是由吐的絲和食物內的纖維連接而成
    對人類來說, 它是一種害蟲, 會吃紡織品等東西

    ref: 萬金油:謎樣的生物 | Peko:袋衣蛾


    Posted by pank at 02:14 AM | Comments (0)

    May 18, 2005

    NOKIA 8250

    NOKIA 8250 這支手機已經陪伴我四年又四個多月,
    這支當賣得不錯, 可能很多人都曾用過這支手機.
    記得買的時候花了 12K 還是 13K, 忘了,
    現在叫我花這麼多錢買一支手機, 實在花不下去, 可見年輕時敗家不眨眼.
    現在它有一個小問題, 有時候會聽不到聲音, 要壓一下手機的上半部.
    因為它實在是耐摔又好用, 使得我還想再買一支備用, 要找二手機或少數店家的庫存新機,
    有人要便宜賣我嗎?
    我不需要新的彩色螢幕+照相功能的手機啊!

    Posted by pank at 01:56 PM | Comments (0)

    NetCut

    NetCut 這個 arp spoofing 軟體, 可以切斷區網任何一台電腦與 Gateway 之間的連線, 造成該電腦無法上網
    這個應該是大陸人寫的軟體, 稱「網路剪刀手」, 英文版的軟體還有一些拼錯的字 XD
    原理很簡單, NetCut 負責假造 arp 封包, 提供目標電腦的假 MAC 資訊, Gateway 收到後便把錯的 MAC 記到 arp table, Client 端的返回封包就無法送達, 也就無法上網.

    例: 把目標電腦設定為 Off 後, 在 Gateway 上就會發現目標電腦的 MAC 被 spoofing 了
    # arp -a
    kelly.i (192.168.0.7) at b2:cc:ba:e9:cb:ae on xl0 [ethernet]

    NetCut 並不是時時在發假封包, 所以被鎖定的目標多試幾次還是有機會可以通(機率很小, 而且一下子就斷了)
    似乎沒辦法查出那一台在用 NetCut, 因為它只發假的 arp 封包

    Posted by pank at 12:06 AM | Comments (0)

    May 16, 2005

    Bloglines

    剛剛試了 Bloglines, 還滿好用的!
    在 Bloglines 內 RSS 訂閱 blog、news 等, 不需要灌什麼 RSS reader, 統一在 Bloglines 內閱讀.
    HiNet 的 Xuite 內也有類似的功能.

    Posted by pank at 11:32 AM | Comments (0)

    May 13, 2005

    Truth of Google Web Accelerator

    發現 Google Web Accelerator 並不是單純的 local cache, 直接連出去
    經測試結果, 其出去的 IP 是 64.233.172.*
    NetRange: 64.233.160.0 - 64.233.191.255
    CIDR: 64.233.160.0/19
    NetName: GOOGLE
    也就是有經過 Google 的超大型 Proxy Server, Google 可能對 cache 的資料加以分析, 成為 Google Search 的有利資訊
    64.233.172.* IP 位置在美國, 繞到美國再去連網頁, 恐怕比不用 Google Web Accelerator 還慢, 可能還有安全性問題

    可以看來源 IP 的站 (後面括號內是使用 Google Web Accelerator 後秀出的 IP, 您看到的 IP 可能與我測試時不同)
    http://ipid.shat.net (64.233.172.22)
    http://77bbs.com/ip/ (64.233.172.17)
    http://ecerami.com/servlet/coreservlets.ShowCGIVariables (64.233.172.4)
    http://www.mueloliva.es/cgi-bin/variables.cgi (64.233.172.29)
    http://curry.edschool.virginia.edu/go/www_uses/demos/cgi-test.html (64.233.172.24)
    http://www.mywanip.com

    Posted by pank at 01:27 AM | Comments (0)

    May 12, 2005

    PSP

    同事買了一台 PSP, 聲光效果十足, 質感也很好, 還內建無線網路. Technical Specs
    售價19800円, 台灣買大概 NT 7000~8000
    如果還有導航功能, 會考慮買一台

    Posted by pank at 10:04 AM | Comments (0)

    May 10, 2005

    Mozilla Thunderbird prefix Space/Tab vanish problem

    使用 Thunderbird 寫信, 每行前面若有 Space/Tab, 信寄出後前面的 Space/Tab 會不見, 不曉得這是不是 bug?
    原本是
    aaa
      bbb
        ccc
    寄出後會變成
    aaa
    bbb
    ccc
    因為我習慣用純文字來排版, 每次都發現寄出的信每行前面的 Space/Tab 被 trim 掉, 而造成版面亂掉,
    即使選單選擇 選項/格式/只有純文字, 也不行, 純文字沒理由把每行前面的 Space/Tab 被 trim 掉.
    解決方法: 選單選擇 帳號設定/寄送與通訊錄/編輯 取消 以HTML格式編輯信件.

    Posted by pank at 09:31 AM | Comments (0)

    May 06, 2005

    Get console COLUMNS and LINES in shell script

    Method 1
    resize > /tmp/out
    . /tmp/out
    echo $COLUMNS $LINES
    (resize command included in xterm rpm)
    Method 2
    stty -a | awk -F"[ ;]" '{if (NR==1) print $6" "$9}'

    ref. tw.bbs.comp.linux - shell script 中,取用COLUMNS 變數的問題

    Posted by pank at 11:57 AM | Comments (0)

    May 04, 2005

    挑照片

    上星期日去挑婚紗照片
    拍出來的結果比預期還好, 我們都覺得很滿意, 攝影師真行!
    照片很難挑, 因為看起來都很美, 不曉得要刪那一張,
    原本是 36 組, 也就是只能挑 36 張, 要把其他美美的照片刪到剩 36 張, 簡直是不可能任務,
    於是加組(加組=加錢), 最後選了 66 組, 又買了所有的原始檔, 真是破費.
    總共挑了五個小時, 才把所有的照片都決定好.

    Posted by pank at 04:28 PM | Comments (3)

    April 28, 2005

    SMBIOS

    SMBIOS Kernel Module provides access to the management information of SMBIOS structures in both human readable and binary form via the /proc file system.
    Download
    edit Makefile, change INCLUDEDIR to your current kernel source include directory
    eg. INCLUDEDIR = /usr/src/linux-2.4.30/include
    # make (will generate smbios.o)
    # insmod smbios.o (load module)
    SMBIOS information available in /proc/smbios
    ref. Wikipedia - SMBIOS

    Posted by pank at 11:50 AM | Comments (0)

    April 27, 2005

    Cheap Hosting

    GoDaddyEconomy Hosting, 一個月 USD 3.95
    包含 500MB 空間、每個月傳輸量 25G, 100 個 Email, 一個 Database (MySQL or MS SQL),
    有 Linux 及 Windows 平台
    這個價格實在很吸引人, 於是買了一個月試看看
    提供 FTP 上傳檔案, Email 有提供 POP3, SMTP
    頻寬表現也不差, 在不同時間用 HiNet 及 TANET 抓檔測試, 都能得到 200-300K/s 的結果,
    即 Godaddy 提供 2M 左右的上傳頻寬
    MySQL 有提供 phpMyAdmin 給 user 管理
    非常物超所值
    比較之下, HiNet 的 Hosting 簡直是天價, 最低檔的, 15MB, 每個月還要 NTD 800

    Posted by pank at 05:14 PM | Comments (1)

    April 26, 2005

    DSLR

    DSLR or Digital SLR = Digital Single Lens Reflex, 數位單鏡反光鏡式相機, 簡言之, 就是數位單眼相機
    特性和傳統單眼相機一樣, 僅儲存媒體不同
    這類的相機, 都是專業級的高檔相機, 價格不斐
    在 DSLR 市場, Canon 目前具領導地位
    ref. Wikipedia - DSLR | 奇摩知識 - 什麼是 DSLR

    Posted by pank at 02:17 AM | Comments (0)

    Opera: THE 1 MILLION DOWNLOAD CHALLENGE

    Opera 在四天內下載次數超過一百萬, Opera 總裁要準備橫渡大西洋了!
    Opera 網頁上的後續報導

    Posted by pank at 01:46 AM | Comments (0)

    拍婚紗

    上週五去拍了婚紗, 事實上, 已經延了很多次, 都不巧遇到下雨.
    大部分的時間都在等 Kelly 化妝, 覺得攝影師的功力不錯, 他用的相機是用 Canon EOS D60
    Kelly 的照片應該都滿好看的, 我是覺得自己笑起來很假.
    外景在西湖, 還遇到某客家電視台來採訪我們! 節目主持人是小鍾
    (後來查到應該是 客家玩透透 這個節目)
    還好當天不是很熱, 不然一直流汗很受不了.
    早上拍了兩套衣服, 下午拍外景兩套, 回來再拍三套, 7:50 拍完, 拍照過程很順利.

    Posted by pank at 01:28 AM | Comments (2)

    April 25, 2005

    JOE 3.2

    Download | Release Notes
    JOE 3.2 上個月出的新版
    我覺得好用的新增功能有
    Hex edit mode, joe -hex file, hex search, type `xff`x03 to search for FF03
    xterm mouse support

    http://sourceforge.net/forum/forum.php?thread_id=1270646&forum_id=74215

    Posted by pank at 11:52 AM | Comments (0)

    April 14, 2005

    World Wind Demo

    前幾天我有介紹這個軟體,
    今天發現了
    1. 可以用 A, S, D, W 旋轉, 切換視角
    2. 某些地方會有細部的空照
    錄了一段 Demo (XVID MPEG4, zoom in 舊金山金門大橋), 看看吧

    Posted by pank at 01:18 AM | Comments (0)

    April 12, 2005

    April 11, 2005

    Google Dictionary

    做了個小工具使在瀏覽器中選取英文, 按右鍵, 使用 Google 字典翻譯功能
    for Internet Explorer | for Firefox
    Firefox 要先裝 Context Search Extenstion

    Internet Explorer screen shot

    Firefox screen shot


    ref. Dave's Blog - Google dictionary

    Posted by pank at 10:43 PM | Comments (0)

    April 10, 2005

    Build prism54 AP

    Please read prism54 README first, it's very clear.
    The following is my notes.
    My environment
    Kernel: 2.4.25
    Card: Corega CG-WLCB-54GT (ref. Chipsets and Wireless cards supported by the Linux prism54 driver)
    eth0 as WAN, eth1 as LAN

    I chose 2nd way (not patch kernel) describe in prism54 README

    wget http://prism54.org/pub/linux/testing/tars/2004-06/prism54-1.2.tar.bz2
    tar jxvf prism54-1.2.tar.bz2
    cd prism54-1.2
    make KDIR=/usr/src/linux-2.4.25 clean modules

    then get prism54.o module

    Kernel config
    CONFIG_EXPERIMENTAL: y
      Code maturity level options --->
       Prompt for development and/or incomplete code/drivers
    CONFIG_HOTPLUG: : y
      General setup --->
       Support for hot-pluggable devices
    CONFIG_FW_LOADER: m/y (either one will work)
      Library routines --->
       Hotplug firmware loading support (EXPERIMENTAL)
    CONFIG_NET_RADIO : y
    CONFIG_NET_WIRELESS : y
      Network device support --->
       Wireless Lan (non-hamradio)
    For PCMCIA Cards :
    CONFIG_PCMCIA && CONFIG_CARDBUS
      General setup --->
       PCMCIA/CardBus support --->
       PCMCIA/CardBus support (m or y)
       [*] CardBus support (Important!)

    Make new kernel (make dep && make bzImage)

    Get firmware

    mkdir -p /usr/lib/hotplug/firmware
    cd /usr/lib/hotplug/firmware
    wget http://prism54.org/firmware/1.0.4.3.arm
    mv 1.0.4.3.arm isl3890

    Boot with new kernel and use prism54.o module
    Make sure the hotplug system has been setup properly,
    otherwise you might get errors in the kernel log stating that request_firmware() has failed
  • does "cat /proc/sys/kernel/hotplug" show something like "/sbin/hotplug"?
  • is /sbin/hotplug present?
  • is the "firmware" agent is present (call /sbin/hotplug without any argument to show a list of available agents)
  • have you copied the firmware file into the folder expected by firmware.agent? (usually "/usr/lib/hotplug/firmware/")
  • for 2.6.x you need to mount sysfs!
    insmod prism54.o

    I've tried many times and got this error, maybe you never get this message.
    PCI: No IRQ known for interrupt pin A of device 0000:01:00.0.
    eth2: could not install IRQ handler

    Solution: enable ACPI and disable APM in kernel config and enable ACPI support in BIOS
    If no error occured,
    ifconfig eth2 up
    iwconfig eth2 mode master
    iwconfig eth2 essid default

    Finaly, bind eth1 and eth2 as bridge, prism54 AP should work now.

    Use iwpriv to make MAC ACL control (different from hostap)

    iwpriv eth2 setPolicy 0 (Accept every client.)
    iwpriv eth2 setPolicy 1 (Accept everybody except client whose MAC is in the list)
    iwpriv eth2 setPolicy 2 (Reject everybody except clients in the list.)
    iwpriv eth2 addMac xx:xx:xx:xx:xx:xx (add MAC in the list)
    iwpriv eth2 delMac xx:xx:xx:xx:xx:xx (del MAC in the list)

    I found if setPolicy too many times, prism54 driver will crash, maybe a bug.

    Note:
    prism54 was build in kernel >=2.4.28 or kernel >=2.6.8, you don't need to patch kernel if you use new kernel.

    ref. 使用 PCMCIA wireless card + hostap 架設 AP
    http://prism54.org/forums/viewtopic.php?t=659&highlight=prism54+pci+device+memory+region+configured
    http://prism54.org/pipermail/prism54-users/2004-May/001380.html

    prism54: PCI device memory region not configured; fix your BIOS or CardBus bridge/drivers

    Posted by pank at 09:14 PM | Comments (0)
  • Pank.org Visitors Stats (March 2005)

    Firefox user 大概佔一成, IE user 已少於八成




    Posted by pank at 08:26 PM | Comments (0)

    World Wind

    World WindNASA 出的軟體, 可以從衛星的角度看地球, 1.3 版約 171MB



    ref. 竹貓星球 - 地球放大鏡

    Posted by pank at 06:57 PM | Comments (0)

    讓 MSN 7 可以再接收已封鎖的檔案

    MSN 7 為了安全因素, 對一些特定副檔名檔案作封鎖, 我覺得這實在是因噎廢食的作法
    其副檔名封鎖封是在接收端控制, 只要加入以下 registry 即可再接收已封鎖的檔案
    LowRiskFileTypes 可以自行調整

    Windows Registry Editor Version 5.00

    [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Associations]
    "LowRiskFileTypes"=".bat;.cmd;.chm;.com;.exe;.lnk;.msi;.reg;.scr;.url;.mp3;.mpg;.avi;.wmv;.jpg;.png;.gif"

    2005-07-07 更新
    經測試新版的 MSN (7.0.0813以後) 已不適用這個方法, 請參考 MSN Messenger 7 Remove File Transfer Protection

    Posted by pank at 12:05 PM | Comments (4)

    April 01, 2005

    Gmail Growth

    Gmail 一週年, 空間再加碼, 空間正漸漸提升中(寫這篇文章時是1350MB)
    剛好 我的 Gmail 滿了, 容量來得正是時候.

    G is for growth
    Storage is an important part of email, but that doesn't mean you should have to worry about it. To celebrate our one-year birthday, we're giving everyone one more gigabyte. But why stop the party there? Our plan is to continue growing your storage beyond 2GBs by giving you more space as we are able. We know that email will only become more important in people's lives, and we want Gmail to keep up with our users and their needs. From Gmail, you can expect more.

    Posted by pank at 10:10 PM | Comments (0)

    4/1 phpinfo()

    April fools' day





    Posted by pank at 05:04 PM | Comments (2)

    March 31, 2005

    Gmail Full

    再大的容量還是有滿的一天
    我沒用 GMail Drive shell extension 放檔案, 都是 mail 的容量
    容量滿了還是能收 mail, 它的 buffer 不曉得是多少?




    Posted by pank at 03:28 PM | Comments (1)

    March 28, 2005

    Web ATM

    晶片讀卡機 + Web ATM, 實在太方便了,
    除了不能領出現金, 其他提款機能做到動作都可以在自己電腦上完成.
    目前國內有包括 玉山銀行萬泰銀行國泰世華銀行台灣銀行台北富邦銀行 共五家業者推出 Web ATM
    Web ATM 和一般的 ATM 一樣, 可進行跨行作業, 也就是不一定要上述幾家銀行的卡才能用, 郵局的晶片片也可以使用.

    Posted by pank at 08:03 PM | Comments (0)

    March 24, 2005

    IOCCC

    IOCCC - The International Obfuscated C Code Contest
    國際模糊代碼競賽

  • To write the most Obscure/Obfuscated C program under the rules below.
  • To show the importance of programming style, in an ironic way.
  • To stress C compilers with unusual code.
  • To illustrate some of the subtleties of the C language.
  • To provide a safe forum for poor C code. :-)

    上面的 Goals, 似乎是 C 語言另類極限挑戰
    看了一些 winner code, 很深奧

    Posted by pank at 10:14 AM | Comments (0)
  • March 23, 2005

    Taiwan SF.net mirror site: NCHC

    剛剛發現, SourceForge 的 mirror site 多了 NCHC, 以後下載檔 SourceForge 的檔案就快多了.

    Posted by pank at 05:49 PM | Comments (0)

    March 18, 2005

    Air Power

    剛剛在 PC home 購物 看到 《Air Power空氣即時電》攜帶型充電器
    真是好東西! 用空氣產生電力
    問了一下 Google, 大都是購物網站的資料, 有 for Notebook, IPod...
    但是找不到技術性的資料, 這種東西應該會很紅才對啊

    Posted by pank at 01:50 AM | Comments (2)

    March 16, 2005

    Giga Web-Amp service

    Giga 最近推出 Web-Amp 網站超頻服務 (產品架構|FAQ), 同事剛好問到怎麼設, 就去試用一下, 申請後後會出現如下資訊

    恭喜!您已經完成Giga Web-Amp的申請程序,
    您的服務開通日期與到期日期為
      開通日期 2005-03-16
      到期日期 2005-03-31
    請至您的DNS上將網站位置設為203.187.29.180

    其實只要把 DNS 指向 Giga 的 Server 即可, 試用的結果只能用超慢來形容,
    誰叫 HiNet 和 Giga 是死對頭.
    對 HiNet user 來說, 連使用 Web-Amp 的站, 速度上還是一樣慢 :(

    ref. 試用 webamp.giga.net.tw

    Posted by pank at 01:08 AM | Comments (0)

    Build Chinese Version MSN Messenger 7.0.0632

    使用 msi2xml 將 MsnMsgs.msi 轉成 XML 格式,
    取用 7.0.0425 Public Beta 的 XML 檔, 複製以下區段(含安裝畫面的中文詞彙)到新版本的 XML 檔
    <table name="Control"> 區段
    <table name="Property"> 區段到 InstallMode
    <table name="RadioButton"> 區段

    中文化檔案 msgslang.dll 使用 HENRYLIN 的作品
    msnmsgr.exe 經 NoAd 修正
    這兩檔案取代 MsgrCore.cab 裡的檔, 再轉 base64, 置換 MsgrCore.cab 的區段,
    最後用 xml2msi 轉回 msi 檔

    ref. 置換 msi 安裝檔內的檔案

    Posted by pank at 12:58 AM | Comments (0)

    March 10, 2005

    SpamCop 誤判?

    剛剛(00:00 ~ 01:00 左右)看 log, 發現有些從我 HiNet 信箱 FW 過來的信被檔,
    原因是 SpamCop 把 HiNet 的一些 mail server 168.95.4.* 中某幾台列為名單,
    現已正常.

    Posted by pank at 01:31 AM | Comments (2)

    Two ethernet cards with same MAC

    做了一個小測試, 在同一個 LAN, 弄兩張一樣 MAC 的網卡,
    一台 Windows XP, 一台 Linux,
    結果如何? (選擇題)

    1. 兩台網路都不通
    2. Windows XP 電腦網路不通
    3. Linux 電腦網路不通
    4. 兩台都有通

    答案是 4
    他們各自的網路都通, 可以透過 Gateway 連上網, 但是別人無法連他們,
    他們兩台也無法互連

    這個結果覺得滿怪的, 封包走得出去說得通, 但是返回的封包呢?
    從 Gateway 到 LAN 這一段, 有兩個同樣 MAC 的卡, 怎麼知道走那一邊?

    Posted by pank at 12:40 AM | Comments (4)

    March 08, 2005

    PSPad

    PSPad is a freeware editor
    Screen shot

    很適合網頁/程式設計者
    多國語系(有繁體中文)、提供很多編輯 html 的工具、預覽網頁還可以分三種解析度調整、
    程式碼瀏覽器、語法高亮度顯示、可編輯 ftp 上的檔案、HEX 模式編輯,
    比 UltraEdit 好用

    還有一些不錯的小功能
    如:
    移除 Email 的引言符號
    選擇標籤(選擇 Tag 間的內容)
    行號
    區塊(增加/減少)縮排
    ASCII 表
    滴管(取得某個點的色碼)
    數值轉換器, 可進行 2/8/10/16 進位換算
    方程式計算, 可以輸入這類的計算 10^2+500/(4-2)
    檔案比對, 比對後不同處以顏色標記

    Posted by pank at 10:20 PM | Comments (5)

    March 07, 2005

    GNOME: Fast change resolution and refresh rate

    gnome-display-properties
    no need to restart X

    xrandr is a powerful tool that can list avaiable mode,
    and change resolution and refresh rate without restart X

    # xrandr
    SZ: Pixels Physical Refresh
    *0 1024 x 768 ( 321mm x 241mm ) *70 60
    1 800 x 600 ( 321mm x 241mm ) 60 56
    2 640 x 480 ( 321mm x 241mm ) 59
    3 1024 x 576 ( 321mm x 241mm ) 60
    4 720 x 576 ( 321mm x 241mm ) 56
    5 856 x 480 ( 321mm x 241mm ) 59
    6 800 x 480 ( 321mm x 241mm ) 59
    7 720 x 480 ( 321mm x 241mm ) 61
    8 512 x 384 ( 321mm x 241mm ) 60

    # xrandr -s 800x600 -r 60

    Thanks Joseph's hint

    Posted by pank at 02:26 PM | Comments (1)

    MSN Messenger No Ad (Ad-Free) Repacked Version

    MSN Messenger 7.0.0632 (English)
    MSN Messenger 7.0.0425 (Traditional Chinese)
    MSN Messenger 6.2.0205 (Traditional Chinese)

    Latest "No Ad Fix" and "No Ad Repacked Version" available here.

    Posted by pank at 10:26 AM | Comments (0)

    March 01, 2005

    njabl.org

    今天公司有一封信被擋, 對方 mail server 使用 NJABL.org
    dnsbl.njabl.org: the original NJABL zone
    dynablock.njabl.org: dynamic IP pool
    combined.njabl.org: dnsbl.njabl.org and dynablock.njabl.org in a single zone

    dynablock.njabl.org 的資料不是很正確, 像 HiNet 61.220.0.0 - 61.227.255.255 這個 block,
    除了 61.222.0.0/16 以外, 其他的 IP 都在 dynablock.njabl.org list 內.

    Posted by pank at 06:05 PM | Comments (0)

    February 24, 2005

    sftp speed

    不同的 client 軟體, 使用 sftp 傳檔, 沒想到速度差異如此大
    以下是在我環境下測的結果, server 同一台, 抓同一個 20MB 的檔
    CuteFTP Pro 6.0    137 KB/s
    FileZilla 2.2.11    36X KB/s
    WinSCP 3.7.4    3.3 MB/s
    SSH Secure File Transfer Client 3.2.5    4.1 MB/s
    Linux sftp    4.1 MB/s

    Posted by pank at 01:28 AM | Comments (1)

    February 21, 2005

    Set IE View Source to default program (Notepad)

    Windows Registry Editor Version 5.00

    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\View Source Editor\Editor Name]
    @="notepad.exe"

    Posted by pank at 02:04 PM | Comments (1)

    February 17, 2005

    An easy way to backup PuTTY configuration

    regedit /e PuTTY.reg HKEY_CURRENT_USER\Software\SimonTatham

    PuTTY: A Free Telnet/SSH Client

    Posted by pank at 04:43 PM | Comments (5)

    February 16, 2005

    Apache simple auth

    Example:
    Add auth in directory /home/pank/public_html/auth
    User pank, password 1111

    1. Create .htaccess (in /home/pank/public_html/auth)
      AuthName "Simple Auth"
      AuthType Basic
      AuthUserFile "/home/pank/public_html/auth/.htpasswd"
      require valid-user
    2. Create .htpasswd
      htpasswd -cb .htpasswd pank 1111
      (-c for Create a new file, -b for Use the password from the command line rather than prompting for it)
      htpasswd -b .htpasswd test 2222
    3. Edit httpd.conf
      <Directory "/home/pank/public_html/auth">
        AllowOverride All
      </Directory>
    4. Restart Apache

      Posted by pank at 11:20 AM | Comments (0)

    February 10, 2005

    Firefox PowerPack 4 -MozTW擴充套件票選特別版

    Original version by Eshen
    Repacked version

    ref. http://forum.moztw.org/viewtopic.php?t=6243

    Posted by pank at 03:28 AM | Comments (0)

    February 03, 2005

    Add SCode to MT

    I think SCode is the best solution to fight comment spam for MT
    SCode needs GD and GD.pm
    install gd, libpng first (ports/graphics/gd, ports/graphics/png)
    ./configure --with-png when build GD or cd /usr/ports/graphics/gd; make WITH_XPM=yes
    to build GD.pm, needs perl 5.6 or higher
    wget http://search.cpan.org/CPAN/authors/id/L/LD/LDS/GD-2.30.tar.gz
    perl Makefile.PL
    make
    make test (optional)
    make html (optional)
    make install
    ref.
    防制發廣告機器人的檢核碼
    Blog comment spam fighting
    An easy way to get rid of MT comment spam

    Posted by pank at 12:13 AM | Comments (0)

    January 17, 2005

    77 Online Dictionary

    I wrote 77 online dictionary plugin for IE and Firefox
    Install page
    Dictionary database from pyDict

    Posted by pank at 03:33 AM | Comments (0)

    January 12, 2005

    Virtual Tunnel

    Virtual Tunnel(VTun) is similar to Softether,
    even more powerful for Linux or FreeBSD.
    To build VTun, needs following rpms
    liblzo1
    liblzo1-devel
    bison or byacc (byacc build failed in my case, so I install bison rpm)
    Working example:
    Server config /usr/local/etc/vtund.conf

    default {
      type tun;
      proto udp;
      compress lzo:1;
      keepalive yes;
    }

    s2 {
      passwd abcd;
      up {
       ifconfig "%% 10.10.0.1 pointopoint 10.10.0.2";
       route "add -net 10.10.1.0 netmask 255.255.255.0 gw 10.10.0.2";
       program /sbin/arp "-sD 10.10.0.2 eth0 pub";
      };
    }

    Client config /usr/local/etc/vtund.conf

    default {
      type tun;
      proto udp;
      compress lzo:1;
      keepalive yes;
    }

    s2 {
      passwd abcd;
      up {
       ifconfig "%% 10.10.0.2 pointopoint 10.10.0.1";
       route "add -net 10.10.0.0 netmask 255.255.255.0 gw 10.10.0.1";
      };
    }

    Before run vtund, both client and server needs to load tun module (modprobe tun), then
    Server run vtund -s
    Client run vtund s2 140.117.53.147
    (140.117.53.147 is server IP)

    Result:
    Server
    tun0 Link encap:Point-to-Point Protocol
       inet addr:10.10.0.1 P-t-P:10.10.0.2 Mask:255.255.255.255
       UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
       RX packets:15 errors:0 dropped:0 overruns:0 frame:0
       TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
       collisions:0 txqueuelen:10
       RX bytes:1260 (1.2 Kb) TX bytes:672 (672.0 b)

    Client
    tun0 Link encap:Point-to-Point Protocol
       inet addr:10.10.0.2 P-t-P:10.10.0.1 Mask:255.255.255.255
       UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
       RX packets:8 errors:0 dropped:0 overruns:0 frame:0
       TX packets:15 errors:0 dropped:0 overruns:0 carrier:0
       collisions:0 txqueuelen:10
       RX bytes:672 (672.0 b) TX bytes:1260 (1.2 Kb)

    ref. Softether

    Posted by pank at 09:42 AM | Comments (0)

    January 10, 2005

    x.x.x.x sent an invalid ICMP type 11, code 0 error to a broadcast

    Linux console shows something like "x.x.x.x sent an invalid ICMP type 11, code 0 error to a broadcast ..."
    What's the problem?
    Let's see kernel source net/ipv4/icmp.c

    if (!sysctl_icmp_ignore_bogus_error_responses)
    {
     if (inet_addr_type(iph->daddr) == RTN_BROADCAST)
     {
      if (net_ratelimit())
      printk(KERN_WARNING "%u.%u.%u.%u sent an invalid ICMP type %u, code %u error to a broadcast: %u.%u.%u.%u on %s\n
      NIPQUAD(skb->nh.iph->saddr),
      icmph->type, icmph->code,
      NIPQUAD(iph->daddr),
      skb->dev->name);
      goto out;
     }
    }

    It is because recieve ICMP bogus response,
    to ignore this, add net.ipv4.icmp_ignore_bogus_error_responses=1 to /etc/sysctl.conf

    Posted by pank at 04:50 PM | Comments (0)

    January 08, 2005

    Apache module mod_proxy

    ProxyPass allows remote servers to be mapped into the space of the local server

    You have to enable mod_proxy during buid apache
    e.g.
    ./configure --prefix=/usr/local/apache --sysconfdir=/usr/local/apache/conf \
    --enable-module=so --enable-module=rewrite --enable-module=proxy

    Example:
    a FreeBSD server, WAN IP 140.117.53.147, LAN IP 192.168.0.1, with Apache 1.3.33
    a Windows IIS server, LAN IP 192.168.0.6, Gateway 192.168.0.1

    Example Settings 1: (all can connect iis.pank.org)

    <VirtualHost 140.117.53.147>
      ServerName iis.pank.org
      ProxyPass / http://192.168.0.6/
    </VirtualHost>

    Example Settings 2: (restrict from, only 140.117.0.0/16 can connect)

    <VirtualHost 140.117.53.147>
      ServerName iis.pank.org
       <Directory proxy:*>
       Order deny,allow
       Deny from all
       Allow from 140.117.0.0/16
      </Directory>
      ProxyPass / http://192.168.0.6/
    </VirtualHost>

    note: Setting ProxyRequests to off does not disable use of the ProxyPass directive.
    ref.
    Apache module mod_proxy
    R-Proxy

    Posted by pank at 03:04 PM | Comments (0)

    January 07, 2005

    BASH Trick: check variant if contains some string

    bash trick: build-in method

    A="abcd0123456789"
    if [ "${A/1234/}" != "$A" ] ; then
      echo yes
    fi

    grep method

    A="abcd0123456789"
    if echo $A | grep -q 1234 ; then
      echo yes
    fi

    After I test, 1st method is 40 times faster then grep method


    Posted by pank at 07:05 PM | Comments (0)

    Useful Firefox Trick

    Ctrl + / Ctrl - or CTRL-Mouse wheel to zoom in / zoom out page
    Press / to search
    Ctrl-T to open new tab
    Ctrl + Mouse Click to open URL in new tab
    Ctrl-[1-9] to switch tab (Alt-[1-9] under X Window)
    Type about:config in location bar for tweaking

    My Firefox Extensions
    All-in-One Gestures (Linux and Windows)
    Auto Copy (Windows)
    Context Search (Linux and Windows)
    DragToTab (Linux and Windows)
    Flash Got (Windows)
    ieview (Windows)
    Minimize to Tray (Windows)
    Paste and Go (Windows)

    ref. http://hemiolapei.free.fr/divers/mozilla.html

    Posted by pank at 10:59 AM | Comments (0)

    January 05, 2005

    bind9 view statements


    view statements could relpy different result depend on client origin
    Example: private view and public view
    query from public network ref. file db.test
    query from private network ref. file db.test.private
    view "public" {
        match-clients { !192.168.0.0/16; any; };
        recursion no;
        zone "." {
            type hint;
            file "named.root";
        };
        zone "test.com" {
            type master;
            file "db.qmio";
        };
    };
    
    view "private" {
        match-clients { 192.168.0.0/16; };
        zone "." {
            type hint;
            file "named.root";
        };
        zone "test.com" {
            type master;
            file "db.test.private";
        };
    };
    
    Note: to use view statements, all zones must be in views

    Posted by pank at 10:41 PM | Comments (0)

    January 03, 2005

    Postfix-SMTP-AUTH-TLS-Howto (Update v2)

    舊版 Postfix-SMTP-AUTH-TLS-Howto
    更新一些檔案, 步驟大至相同

    取得檔案
    wget http://www.openssl.org/source/openssl-0.9.7e.tar.gz
    wget ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/cyrus-sasl-2.1.20.tar.gz
    wget http://archive.mgm51.com/mirrors/postfix-source/official/postfix-2.1.5.tar.gz
    wget ftp://ftp.aet.tu-cottbus.de/pub/postfix_tls/pfixtls-0.8.18-2.1.3-0.9.7d.tar.gz

    解壓檔案
    tar zxf openssl-0.9.7e.tar.gz
    tar zxf cyrus-sasl-2.1.20.tar.gz
    tar zxf postfix-2.1.5.tar.gz
    tar zxf pfixtls-0.8.18-2.1.3-0.9.7d.tar.gz

    編譯 openssl
    cd openssl-0.9.7e
    ./config
    make
    make install

    編譯 cyrus-sasl-2
    cd ../cyrus-sasl-2.1.20
    ./configure --enable-anon --enable-plain --enable-login --with-saslauthd=/var/run/saslauthd --with-pam --with-openssl=/usr/local/ssl --with-plugindir=/usr/local/lib/sasl2 --enable-cram --enable-digest
    make
    make install
    (若已有裝 libsasl2 rpm, 需移除, 然後 ln -fs /usr/local/lib/libsasl2.so.2.0.20 /usr/lib/libsasl2.so.2)

    [ -d /usr/lib/sasl2 ] && mv /usr/lib/sasl2 /usr/lib/sasl2_orig
    ln -s /usr/local/lib/sasl2 /usr/lib/sasl2
    printf "pwcheck_method:saslauthd\nmech_list: plain login digest-md5\n" > /usr/local/lib/sasl2/smtpd.conf

    編譯 postfix (含 tls patch)
    cd ../postfix-2.1.5
    useradd postfix
    groupadd postdrop
    patch -p1 < ../pfixtls-0.8.18-2.1.3-0.9.7d/pfixtls.diff
    (仍可套用在 postfix 2.1.5)
    make makefiles CCARGS="-DHAS_SSL -DUSE_SASL_AUTH -I/usr/local/include/sasl -I/usr/local/ssl/include" AUXLIBS="-L/usr/local/ssl/lib -L/usr/local/lib -R/usr/local/lib -lsasl2 -lssl -lcrypto"
    make
    make install
    (全部用預設值按 enter 即可)
    cp /etc/postfix/aliases /etc/
    newaliases
    mkdir -p /var/spool/postfix/etc
    cd /etc
    cp localtime services hosts resolv.conf /var/spool/postfix/etc
    mkdir -p /var/run/saslauthd
    (mux socket file 存放處)

    產生 certificate files for TLS
    cd /etc/postfix
    openssl req -new -x509 -nodes -out smtpd.pem -keyout smtpd.pem -days 3650

    編輯 /etc/postfix/main.cf 加入下列
    # SASL
    smtpd_recipient_restrictions=permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination
    smtpd_sasl_auth_enable=yes
    smtpd_sasl_security_options=noanonymous
    broken_sasl_auth_clients=yes
    # TLS
    smtp_use_tls = yes
    smtpd_use_tls = yes
    smtp_tls_note_starttls_offer = yes
    smtpd_tls_key_file = /etc/postfix/smtpd.pem
    smtpd_tls_cert_file = /etc/postfix/smtpd.pem
    smtpd_tls_CAfile = /etc/postfix/smtpd.pem
    smtpd_tls_loglevel = 1
    smtpd_tls_received_header = yes
    smtpd_tls_session_cache_timeout = 3600s
    tls_random_source = dev:/dev/urandom

    啟動 postfix 及 saslauthd
    postfix start
    saslauthd -a shadow -m /var/run/saslauthd

    測試
    telnet localhost 25

    220 pank.idv.tw ESMTP Postfix
    ehlo 0
    250-pank.idv.tw
    250-PIPELINING
    250-SIZE 10485760
    250-VRFY
    250-ETRN
    250-STARTTLS
    250-AUTH LOGIN PLAIN DIGEST-MD5
    250-AUTH=LOGIN PLAIN DIGEST-MD5
    250-XVERP
    250 8BITMIME

    看起來正常, 再測試認證, 使用者名稱 pank, 密碼 test
    取得編碼後字串 printf 'pank\0pank\0test' | mmencode
    得到 cGFuawBwYW5rAHRlc3Q=
    (使用這個方法測試時, 用數字 0-7 開頭的密碼會認證錯誤, 原因不明.
    而事實上, 使用上述密碼在 smtp auth 上是沒問題的)

    telnet localhost 25

    220 pank.org ESMTP Postfix
    ehlo 0
    250-pank.org
    250-PIPELINING
    250-SIZE 10485760
    250-VRFY
    250-ETRN
    250-STARTTLS
    250-AUTH LOGIN PLAIN DIGEST-MD5
    250-AUTH=LOGIN PLAIN DIGEST-MD5
    250-XVERP
    250 8BITMIME
    auth plain cGFuawBwYW5rAHRlc3Q=
    235 Authentication successful

    已正常運作

    若是 failed, 就看 log 查原因

    ref. Postfix/TLS - A TLS extension for POSTFIX

    FAQ
    Q: make postfix failed, db* not found
    A: install libdb* and libdb*devel (e.g. libdb3.3-3.3.11-17mdk.i586.rpm, libdb3.3-devel-3.3.11-17mdk.i586.rpm)
    Q: warning: SASL authentication failure: cannot connect to saslauthd server: No such file or directory
    A: 1. 可能用到原本 rpm 的 libsasl2, 需先移除, 然後 ln -fs /usr/local/lib/libsasl2.so.2.0.20 /usr/lib/libsasl2.so.2
      2. smtpd run chrooted, There are two ways to fix this:
        1. Unset the 'chroot' flag in master.cf for smtpd on port 25
        2. Use a Linux bind mount to make the socket accessible within the chroot.

    Posted by pank at 04:13 PM | Comments (2)

    December 31, 2004

    PPPoE 原來可以這樣

    IP 跟 Gateway 完全是不同網段

    ppp0 Link encap:Point-Point Protocol
    inet addr:218.166.248.109 P-t-P:61.228.96.254 Mask:255.255.255.255
    UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1492 Metric:1
    RX packets:14794 errors:0 dropped:0 overruns:0 frame:0
    TX packets:14745 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:3
    RX bytes:1544763 (1.4 MiB) TX bytes:740369 (723.0 KiB)

    # route -n
    Kernel IP routing table
    Destination Gateway Genmask Flags Metric Ref Use Iface
    61.228.96.254 0.0.0.0 255.255.255.255 UH 0 0 0 ppp0
    192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
    10.18.43.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
    127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo
    0.0.0.0 61.228.96.254 0.0.0.0 UG 0 0 0 ppp0

    Posted by pank at 04:25 PM | Comments (0)

    December 30, 2004

    BASH [ expr ] -a -o

    expr1 -a expr2
    True if both expr1 and expr2 are true.
    expr1 -o expr2
    True if either expr1 or expr2 is true.

    -a (AND) operation first, then -o (OR) operation

    e.g.
    there're 3 files, a, c, d
    #!/bin/sh
    [ -f a -o -f b -o -f c -o -f d ] && echo 0
    [ -f a -o -f b -o -f c -a -f d ] && echo 1
    [ -f a -o -f b -a -f c -o -f d ] && echo 2
    [ -f a -o -f b -a -f c -a -f d ] && echo 3
    [ -f a -a -f b -o -f c -o -f d ] && echo 4
    [ -f a -a -f b -o -f c -a -f d ] && echo 5
    [ -f a -a -f b -a -f c -o -f d ] && echo 6
    [ -f a -a -f b -a -f c -a -f d ] && echo 7
    result is...

    0
    1
    2
    3
    4
    5
    6

    Posted by pank at 11:41 PM | Comments (0)

    December 29, 2004

    Allow auth in Windows XP SP2

    連某些服務會頓一下嗎? 可能該服務需要用到 auth (ident)
    例如 ProFTPD
    有這種狀況的話, 把 auth 加到防火牆例外可以加快連線速度
    控制台/防火牆/例外/新增連接埠
    名稱: auth
    連接埠編號: 113
    TCP

    Posted by pank at 06:49 PM | Comments (0)

    December 24, 2004

    Using GRUB to load Windows CE but failed

    昨天嘗試要使用 GRUB 來 load Windows CE, 結果失敗

    一般 Windows CE 的檔案如下
    -r-xr--r-- 1 root root 16384 4月 29 2004 bldr*
    drwxr--r-- 2 root root 2048 6月 1 2001 bmp/
    drwxr--r-- 3 root root 2048 3月 30 2005 Documents and Settings/
    -rwxr--r-- 1 root root 72491 3月 9 2004 eboot.bin*
    -r-xr--r-- 1 root root 18805259 10月 28 20:51 nk.bin*
    -r-xr--r-- 1 root root 308316 10月 28 20:55 splash.bin*

    一張可開機的 Windows CE CF 卡使用 dd 的方式 copy 到另一張不同的 CF 卡, 是無法開機的.
    Windows CE 的 boot loader 似乎是讀固定的位置
    改用 GRUB 的話
    使用 load DOS 的方法, 失敗
    使用 load 整個 image 的方法, 失敗

    ref.
    http://www.gnu.org/software/grub/manual/grub.html
    http://syslinux.zytor.com/memdisk.php

    Posted by pank at 10:13 AM | Comments (0)

    December 23, 2004

    An easy way to get rid of MT comment spam

    Hosts Disable Movable Type as Comment Spam Slows Servers
    This article give me a hint.
    MT comment spam bot target mt-comments.cgi to post comment spam,
    Why not rename it!
    1. mv mt-comments.cgi mt-comments_something.cgi
    2. edit mt.cfg, uncomment CommentScript, and fill with mt-comments_something.cgi
    3. rebuild all pages

    After few days test, it works! (see 404 log)
    This way get rid of most comment spam.
    Some bot reference form action=filename, This trick will fail.

    Posted by pank at 02:27 AM | Comments (4)

    December 20, 2004

    Show DirectX Info

    run dxdiag

    Posted by pank at 10:16 AM | Comments (0)

    December 17, 2004

    螢火飛字型 - 內嵌點陣字的文鼎新宋字型

    由於微軟的細明體有字型碎裂及字距的問題
    可以改用螢火飛所釋出內嵌點陣字的文鼎新宋字型

    wget http://firefly.idv.tw/apt/firefly-font/fireflysung-1.3.0.tar.gz
    or
    wget http://www.study-area.org/apt/firefly-font/fireflysung-1.3.0.tar.gz
    #下載內嵌點陣字的文鼎新宋字型

    tar zxf fireflysung-1.3.0.tar.gz
    #解壓縮

    ttfm.sh --add fireflysung-1.3.0/fireflysung.ttf
    # 用 ttfm 工具安裝
    fc-cache -f -v (Build font information cache)

    裝完重新啟動 X, 把字型設為 AR PL New Sung

    ref. 螢火飛相關套件安裝

    Posted by pank at 05:48 PM | Comments (0)

    December 16, 2004

    77 IP Info

    http://77bbs.com/ip/

    I wrote a small program to show your IP info and location with IP to Country mapping database and my bbs domain_name_query file.

    Posted by pank at 12:45 AM | Comments (0)

    December 15, 2004

    Bash Parameter Expansion

    ${parameter:-word} Use Default Values.
    e.g.
    echo ${A:-1}
    A=2
    echo ${A:-1}
    result is
    1
    2

    ${parameter:=word} Assign Default Values.
    e.g.
    echo ${A:=1}
    echo $A
    A=2
    echo ${A:=1}
    result is
    1
    1
    2

    ${parameter:?word} Display Error if Null or Unset.
    equals [ -z $parameter ] && echo word && exit 1

    ${parameter:+word} Use Alternate Value.
    equals [ -z $parameter ] || parameter=word
    e.g.
    echo ${A:+1}
    A=2
    echo ${A:+1}
    result is

    1

    ${parameter:offset}
    ${parameter:offset:length}
    e.g.
    A=string
    echo ${A:1}
    echo ${A:2:3}
    result is
    tring
    rin

    ${!prefix*} Expands to the names of variables whose names begin with prefix
    e.g.
    A=test1
    A1=test2
    A2=test3
    B=test4
    echo ${!A*}
    result is
    A A1 A2

    ${#parameter} The length in characters of the value of parameter
    e.g.
    A=string
    echo ${#A}
    result is
    6

    ${parameter#word} Head cut
    ${parameter##word}
    e.g.
    A=file.tar.gz
    echo ${A#*.}
    echo ${A##*.}
    result is
    tar.gz
    gz

    ${parameter%word} Tail cut
    ${parameter%%word}
    e.g.
    A=file.tar.gz
    echo ${A%.*}
    echo ${A%%.*}
    result is
    file.tar
    file

    ${parameter/pattern/string} Pattern replacing
    ${parameter//pattern/string}
    e.g.
    A=linux_linux
    echo ${A/linux/freebsd}
    echo ${A//linux/freebsd}
    result is
    freebsd_linux
    freebsd_freebsd

    ref. man bash, / Parameter Expansion

    ${parameter:-word}
    Use Default Values. If parameter is unset or null, the expan-
    sion of word is substituted. Otherwise, the value of parameter
    is substituted.
    ${parameter:=word}
    Assign Default Values. If parameter is unset or null, the
    expansion of word is assigned to parameter. The value of param-
    eter is then substituted. Positional parameters and special
    parameters may not be assigned to in this way.
    ${parameter:?word}
    Display Error if Null or Unset. If parameter is null or unset,
    the expansion of word (or a message to that effect if word is
    not present) is written to the standard error and the shell, if
    it is not interactive, exits. Otherwise, the value of parameter
    is substituted.
    ${parameter:+word}
    Use Alternate Value. If parameter is null or unset, nothing is
    substituted, otherwise the expansion of word is substituted.
    ${parameter:offset}
    ${parameter:offset:length}
    Substring Expansion. Expands to up to length characters of
    parameter starting at the character specified by offset. If
    length is omitted, expands to the substring of parameter start-
    ing at the character specified by offset. length and offset are
    arithmetic expressions (see ARITHMETIC EVALUATION below).
    length must evaluate to a number greater than or equal to zero.
    If offset evaluates to a number less than zero, the value is
    used as an offset from the end of the value of parameter. If
    parameter is @, the result is length positional parameters
    beginning at offset. If parameter is an array name indexed by @
    or *, the result is the length members of the array beginning
    with ${parameter[offset]}. Substring indexing is zero-based
    unless the positional parameters are used, in which case the
    indexing starts at 1.

    ${!prefix*}
    Expands to the names of variables whose names begin with prefix,
    separated by the first character of the IFS special variable.

    ${#parameter}
    The length in characters of the value of parameter is substi-
    tuted. If parameter is * or @, the value substituted is the
    number of positional parameters. If parameter is an array name
    subscripted by * or @, the value substituted is the number of
    elements in the array.

    ${parameter#word}
    ${parameter##word}
    The word is expanded to produce a pattern just as in pathname
    expansion. If the pattern matches the beginning of the value of
    parameter, then the result of the expansion is the expanded
    value of parameter with the shortest matching pattern (the ``#''
    case) or the longest matching pattern (the ``##'' case) deleted.
    If parameter is @ or *, the pattern removal operation is applied
    to each positional parameter in turn, and the expansion is the
    resultant list. If parameter is an array variable subscripted
    with @ or *, the pattern removal operation is applied to each
    member of the array in turn, and the expansion is the resultant
    list.

    ${parameter%word}
    ${parameter%%word}
    The word is expanded to produce a pattern just as in pathname
    expansion. If the pattern matches a trailing portion of the
    expanded value of parameter, then the result of the expansion is
    the expanded value of parameter with the shortest matching pat-
    tern (the ``%'' case) or the longest matching pattern (the
    ``%%'' case) deleted. If parameter is @ or *, the pattern
    removal operation is applied to each positional parameter in
    turn, and the expansion is the resultant list. If parameter is
    an array variable subscripted with @ or *, the pattern removal
    operation is applied to each member of the array in turn, and
    the expansion is the resultant list.

    ${parameter/pattern/string}
    ${parameter//pattern/string}
    The pattern is expanded to produce a pattern just as in pathname
    expansion. Parameter is expanded and the longest match of pat-
    tern against its value is replaced with string. In the first
    form, only the first match is replaced. The second form causes
    all matches of pattern to be replaced with string. If pattern
    begins with #, it must match at the beginning of the expanded
    value of parameter. If pattern begins with %, it must match at
    the end of the expanded value of parameter. If string is null,
    matches of pattern are deleted and the / following pattern may
    be omitted. If parameter is @ or *, the substitution operation
    is applied to each positional parameter in turn, and the expan-
    sion is the resultant list. If parameter is an array variable
    subscripted with @ or *, the substitution operation is applied
    to each member of the array in turn, and the expansion is the
    resultant list.

    Posted by pank at 11:53 PM | Comments (0)

    December 14, 2004

    Get Windows computer name by IP

    Linux: nmblookup -A IP
    e.g.
    # nmblookup -A 192.168.1.238
    Looking up status of 192.168.1.238
    WIN2003 <00> - B
    WIN2003 <20> - B
    WORKGROUP <00> - B
    WORKGROUP <1e> - B

    Windows: ping -a IP

    Posted by pank at 10:37 AM | Comments (0)

    the ip before proxy

    echo $HTTP_X_FORWARDED_FOR

    Posted by pank at 09:47 AM | Comments (0)

    December 10, 2004

    Configure MySQL privilege for remote access

    GRANT ALL PRIVILEGES ON *.* TO YourUserName@YourPublicIP IDENTIFIED BY "YourPassword";

    YourUserName is the username that you would like to create.
    YourPublicIP is the public IP address of your PC (can be IP range or use % to allow any host).
    ("211.72.20.%" = 211.72.20.0/24, quote IP range if with %)
    YourPassword - You can setup a password for your account.

    Don't forget flush privileges;

    e.g.
    mysql> grant all privileges on *.* to pank@"211.72.20.%" identified by "1111";
    Query OK, 0 rows affected (0.01 sec)

    mysql> flush privileges;
    Query OK, 0 rows affected (0.01 sec)

    Posted by pank at 04:24 PM | Comments (0)

    December 09, 2004

    Gallary and gettex

    只要在 make php 時, enable gettex support
    ./configure --with-mysql --with-apxs=/usr/local/apache/bin/apxs \
    --enable-module=so --with-config-file-path=/usr/local/etc \
    --libexecdir=/usr/local/apache/libexec --with-gd --with-zlib --with-jpeg-dir --with-freetype-dir --with-gettext
    使用 IE 看 Gallery, 相簿的 counter 都變成 1, 怪怪
    用 Firefox 倒是正常

    Posted by pank at 11:11 PM | Comments (1)

    rdesktop: ERROR: recv: Connection reset by peer

    "ERROR: recv: Connection reset by peer"
    (return value 141)

    This error occured because license problem, maybe expired.

    workaround: change another hostname by -n parameter

    PS. If server is windows 2003, return value 0, no such error message

    Posted by pank at 01:13 AM | Comments (1)

    December 08, 2004

    iptables DNAT port mapping test

    環境: 內部的一台機器 listen tcp port 135,139 供測試
    測試工具: nmap, 設好 rule 後作多次 port scan 動作, 觀查 open port

    135-139 對 135-139 (一對一 mapping)
    結果: port 135,139 open

    235-239 對 135-139 (一對一 shift mapping)
    結果: 動態 port 對應
    (在 235-239 中動態分配 2 個 port 分別 mapping 到 135,139)

    100-150 對 135-139 (多對少 mapping, --dport 在 listen port 範圍內)
    結果: 動態 port 對應, 135 對 135, 139 對 139 的機率很高

    150-200 對 135-139 (多對少 mapping, --dport 不在 listen port 範圍內)
    結果: 動態 port 對應

    130-140 對 120-150 (少對多 mapping, --dport 在 listen port 範圍內)
    結果: 固定 135,139 open

    140-150 對 120-140 (少對多 mapping, --dport 不在 listen port 範圍內)
    結果: 動態 port 對應
    有掃到 0 個 port, 1 個 port , 2 個 port 均有出現
    因為 10 個 port 無法一一 mapping 到 20 個 port

    結論: 當 port 無法直接 mapping 時, 會動態 mapping

    Posted by pank at 09:03 PM | Comments (0)

    MSN's Ad Server

    rad.msn.com 是 MSN 的存放廣告的 Server

    由 Ethereal 觀察, MSN Messenger 會送出像如下的 URL
    http://rad.msn.com/ADSAdClient31.dll?GetAd?PG=IMSTWN?SC=HF?ID=000201000251651a

    Posted by pank at 08:59 PM | Comments (1)

    December 06, 2004

    If MSN 7.0 does'nt have writing feature...

    Just install Microsoft Windows Journal Viewer

    Posted by pank at 11:56 PM | Comments (0)

    December 04, 2004

    77BBS URL

    寫了一個轉址服務 http://url.77bbs.com/
    此服務類似 http://tinyurl.com/
    不同點在於 77BBS URL 使用 sub domain 的方式做處理

  • 注意事項
    77BBS URL 使用兩碼的英數字排列組合循環使用(約有1200組), 此網址有時效性,
    網址的時效為一個循環, 直到下次有使用者佔用同一個名稱為止
    舉個例子, 假設平均每天有 40 個人使用 77BBS URL, 網址的時效性約為一個月

    Posted by pank at 09:21 PM | Comments (0)
  • December 01, 2004

    rbash - RESTRICTED SHELL

    If you want to restrict someone's shell access, use rbash.

    chsh -s /bin/rbash username

    ref. man bash

    RESTRICTED SHELL

    If bash is started with the name rbash, or the -r option is supplied at
    invocation, the shell becomes restricted. A restricted shell is used
    to set up an environment more controlled than the standard shell. It
    behaves identically to bash with the exception that the following are
    disallowed or not performed:

  • changing directories with cd
  • setting or unsetting the values of SHELL, PATH, ENV, or BASH_ENV
  • specifying command names containing /
  • specifying a file name containing a / as an argument to the .
    builtin command
  • Specifying a filename containing a slash as an argument to the
    -p option to the hash builtin command
  • importing function definitions from the shell environment at
    startup
  • parsing the value of SHELLOPTS from the shell environment at
    startup
  • redirecting output using the >, >|, <>, >&, &>, and >>
    redirection operators
  • using the exec builtin command to replace the shell with another
    command
  • adding or deleting builtin commands with the -f and -d options
    to the enable builtin command
  • Using the enable builtin command to enable disabled shell
    builtins
  • specifying the -p option to the command builtin command
  • turning off restricted mode with set +r or set +o restricted.

    These restrictions are enforced after any startup files are read.
    When a command that is found to be a shell script is executed (see COM-
    MAND EXECUTION above), rbash turns off any restrictions in the shell
    spawned to execute the script.

    Posted by pank at 12:27 AM | Comments (0)
  • November 30, 2004

    Gaim buddy icon

    Gaim 的個人大頭貼已在 1.0.1 版支援, 只是設定的地方不明顯, 到今天才發現!
    工具 / 帳號清單 / 選擇MSN帳號 / 修改 / 好友圖示

    ref. Gaim ChangeLog

    Posted by pank at 04:49 PM | Comments (3)

    crontab run rsync: Host key verification failed

    在 FreeBSD 下用 root 直接跑下面的指令(已和 host 建好 authorized_keys)
    rsync -avz -e ssh host:/remotedir /localdir
    正常

    放到 crontab 使用 root 執行, 卻會出現如下錯誤
    WARNING: RSA key found for host somehost.com
    in /root/.ssh/known_hosts:16
    RSA key fingerprint 12:34:56:78:90:92:02:5d:e5:bb:9b:c2:0e:cb:00:ff.
    Host key verification failed.
    rsync: connection unexpectedly closed (0 bytes read so far)
    rsync error: error in rsync protocol data stream (code 12) at io.c(348)

    查了許久, 終於找到答案: console 下用的 ssh 和 crontab 下用的 ssh 不一樣

    由於我有另外裝 OpenSSH
    在 console 下 /usr/local/bin 的 path 排前面, 使用 /usr/local/bin
    crontab 下 /usr/local/bin 的 path 排前面, 使用 /usr/bin
    在我的環境下
    freebsd 內建的 /usr/bin/ssh 會使用 DSA key fingerprint
    OpenSSH 會使用 /usr/local/bin/ssh 會使用 RSA key fingerprint
    所以才會產生 Host key verification failed. 的問題

    Posted by pank at 02:39 PM | Comments (0)

    November 29, 2004

    awstats

    許久之前有用過這套, 今天又裝來玩玩, 功能已經變得滿強的了, 還有多國語系
    安裝也很容易.
    參照 安裝說明 , 手動或用 awstats_configure.pl 改好, 再把更新的指令加入 crontab 即可

    pank.org awstats

    Posted by pank at 11:59 PM | Comments (0)

    Blog comment spam fighting

    這兩個 MT plugin 不錯
    bayesian 用 bayesian 的方式訓練, 使 MT 能識別 comment spam
    scode 在 post comment 時, 會出現一張被干擾的數字圖片, 必須輸入輸入裡面的數字才能 post

    剛裝了 bayesian plugin, 步驟如下面的 script
    最後再用 http://your.host/path_to_mt/bayesian-init-db.cgi 設定一下即可, 設完後刪除 bayesian-init-db.cgi
    使用 http://your.blog.com/path_to_mt/mt-bayesian.cgi 來 train MT

    #!/bin/sh
    MTDIR=/home/pank/public_html/mt
    cp mt-bayesian.cgi bayesian-init-db.cgi cleandb* $MTDIR
    cp mt-bayesian.pl $MTDIR/plugins
    cp Bayesian.pm BayesianBlog.pm BayesianToken.pm $MTDIR/lib/MT
    cp BayesianTrain.pm $MTDIR/lib/MT/App
    cp bayesian_menu.tmpl bayesian_list_blog.tmpl bayesian_list_comments.tmpl bayesian_list_pings.tmpl $MTDIR/tmpl/cms

    ref.
    http://mt-plugins.org/

    Posted by pank at 11:44 PM | Comments (0)

    November 26, 2004

    sed edit files in place

    sed -i s/aaa/bbb/ file
    =
    perl -pi -e s/aaa/bbb file

    backup as .bak
    sed -i.bak s/aaa/bbb/ file

    PS.
    -i [suffix] is wrong under Linux (space not allowed between -i and [suffix])
    sed in Solaris not support this parameter

    Posted by pank at 03:30 PM | Comments (1)

    samba 3.x charset

    samba 3.x default charset=utf-8
    add following settings to smb.conf to change charset to big5
    display charset = big5
    unix charset = big5
    dos charset = big5

    Posted by pank at 01:50 AM | Comments (0)

    November 25, 2004

    man page to ps or pdf file

    man -t bash > bash.ps
    man -t bash | ps2pdf - bash.pdf

    ref.
    -t Use /usr/bin/groff -Tps -mandoc -c to format the manual page,
    passing the output to stdout. The output from /usr/bin/groff
    -Tps -mandoc -c may need to be passed through some filter or
    another before being printed.

    Posted by pank at 05:03 PM | Comments (0)

    PXE Server

    只要使用 dhcp server 及 tftp server, 就可以架 PXE Server
    環境: pxelinux.0(from the SYSLINUX distribution), kernel, initrd file, image 等檔案放在 /tftpboot, tftp server 目錄指向這裡

    使用 dhcp 3.0, dhcp.conf 範例

    ddns-update-style none;
    default-lease-time 86400;
    max-lease-time 86400;

    subnet 192.168.1.0 netmask 255.255.255.0 {
    range 192.168.1.11 192.168.1.50;
    filename "pxelinux.0";
    next-server 192.168.1.233;
    option time-offset 3600;
    option routers 192.168.1.1;
    option domain-name-servers 192.168.1.253,168.95.1.1;
    option domain-name "i";
    }


    若沒有指定 next-server, 會以 option routers 當作 tftp server

    使用 udhcp 0.98, udhcpd.conf 範例

    start 10.1.1.10
    end 10.1.10.254
    interface eth0
    lease_file /var/dhcpd/udhcpd.leases
    option dns 168.95.1.1 139.175.55.244
    option subnet 255.255.0.0
    option router 10.1.1.1
    option lease 600
    siaddr 10.1.1.1
    boot_file pxelinux.0

    使用 inetd, /etc/ined.conf 範例

    tftp dgram tcp wait root /usr/sbin/tftpd tftpd -s /tftpboot

    使用 xinetd, /etc/xinetd.d/tftp 範例

    service tftp
    {
    disable = no
    socket_type = dgram
    protocol = udp
    wait = yes
    user = root
    server = /usr/sbin/in.tftpd
    server_args = -s /tftpboot
    per_source = 11
    cps = 100 2
    flags = IPv4
    }

    /tftpboot/pxelinux.cfg/default 範例

    default dos
    timeout 50
    prompt 2

    label linux
    kernel systemk
    append initrd=systemz ramdisk_size=65535 root=/dev/ram0

    label dos
    kernel memdisk
    append initrd=psetup.img

    ref.
    PXE Spec
    PXE daemon
    http://phorum.study-area.org/viewtopic.php?t=19192

    Posted by pank at 11:31 AM | Comments (2)

    November 19, 2004

    Replace files in msi package

    我不曉得有什麼好用的工具可以做到類似的動作,
    以下的例子算是土法煉鋼 (以 MSN 7.0.0425 為例)

    執行 Install_MSN_Messenger.exe, 在 %TEMP% 目錄可找到 msi 檔,
    copy 出來成 msn7.0.0425.msi

    然後用 msi2xml 轉換成 xml 檔

    msi2xml msn7.0.0425.msi (在 windows 下執行)
    會產生 msn7.0.0425.xml

    傳到 linux 下, 使用 base64 來解檔

    MSN 的檔案大都存在 MsgrCore.cab 裡

    tail +$((`grep -n MsgrCore.cab msn7.0.0425.xml | tail -1 | cut -d: -f1`+2)) msn7.0.0425.xml > MsgrCore.cab.b64
    抽出 MsgrCore.cab 的 base64 編碼部分, 存到 MsgrCore.cab.b64

    base64 -d MsgrCore.cab.b64 MsgrCore.cab
    將 MsgrCore.cab 解出

    找一套能處理 cab 的壓縮程式, 例如 zipzag,
    將修正過的 msnmsgr.exe 及中文化的 msgslang.dll (由 March Fun 製作),
    覆蓋裡面的
    msnmsgrexe.ADEB440D_7847_4F65_80BD_899870ED2EC9
    msgslangdll.ADEB440D_7847_4F65_80BD_899870ED2EC9
    (不清楚為什麼是這種檔名)

    接下來要把 msn7.0.0425.xml 後半的 MsgrCore.cab md5 及 base64 部分, 用新的取代
    XML=msn7.0.0425.xml
    NEWXML=msn7.0.0425cht.xml
    CAB=MsgrCore.cab
    NEWCAB=new.cab
    N=`grep -n $CAB $XML | tail -1 | cut -d: -f1`
    head -$N $XML > $NEWXML
    let N++
    OLDMD5=`sed -n "$N"p $XML | cut -d\" -f4`
    NEWMD5=`md5sum $NEWCAB | cut -d' ' -f1`
    sed -n "$N"p $XML | sed s/$OLDMD5/$NEWMD5/ >> $NEWXML
    mimencode $NEWCAB >> $NEWXML
    tail -4 $XML >> $NEWXML

    上面這段 script 會產生新的 xml 檔, 再回到 windows 用 xml2msi 轉
    xml2msi msn7.0.0425cht.xml

    最後產生 msn7.0.0425cht.msi, 直接安裝就是中文版!

    簡單地說, 先用 msi2xml 轉成 xml 檔, 再把裡面檔案的 md5 及 base64 編碼部分置換,
    再用 xml2msi, 轉回 msi 檔

    Posted by pank at 12:05 AM | Comments (2)

    November 18, 2004

    77delegate

    http://ftp.77bbs.com/bbs/77delegate.exe

  • 程式功能: 提供 TCP relay 方式連線至 77bbs.com (我架的 BBS)
  • 使用時機: A 電腦無法連到 77, 但是可以連到 B 電腦
    B 電腦可以連到 77, 在 B 電腦裝 77delegate,
    A 電腦就可以 telnet B 電腦, 透過 B 電腦連上 77
  • 安裝: 直接執行即可, 安裝後會成為系統的一個服務, 若要停止該服務,
    可以到 控制台/系統管理工具/服務 裡面設定
  • 注意事項: 若有使用防火牆, 需將 tcp port 23 打開或設為例外連接埠
  • 進階用法: 若要修改安裝參數, 請用 WinRAR 開啟 77delegate.exe,
    修改 註解 裡面的 Setup= 參數
    預設是 Setup=setup.bat 23 77bbs.com 23
    表示使用 port 23, 對應到 77bbs.com port 23
    例如: 某公司網路限制嚴苛, 只能看網頁, 此時找一台有 public IP 的電腦,
    (假設 IP 是 100.1.1.1)
    參數改成 Setup=setup.bat 80 77bbs.com 23, Save 後, 再安裝
    即可使用 telnet 100.1.1.1 80 的方式連上 77

    77delegate 是使用 delegate 8.10.2版, 再加以包裝設定而成

    Posted by pank at 12:58 AM | Comments (0)
  • November 11, 2004

    WinXP 使用 shutdown 預約關機

    有時利用晚上時間下載東西, 又不想讓電腦開整晚, 可以用 shutdown 來預約關機

    -i 顯示 GUI 介面,必須是第一個選項
    -l 登出 (不能和 -m 選項一起使用)
    -s 電腦關機
    -r 關機並重新啟動電腦
    -a 中止系統關機
    -m \\\\computername 從遠端進行關機/重新啟動/中止
    -t xx 將關機等候時間設定成 xx 秒
    -c "comment" 關機註解 (最多 127 個字元)
    -f 強制關閉執行中的應用程式,不顯示警告
    -d [u][p]:xx:yy 關機原因代碼

    範例:
    shutdown -s -t 3600 -f (一小時鐘後關機)
    shutdown -a (取消關機)

    Posted by pank at 01:27 AM | Comments (0)

    November 10, 2004

    ddcxinfo

    ddcxinfo 或 ddcxinfos 這個工具可以列出顯示卡的一些 X 參數資訊, ModeLine 等

    KNOPPIX 裡有功能類似的程式, 參數更完整
    # ddcxinfo
    syntax: ddcxinfo [-hsync] [-vsync] [-modelines]
    # ddcxinfo-knoppix
    syntax: ddcxinfo-knoppix [-hsync] [-vsync] [-modelines] [-monitor] [-modes] [-firstmode 1024x768]

    Posted by pank at 09:49 PM | Comments (0)

    GNUPG

    GnuPG is a complete and free replacement for PGP

    一開始先要造公/私金鑰
    gpg --gen-key

    對文件加簽
    gpg --clearsign file.txt
    會產生 file.txt.asc
    範例: (Mandrake Linux Community ISO MD5)
    -----BEGIN PGP SIGNED MESSAGE-----
    Hash: SHA1

    1ea7433e24eb6a3d9491128708a8e0e3 Mandrakelinux-10.1-Community-Download-CD1.i586.iso
    5b66d05d03ed2830ce6d09a7e4930b24 Mandrakelinux-10.1-Community-Download-CD2.i586.iso
    4815820ca0ff6a5c91525363889bc7bb Mandrakelinux-10.1-Community-Download-CD3.i586.iso
    d41d8cd98f00b204e9800998ecf8427e Mandrakelinux-10.1-Community-Download.md5
    9bbc6e07fcfc75dfef935e8673d3a5b1 Mandrakelinux-10.1-Community-Download.md5.asc
    -----BEGIN PGP SIGNATURE-----
    Version: GnuPG v1.2.3 (GNU/Linux)

    iD8DBQFBUaXK54mK4HB3H/MRAgwWAKC1UYRdMR1XDt19/tk850KDnRENKQCeO1k4
    hjWxIi4FZoc5h8df4Z4xKEk=
    =RFQ2
    -----END PGP SIGNATURE-----

    檢查已加簽文件
    gpg --verify test.asc
    gpg: 由 西元2004年11月10日 (週三) 10時19分38秒 CST 建立的簽章,使用 DSA 金鑰 ID A8C4CEBC
    gpg: 完好的簽章來自於 "Henry Pan "

    Posted by pank at 10:36 AM | Comments (0)

    November 08, 2004

    isc dhcp fixed-address

    ISC DHCPD 的 IP pool (range) 並不會自動排除已 fixed-address 的 IP
    舉個例子:
    subnet 192.168.0.0 netmask 255.255.255.0 {
    range 192.168.0.10 192.168.0.200;
    option routers 192.168.0.1;
    option domain-name-servers 168.95.1.1,168.95.192.1;
    }
    host test { hardware ethernet 00:90:dc:02:45:88; fixed-address 192.168.0.10; }
    這就是有問題的設定, 有可能有其他電腦會佔了 192.168.0.10 這個 IP,
    而 00:90:dc:02:45:88 這台電腦就無法取得 IP.

    正確的做法應該要把固定 IP 區段畫開,
    如:
    192.168.0.10 ~ 192.168.0.20 為固定分配 IP
    192.168.0.21 ~ 192.168.0.200 為動態分配 IP
    subnet 192.168.0.0 netmask 255.255.255.0 {
    range 192.168.0.21 192.168.0.200;
    option routers 192.168.0.1;
    option domain-name-servers 168.95.1.1,168.95.192.1;
    }
    host test { hardware ethernet 00:90:dc:02:45:88; fixed-address 192.168.0.10; }

    Posted by pank at 03:03 PM | Comments (0)

    November 05, 2004

    bash substitution

    #!/bin/bash
    STRING=aaa.bbb
    echo ${STRING/bbb/ccc}

    result is aaa.ccc

    Posted by pank at 12:05 AM | Comments (0)

    November 03, 2004

    Workaround

    這個字在大部分的字典都查不到, 但是在技術文件滿常見的.
    我是查了 Google 網上論壇 workaround group:tw.bbs.lang.english 得到結果, 整理如下:

    中文解釋

  • 雖不能根本解決, 但能避開問題的替代方法。
  • 避免問題或困難而旁道而行達到目的。
  • 權宜之計; 應急之策。
  • 原本是電腦術語, 相對於「Fix」而言. 當一個程式有了問題, 找出問題所在然後直接解決它叫做「Fix」; 當問題始終無法解決, 於是想個方法忽略這個問題並使這個問題不致於影響你要用這程式達到的目的, 這樣的方法就叫 Workaround。

    英文解釋

  • workaround means a manner of bypassing a problem caused by a bug without correcting the bug itself.
  • workaround is similar to "stopgap solution". If there is a problem, a "workaround" doesn't eliminate the problem, but it does bypass the problem.

    ref.
    http://en.wikipedia.org/wiki/Workaround
    http://whatis.techtarget.com/definition/0,,sid9_gci868091,00.html

    2006-07-17 Update: 把上述中文解釋加到中文維基百科

    Posted by pank at 12:20 AM | Comments (10)
  • November 01, 2004

    Resize Image

    Use ImageMagick (this way keep EXIF data)

    convert DSCN0001.JPG -resize 800x600 small.jpg

    Use netpbm (this way lose EXIF data)

    jpegtopnm DSCN0001.JPG | pnmscale -width=800 -height=600 | pnmtojpeg > small.jpg

    ref. EXIF

    Posted by pank at 09:48 PM | Comments (0)

    October 30, 2004

    PKBrowser

    PKBrowser 是個簡單的 IE base 的瀏覽器, 方便網頁設計者不用切換解析度就能觀看在不同解析度的效果, URL 會記憶.
    有三種解析度版本, PureBasic 寫的, 附 Source
    640x480版
    800x600版
    1024x768版

    PS. P stand for Pank, K stand for Kelly :)

    Posted by pank at 02:31 AM | Comments (0)

    October 21, 2004

    Making a patch file

    diff -uNr file.old file.new > file.patch

    Posted by pank at 03:17 PM | Comments (0)

    Crusoe Transmeta CMS Bug

    http://www.cs.auc.dk/~fleury/bug_cms/
    這個問題是造成日本客戶 F1 問題的原因, 這是怎麼也料想不到的

    回來後陸續作了一些測試, 都沒有找到主要的原因, 後來我根據 Error Message 找了很多相關討論, 終於找到這篇 report

    簡單地說這個問題是因為 Transmeta CMS Bug 所致
    有兩個解決方式
    1. 更新 CMS 至 4.4.x 以上
    2. 軟體修正, X window 時不使用一些最佳化的參數, 避免去觸發這個 bug

    更新 CMS 有困難, 所以需採用軟體修正方式
    更新 X 後, 經測試證實, 的確是這個問題

    ref.
    http://lists.debian.org/debian-x/2004/02/msg01000.html
    http://lists.debian.org/debian-x/2004/07/msg00915.html
    http://lkml.org/lkml/2004/8/10/80

    Posted by pank at 11:59 AM | Comments (0)

    October 19, 2004

    北京旅遊雜記

    10/11(一)
    五人大陸團成員: 黃同學、胖子學長、吳Sir、Kelly跟我
    搭下午二點多的華航班機, Delay 了約半個小時,
    華航整體看來比長榮的差, 這次所搭的飛機沒有個人娛樂系統, 長榮的空中小姐比較漂亮,
    到香港機場轉機, 香港機場的免稅商店街滿大的, 果然是購物天堂.
    乘坐中國國際航空公司的班機前往北京, 老外並不多, 大都是東方人.
    航程大約 3:30. 到達北京首都機場, 很多人要通關, 花了 20 分鐘才通關,
    有一些司機在拉客, 喊價 150RMB (黃同學說和打車差不多, 就搭了),
    分乘兩台車到下榻的東交民巷飯店, 換了 300USD + 7000円 (我去日本用剩的) 的人民幣,
    =2988.18RMB.
    東交民巷飯店是家四星級飯店, 離天安門很近, 步行約十分鐘.
    到王府井小胡同吃宵夜, 此時大部分的店家都關了,
    吃完後搭黃包車(沒想到現在還有人力拉車)回飯店(10RMB).

    10/12(二)
    今天的行程是故宮(紫禁城).
    先去買了個中國移動的神州卡(100RMB)+50元儲值, 方便聯絡.
    步行至天安門, 天安門廣場外的遊客超乎想像地多,
    大概和尖峰時段的台北車站差不多, 旁邊的毛澤東紀念館也是人超多,
    排隊延伸了約五百公尺, 聽說每天都是這麼多人.
    故宮的門票 60RMB, 算是貴的, 故宮和預期差不多, 中國宮殿建築代表,
    可惜大部分的殿都無法進入參觀, 或是進去還要購票
    (大陸的景區都是這樣, 門票進去後, 還要另外購票才能看到全部的東西)
    裡面有個珍寶館, 門票 10RMB, 還滿值得進去的, 包含了故宮右半邊大部分的東西,
    還有一些展. 花了三小時才走馬看花看完故宮, 要細看的話大概要一整天的時間.
    在故宮後門附近的一家餐館吃飯, 這家店並不便宜, 吃完飯後打車到秀水街,
    這裡真是個購物的有趣地方, 是一個除了風景名勝外的一個必到之處,
    若您的議價功能夠高的話, 可以買到很便宜的東西,
    有仿名牌包包、服飾、配件、藝品等, 根據當天的經驗,
    成交價大概是牌價的 2-3 折左右, 可以從 2 折開始喊, 若您喊的價格很低,
    當場老闆並未接受, 別急, 若價格尚有賺頭, 老闆會在你走幾步路後叫你回來喔.
    買了兩件襯衫(50RMBx2)、十雙襪子 30RMB.
    晚上至老舍茶館吃飯兼喝大碗茶看戲, 我們坐中間的位置, 門票 120RMB, 滿貴的,
    裡面有戲曲、雙簧、雜耍、魔術等表演.

    10/13(三)
    今明黃同學等三人去看展, 我們就睡得比較晚, 先到玉淵潭, 玉淵潭門票 2RMB,
    其對面就是大陸中央電視台, 要找到八一碼頭, 由此搭船到頤和園, 玉淵潭也滿大的,
    花了一個小時才找到八一碼頭, 到頤和園的船下午只有一班 3:00 的, 就先吃個麵,
    套票 90RMB(船票 60RMB+頤和園門票 30RMB),
    結果這一班只有 Kelly 跟我兩人, 坐快艇到頤和園, 20分鐘, 由水路直達,
    第一個感覺是: 頤和園真漂亮.
    我們一直走到太陽下山, 還是沒有逛完小圈的, 要全部逛完大概要一天的時間,
    下次有機會一定還要再來.
    晚上預定是吃全聚德烤鴨, 很貴, 這一餐是黃同學的廠商請客, 我們點了十人套餐,
    1744RMB, 合台幣七千多, 好不好吃呢? 算不錯吃, 餐後還給你烤鴨紀念卡,
    上面記錄著烤鴨的序號.
    搭地鐵到王府井再逛一下.
    北京地鐵 3RMB, 人工驗票, 還有很多要改進的地方,
    我想在 2008 北京奧運前就能搞得很好了.
    今天腳滿痠的, 去做足療+搥腿, 68+38RMB, 還不錯, 做完腳就比較不痠了.

    10/14(四)
    步行至天壇, 快到天壇前發現有小吃店, 一籠小籠包、餛飩、酸辣粉才 7.5RMB,
    天壇門票 15RMB, 聯票 35RMB, 門票只能進大門,
    天壇三景點祈年殿、皇穹宇、圜丘都不能進去看, 使用聯票才能看全部,
    我們只有買門票, 只能在外圍看天壇三景點, 從北門走到南門, 走馬看花, 需要
    2-3 小時, 若有進三景點, 大概需要一個下午的時間.
    出天壇, 打車至大觀園, 門票 60RMB, 大觀園是根據紅樓夢所打造的庭園, 不是古蹟,
    晚上有一些表演(比老舍茶館的還差)及水幕電影, 感覺不值得花 60RMB 進來看,
    回王府井吃麥當勞1號餐, 17.5RMB, 來這兒吃的用意是比較台灣的和大陸的有何不同,
    大陸的套餐大致上和台灣的差不多, 可樂比較小杯, 漢堡和薯條的口感都一樣.
    在屈臣氏買了東西, 及買了狗不理包子(非湯包), 2兩, 六個, 7RMB, 包子不怎麼好吃.

    10/15(五)
    參加了 100RMB 遊長城、十三陵的旅行團, 含車錢、長城、十三陵的門票、午餐.
    走在街上有很多在發這種 100RMB 的行程宣傳單, 看似不錯, 但是下次有機會再來的話,
    應該不會再跟這種小團了, 缺點有
    1. 跟台灣一樣, 會帶你到藝品店、名產店、賣藥的, 浪費時間
    2. 會帶你到不想去的地方, 如這次的老北京
    3. 時間綁死, 你想再逛久一點也不行
    4. 有些部分還是要自費的, 並不是 100元打死
    當然也是有優點
    1. 便宜
    2. 有隨車導遊, 講解還滿詳細的
    今天的行程依序是
    十三陵-長陵, 長陵是十三陵中最大的陵, 目前也只有這個開放參觀, 人滿多的
    名產店
    11:00 左右吃飯, 這邊的廁所有人在收錢, 要五毛
    玉石店
    老北京燕京城, 門票 45RMB(自費, 不含在 100RMB 裡), 這邊有點像中影文化城,
    由舊有的城加以修復, 變成拍戲觀光的場所, 裡面有老天橋特技表演,
    吞劍、吞鐵珠、鼻穿鋼釘
    八達嶺長城, 搭乘簡陋的滑車要 30RMB, 這個錢可以省下來, 用走的,
    長城下的廁所要三毛, 最高點的 888M 碑拍照要 2RMB
    回程還到一家賣藥的, 真氣人
    晚餐到簋街吃火鍋, 辣的部分都很辣, 火鍋並沒什麼特別好吃的地方.

    10/16(六)
    今天行程是世界公園, 它有點像台灣的小人國, 有世界各國的景點, 只是比例都比較大,
    門票 65RMB, 在裡面玩機械式遊樂設施還要另外付費.
    出園後打一輛大車到蘆溝橋(到蘆溝橋再回西單, 喊價100RMB)
    蘆溝橋兩旁的石獅子, 每隻都不同, 非常逗趣.
    西單市區很熱鬧, 不輸台北東區, 幾天前在秀水市場買的襪子買貴了,
    因為這邊看到很多 5 雙 10RMB 的地攤.
    打車到便宜坊烤鴨(哈德門飯店旁), 這裡和全聚德一樣, 是國家五星級的烤鴨,
    可能是因為名氣不如全聚德, 這邊的價位大概是全聚德的一半左右, 各有風味.

    10/17(日)
    Kelly 昨天在地下道樓梯扭到了腳, 腳痛.
    黃同學他們先去清華大學及圓明園, 我們則去毛主席紀念館, 結果週日下午沒有開,
    真可惜, 毛主席紀念館五六日下午是沒開的, 不用門票.
    打車去燕沙商場(本來要直接去秀水市場, 司機說燕沙商場及女人街也不錯),
    是個百貨公司, 應該去先女人街的, 吃完飯後, 因為時間的關係, 就打車至秀水市場,
    買了個小包包(50RMB)裝相機跟一個皮夾(40RMB).
    等黃同學來會合, 他今天又買了一些東西, 真是血拼王.
    晚餐到北京飯店後面的一家店吃, 點了小籠包及綜合包套餐, 不好吃,
    (心得: 市區的餐廳都不太好吃)
    又到王府井小吃街吃了爆肚, 爆肚就是是羊肚的料理, 我們點了炒的跟湯的, 吃起來感覺普通.
    回飯店時, 看到路邊小攤在賣香酥蛋捲, 三個 1RMB, 買了六個, 真是便宜又好吃.

    10/18(一)
    包了兩台車(110RMBx2)至北京首都機場, 中國國際航空 12:55 CA109 班機,
    在機場免稅商店買了二瓶酒(二鍋頭 6USD+清蒸酒 6USD)、巧克力(5USD)、
    六大名茶(14USD)
    在香港轉機華航 18:35 CI-616 班機, 我們坐到機尾的位置, 起飛跟降落都很晃,
    我差一點就要吐了.

    後記:

  • 北京現在已很繁榮, 有許多高樓大廈, 還有很多正在興建, 主要幹道都比中港路還寬,
    車不會比台北少.
  • 北京的出租車(Taxi)大部分是紅色的, 有每公里 2.0, 1.6, 1.2RMB 三種價格,
    有 2/3 左右的車都是 1.6RMB 的, 這一星期, 印象中只有一次坐到 1.2RMB 的出租車.
    出租車大都是雪鐵龍的車子, 路上常見的有雪鐵龍、福斯(大眾)、Audi、Mazda、紅旗、
    台灣五大廠牌 TOYOTA、HONDA、FORD、MITSUBISHI、NISSAN 的車子不多.
  • 北京人開車很沒有規矩, 先搶先贏, 喇叭聲此起彼落.
  • 北京人聽台灣人講話, 沒辦法分辨出是台灣人, 頂多知道是南方人.
    聽吳 Sir 說上海人一聽台灣人講話, 就知道是台灣人
  • 北京景點 Top 3: 1. 頤和園 2. 故宮 3. 長城
  • 在香港等飛機時無聊測試, 香港機場這邊可收到八家手機業者訊號,
    其中有五家可以漫遊(後面有標 OK)
    CSL OK
    HK 02 OK
    Orange OK
    PEOPLES
    SUNDAY
    訊聯電信 OK
    新世界傳動網
    數碼通 OK

    照片

    Posted by pank at 10:40 PM | Comments (0)
  • October 06, 2004

    MSN 7.x fix

    Patch program for all version Download
    (Include 6.x and 7.x version)

    // Multi-Open
    Find 0F 85 B5 01 00 00 6A
    Edit 90 E9 -- -- -- -- --

    // No-Search
    Find 1st idSearchContainer (ASCII)
    look forward for bottom, edit as none

    // No-Tab method 1
    Find 1st tabmanager (ASCII)
    look forward for left, edit as none

    // No-Ad
    Find 62 6F 74 74 6F 6D 20 6C 61 79 6F 75 74 3D 76
    Edit 6E -- 6E 65 20 20 -- -- -- -- -- -- -- -- --
    ASCII
    Find bottom layout=v
    Edit none

    // No-Tab method 2 (registry)
    regedit
    [HKEY_CURRENT_USER\Software\Microsoft\MSNMessenger\PerPassportSettings\YOUR_ID_NUMBER]
    "DisableTabs"=dword:00000001

    YOUR_ID_NUMBER is a number according your MSN account

    Posted by pank at 11:38 PM | Comments (0)

    October 05, 2004

    /home/bbs newfs parameter

    newfs -b4096 -i2048 -m0 最適合
    newfs -b4096 -i1024 -m0 inode 會稍微不夠

    Posted by pank at 11:39 PM | Comments (0)

    October 01, 2004

    crontab not work?

    放在 crontab 裡排程的程式, 若發現沒有跑,
    可在指令後加 > /tmp/stdout 2> /tmp/stderr
    再看 /tmp/stdout /tmp/stderr 即可查出問題

    根據我的經驗, 通常是路徑問題、程式執行有錯、參數有誤

    Posted by pank at 11:34 PM | Comments (0)

    September 21, 2004

    September 19, 2004

    grub menu.lst for DOS, WinXP, FreeBSD, Linux

    My notebook partitions and boot loader settings

    fdisk -l /dev/hda

    Disk /dev/hda: 40.0 GB, 40007761920 bytes
    255 heads, 63 sectors/track, 4864 cylinders
    Units = cylinders of 16065 * 512 = 8225280 bytes

    Device Boot Start End Blocks Id System
    /dev/hda1 1 1020 8193118+ b W95 FAT32
    /dev/hda2 1021 1530 4096575 7 HPFS/NTFS
    /dev/hda3 * 1531 2040 4096575 a5 FreeBSD
    /dev/hda4 2041 4864 22683780 f W95 Ext'd (LBA)
    /dev/hda5 2041 2550 4096543+ 83 Linux
    /dev/hda6 2551 3060 4096543+ 83 Linux
    /dev/hda7 3061 4782 13831933+ 7 HPFS/NTFS
    /dev/hda8 4783 4864 658633+ 82 Linux swap


    Grub menu.lst
    default=0
    timeout=5

    title Windows
    rootnoverify (hd0,0)
    chainloader +1

    title FreeBSD 5.0
    root (hd0,2)
    makeactive
    chainloader +1

    title Red Hat 9.0
    root (hd0,4)
    kernel /boot/vmlinuz-2.4.20-8 ro root=LABEL=/ vga=791
    initrd /boot/initrd-2.4.20-8.img

    title Mandrake 10.0
    kernel (hd0,5)/boot/vmlinuz root=/dev/hda6 devfs=mount quiet vga=791
    initrd (hd0,5)/boot/initrd.img


    Posted by pank at 07:57 PM | Comments (0)

    September 11, 2004

    Gmail 密技

  • 太多信在 Inbox 太雜了,可以按 [Archive],郵件在 All Mail 仍找得到。
  • 使用一陣子 Gmail 後,Inbox 上方藍底白字的橫 Bar
    "You have 6 Gmail invitations. Invite a friend to join Gmail!"
    這時你可以邀請你的朋友一起使用 Gmail。讓愛傳出去!
  • 可自設 Labels 將郵件分門別類。同一封信可以有多個 Label。
  • 寄英文信前按一下 [Check spelling] 試試看, 超神奇的。
  • 太短的信有可能被誤判為 Spam,有空去看一下,順便清一清。
  • Gmail 帳號 ID 中間可以任意加上「.」。
    例如: your.id@gmail.com = yourid@gmail.com
  • 寄給 Gmail 帳號 ID 後面加上「+」之後可以任意打字。
    例如: seantw+family@gmail.com, seantw+friend@gmail.com
  • Google 提供了 Gmail Notifier 在 Windows 的系統工具列提示您的來郵。
    會浮出郵件標題和摘要,中文也可通。
    http://toolbar.google.com/gmail-helper/
  • Gmail 只對英文郵件顯示相關廣告。中文郵件不會有任何廣告。
  • 把 Gmail 當作記事本。建個叫「筆記」的 Label。
    設 Filter 為 From: your.id+notes@gmail.com 動作為 Apply the label: 筆記
    從別的信箱寄給自己,例如寄到: your.id+notes@gmail.com

    Posted by pank at 03:00 PM | Comments (3)
  • Change IE scroll bar color

    font: 12pt "字型";
    scrollbar-face-color: 主體色
    scrollbar-shadow-color: 陰影色
    scrollbar-track-color: 背景色

    eg.

    <style>
    body {
    font : 12pt "新細明體";
    scrollbar-face-color : #EEEEFF;
    scrollbar-shadow-color : #EEEEEE;
    scrollbar-track-color : #FFFFFF;
    }
    </style>

    font 要指定, 否則 scrollbar-face-color, scrollbar-shadow-color 無法顯示

    Posted by pank at 01:29 AM | Comments (0)

    September 09, 2004

    GmailFS

    http://richard.jones.name/google-hacks/gmail-filesystem/gmail-filesystem.html

    準備下列檔案
    http://umn.dl.sourceforge.net/sourceforge/avf/fuse-1.3.tar.gz
    http://richard.jones.name/google-hacks/gmail-filesystem/fuse-python.tar.gz
    http://umn.dl.sourceforge.net/sourceforge/libgmail/libgmail-0.0.8.tgz
    http://richard.jones.name/google-hacks/gmail-filesystem/gmailfs.tar.gz

    安裝 fuse, 開機 kernel 所用的 gcc 需和 compile fuse 所用的版本一致
    (參考README-2.4, 我的環境使用 Mandrake 10, kernel 2.4.26)
    # tar zxf fuse-1.3.tar.gz
    # cd fuse-1.3
    # ./configure --with-kernel=/usr/src/linux
    # make install

    載入 module, 若無法載入, 重編 kernel, 再用那個 kernel 開機試試
    # insmod fuse

    安裝 python FUSE module, 需先安裝 libpython2.3-devel rpm
    # tar zxf fuse-python.tar.gz
    # cd fuse-python
    # python setup.py build
    # python setup.py install

    安裝 libgmail
    # tar zxf libgmail-0.0.8.tgz
    # cd libgmail-0.0.8
    # cp libgmail.py constants.py /usr/lib/python2.3/site-packages

    安裝 gmailfs
    # tar zxf gmailfs.tar.gz
    # cd gmailfs
    # cp gmailfs.py /usr/local/bin
    # cp mount.gmailfs /sbin
    # ln -s /sbin/mount.gmailfs /sbin/mount.fuse

    修改 /usr/local/bin/gmailfs.py 中的 DefaultUsername, DefaultPassword

    mount GmailFS!
    # mount -t fuse /usr/local/bin/gmailfs.py /mnt
    # df
    Filesystem 1M-blocks Used Available Use% Mounted on
    /dev/hda6 3938 3462 276 93% /
    gmailfs 1000 56 944 6% /mnt

    完成, 在 /mnt 會看到一個空的目錄, 可以作檔案存取動作, 由於網路速度上的限制,
    我覺得實用性不大

    Posted by pank at 10:27 AM | Comments (0)

    September 02, 2004

    備分 Skype 聯絡人

    Skype 聯絡人存放位置

    「Documents and Settings」,找到登入Windows系統時的帳號名稱檔案夾,再利用滑鼠點進去,點選透明的「Application Data」後,找到Skype的檔案夾,點進去後,可以看到Skype帳號名稱,複製下來,再依同樣的方式備份到新電腦中

    ref.
    http://www.ettoday.com/2004/08/25/754-1676943.htm

    Posted by pank at 10:21 PM | Comments (0)

    How to Create Custom Forms in Windows

    http://support.microsoft.com/default.aspx?scid=kb;en-us;Q157172

    若印表機裡沒有自訂紙張大小, 用這個方法可以造出自訂大小格式

    Posted by pank at 01:30 AM | Comments (0)

    August 27, 2004

    TCL/TK required rpm

    in mdk
    tcl-8.3.3-21mdk
    tk-8.3.3-21mdk
    itcl-8.3.3-21mdk
    itcl is incr tcl that includes many useful widgets

    Posted by pank at 04:56 PM | Comments (0)

    [postfix] add footer or header to every outgoing and incoming message

    edit master.cf

    smtp inet n n n - - smtpd
    -o content_filter=filter:
    filter unix - n n - - pipe
    flags=Rq user=filter argv=/path/mailfilter.sh ${sender} ${recipient}

    edit /path/mailfilter
    # file mailfilter.sh
    # this sample script add http://pank.org at the bottom of message
    TEMP=/tmp/temp-$$.eml
    cat > $TEMP
    RCPT=`echo $@ | cut -d' ' -f2-`
    {
    cat $TEMP
    echo -e "\n--\nhttp://pank.org\n"
    } | $SENDMAIL -i $RCPT
    rm $TEMP

    Posted by pank at 11:02 AM | Comments (0)

    August 24, 2004

    Joe 3.1

    Joe 是我習慣用的編輯器, 最近出了 3.x 版

    http://sourceforge.net/projects/joe-editor/
    Download

    好用新功能
    3.0 部分

    - Syntax highlighting
    這個功能對寫程式很好用
    - Auto detect CR-LF (MS-DOS) files
    若是 DOS format file, 不會看到最後的^M, 編輯後的格式仍是 DOS format, 可以用 ^T, Z 關掉
    - File selection window is now 4 lines instead of 1
    ^KE, 選擇編輯檔案新增為4行(3.1版是多行)

    3.1 部分
    - Use ^T E to set character set of file (hit at the
    prompt for a list of available character sets).
    可以設文件的 charset
    - TAB completion is now more "bash"-like
    選擇編輯檔時按 tab 表現
    - Added -icase option for case insensitive search by default.
    忽略大小寫的搜尋參數
    - Added status line sequence %x: shows current context (function
    name if you're editing C).
    第一行狀態列顯示目前在那個 function (寫程式好用)
    - Added tab completion at search prompts and ESC-Enter for tab
    completion within text windows.
    在搜尋時, 按 tab 自動補齊可能 keyword
    在內文打字時, 參照內文自動補齊, 例如在編輯程式時, 打了 inc 再按 ESC-Enter 會自自補齊變成 include
    - Added Ctrl-space block selection method
    按 Ctrl-space 選取區塊, 可惜這功能鍵在 Windows 下和切換輸入法衝突, 無法在 Winodws 下使用
    - ^K E asks if you want to load original version of the file
    再編輯同一個檔尚未存檔時會問要不要載入原檔

    其他新增功能
    ^@ insert 這功能名為 insert, 但是試的結果和 Ctrl-space 差不多, 可用來選取區塊
    ^K, ^K. 左右平移一次動2格
    I-SEARCH ^[R Backwards ^[S Forwards 立即落點至搜尋字串

    Posted by pank at 01:36 AM | Comments (0)

    August 21, 2004

    一張網卡 bind 兩個不同網段的 IP

    環境: 兩條對外網路, 兩個 ATU-R 均接到 Hub, 電腦接 Hub

    IP1 100.100.100.100/24 Gateway 100.100.100.254
    IP2 200.200.200.200/24 Gateway 200.200.200.254

    ifconfig eth0 100.100.100.100 netmask 255.255.255.0
    ifconfig eth0:0 200.200.200.200 netmask 255.255.255.0

    由於 default gateway 只能設一個, 所以會有其中一個 IP 不通

    必需用 ip route2 來解決這個問題
    kernel option 中的 IP: policy routing 必需勾選(CONFIG_IP_MULTIPLE_TABLES)
    否則在使用 ip rule 時會出現如下錯誤訊息
    # ip rule list
    RTNETLINK error: Invalid argument
    dump terminated

    先在 /etc/iproute2/rt_tables 下建兩個 table
    echo "100 line1" >> /etc/iproute2/rt_tables
    echo "200 line2" >> /etc/iproute2/rt_tables

    # 設定 line1 的 gateway
    ip route add default via 100.100.100.254 table line1
    # 設定 line2 的 gateway
    ip route add default via 200.200.200.254 table line2
    # 指定從 100.100.100.100 進來的連線走 rule line1
    ip rule add from 100.100.100.100 table line1
    # 指定從 200.200.200.200 進來的連線走 rule line1
    ip rule add from 200.200.200.200 table line2

    設完後, 從外面連兩個 IP 都可以通

    連外負載平衡
    kernel option 中的 IP: equal cost multipath 必需勾選(CONFIG_IP_ROUTE_MULTIPATH)
    指定 multipath
    ip route add default scope global nexthop via 100.100.100.254 dev eth0 weight 1 \
    nexthop via 200.200.200.254 dev eth0 weight 1
    設完後就達成 line1 line2 路由平衡, 可以調整 weight 參數來決定 line1 或 line2 的比重
    ip route list 會看到 default 如下
    default
    nexthop via 100.100.100.254 dev eth0 weight 1
    nexthop via 200.200.200.254 dev eth0 weight 1

    ref. http://lartc.org/

    Posted by pank at 03:09 PM | Comments (0)

    August 20, 2004

    Apache mod_limitipconn

    http://dominia.org/djao/limitipconn.html

    這個 mod 可以用來檔 flashget, net transport, netants 之類的多線程下載程式,
    開太多線, 對 server 造成負擔, 又不會比較快

    FreeBSD
    cd /usr/ports/www/mod_limitipconn && make install

    編輯 httpd.conf
    LoadModule limitipconn_module libexec/apache/mod_limitipconn.so
    AddModule mod_limitipconn.c
    ExtendedStatus On

    新增
    <IfModule mod_limitipconn.c>
    <Location />
    MaxConnPerIP 2
    </Location>
    <Location /cgi-bin>
    MaxConnPerIP 2
    </Location>
    </IfModule>

    若有 VirtualHost, 請加到對應的 block

    apachectl restart 後, 測試一下
    log 裡面會發現 503, 就是被限制的線程
    220.130.142.100 - - [20/Aug/2004:01:32:43 +0800] "GET /test.rar HTTP/1.1" 503 395
    220.130.142.100 - - [20/Aug/2004:01:32:49 +0800] "GET /test.rar HTTP/1.1" 503 395
    220.130.142.100 - - [20/Aug/2004:01:32:55 +0800] "GET /test.rar HTTP/1.1" 503 395
    220.130.142.100 - - [20/Aug/2004:01:33:02 +0800] "GET /test.rar HTTP/1.1" 503 395
    220.130.142.100 - - [20/Aug/2004:01:33:08 +0800] "GET /test.rar HTTP/1.1" 503 395
    220.130.142.100 - - [20/Aug/2004:01:33:14 +0800] "GET /test.rar HTTP/1.1" 503 395

    Posted by pank at 01:49 AM | Comments (0)

    August 16, 2004

    idesk

    http://idesk.sourceforge.net/
    可以把 icon 放到 root desktop 上(eg. IceWM's desktop)

    原始網站上的 0.3.5 版的檔案壞了(已發信通知作者)
    正確檔案可到這裡下載

    要 make idesk, 需要下面的 rpm
    freetype2-devel
    libtiff3-devel
    libungif4-devel
    libimlib1-devel

    作如下 link
    ln -fs /usr/include/freetype2/freetype /usr/include

    make 的時候, /usr/include/pngconf.h
    __png.h__ already includes setjmp.h;
    __dont__ include it again.;
    這兩行會出現錯誤, 不曉得為什麼, mark 掉即可 make, make 出的來檔案也正常

    idesk 需要 /etc/fonts/fonts.conf
    這個檔是給 Xlib 看的
    The X-specific library 'Xft' uses fontconfig along with freetype to specify and rasterize fonts.
    若沒這個檔, 會出現如下錯誤
    FontConfig error: Cannot load default config file

    idesk 需要 /usr/X11R6/lib/modules/extensions/libextmod.a
    若沒這個檔, idesk 可以跑, 但是有 mouse 動作時會出現如下錯誤, 而且 icon 透明的部分會變成黑色
    Xlib: extension "SHAPE" missing on display ":0.0".

    設定檔 $HOME/.ideskrc
    範例

    table Config
    FontName: tahoma
    FontSize: 8
    FontColor: #ffffff
    PaddingX: 35
    PaddingY: 25
    Locked: false
    HighContrast: false
    Transparency: 150
    Shadow: true
    ShadowColor: #000000
    ShadowX: 1
    ShadowY: 2
    Bold: false
    end

    PaddingX, PaddingY: 這個參數在 README 並沒有提到, 在新版(0.5x)也被刪除, 意義不明
    Locked: 是否鎖定 icon 位置
    HighContrast:是否在 text 外框用反色描繪
    Transparency: 透明度, 0=不透明, 255=完全透明, 指 mouse not hover 時的狀況
    Shadow: 是否描繪影子
    UseDoubleClick: 是否使用 double click 啟動程式
    Bold: 是否 text 粗體

    設定目錄 $HOME/.idesktop (內存 icon link file)
    範例:

    table Icon
    Caption: mozilla
    Command: /usr/bin/mozilla
    Icon: /usr/share/icons/mozilla.png
    X: 60
    Y: 200
    end

    Posted by pank at 06:18 PM | Comments (1)

    August 14, 2004

    WinRAR self-extraction installation tip

    WinRAR 可以在註解加入 icon 建立參數來製作簡易的安裝程式

    Delete 解壓縮前先刪除檔案
    License 顯示程式的使用授權協定
    Overwrite 選擇檔案的覆寫模式
    Path 設定預設目標路徑
    Presetup 指定解壓縮前執行的程式
    SavePath 儲存目的地路徑(儲存路徑在 registry, 當下次再執行自解檔時會自動帶入, Path 參數存在時才有效)
    Setup 指定解壓縮後執行的程式
    Shortcut 建立解壓縮檔案的捷徑
    Silent 跳過開始時的對話方塊
    TempMode 解壓縮檔案到暫存資料夾
    Text 加入純文字到自解檔對話方塊純文字視窗
    Title 設定自解檔對話方塊標題

    範例

    Title=MSN Messenger 7.0.0225
    Path=%temp%
    Setup=msnnoad.exe /i
    Overwrite=1
    Silent=1
    簡單的自解範例, 解完執行 msnnoad.exe
    Title=MSN Messenger 7.0.0332 中文化
    Overwrite=1
    Path=MSN Messenger
    Silent=1
    TempMode=安裝前請先結束 MSN Messenger\n進行安裝?@MSN Messenger 7.0.0332 中文化
    Setup=msnmsgr
    解壓前秀一對話視窗, @後面接標題

    Title=Maxthon 繁體中文版
    Text
    {-
    網際暢遊(Maxthon)是一個完全免費的綠色軟體,無需註冊,
    不附加任何廣告,無需安裝,解壓到資料夾後可以直接使用,
    並且容許以任何形式傳播該軟體。
    }
    Path=Maxthon
    SavePath
    Overwrite=1
    Shortcut=D, Maxthon.exe,,, "Maxthon"
    Shortcut=P, Maxthon.exe, Maxthon,, "Maxthon"
    Shortcut=P, MaxthonUINST.exe, Maxthon,, "Uninstall"
    Setup=Maxthon.exe
    Shortcut=D 建立桌面 icon
    Shortcut=P 建立程式集 icon

    Setup 程式有加參數時需留一空白

    參數說明: (資料來自 WinRAR 說明檔)

    Delete=<檔案名稱>

    在解壓縮到目標資料夾之前刪除指定的檔案,允許數個 Delete 命令。
    如果在此指定的檔案被鎖定而無法刪除,自解檔模組在解壓縮前會試著將它臨時重新命名,並在 Windows 重新啟動時刪除它,這能不能成功則取決於 Windows 版本的差異。
    範例:

    Delete=winrar95.exe

    Delete=rarlng.dll

    License=<使用授權協議對話方塊標題>

    {-
    使用授權協定純文字 1
    使用授權協定純文字 2

    }

    當開始自解檔時,顯示軟體的使用授權協定,使用者可以接受,並繼續解壓縮,或拒絕並離開。
    License 可以是 HTML 格式或純文字格式。後者自解檔模組會配合對話方塊將指定純文字字串結合和重新格式成最佳狀態,因此如果您希望開始新段落的話,您必須在之前加入一個空字串。
    使用 HTML 可以控制顯示的字形、顏色及格式。關於 HTML 的語法在一般網際網路都找得到,或者您也可以用 HTML 編輯程式製作。
    範例:

    License=最終使用者使用授權協議書

    {-
    所有版權於 RAR 均屬於作者所專有。

    此程式是共享軟體,任何人在測試期限內均可以使用此軟體。
    在測試期限過後,您必須註冊。
    }

    Overwrite=[n]

    如果 [n] 為 0,在覆寫檔案之前使用者將先被詢問。這是 覆寫 命令的預設動作,可以不需要指定。如果 [n] 不存在或是等於 1,檔案將在沒有確認的狀況下全部覆寫。如果 [n] 等於 2,所有已存在的檔案將不會被覆寫。
    範例:
    Overwrite=1

    Path=<路徑>

    設定預設的目標路徑。路徑的絕對使用起始點在預設下為 <磁碟機號>:,如果 <路徑> 只包含名稱,它將會被附加到 Program Files 資料夾下,如果您不希望這麼做,請從 '.\' 字元開始定義起始 <路徑>。
    範例:
    設定 [Calc 3.05 beta] 為資料夾名,位置在 [Program Files] 下,當成預設路徑:

    Path=Calc 3.05 beta

    設定 [C:\Calc] 當作預設路徑:

    Path=C:\Calc

    設定 [Calc] 在根目錄下當作預設路徑:

    Path=.\Calc

    Presetup=<程式>

    自解檔在解壓縮之前將試著執行 <程式>,在執行 <程式> 之前必須先指定目標資料夾。您可以使用此命令,比如說,當安裝新版本於舊版本上面時,用以移除先前的程式版本。
    範例:
    Presetup=uninstall.exe /clean

    Setup=<程式>

    在成功解壓縮之後自解檔將會試著執行 <程式>。在執行 <程式> 之前,包含已解壓縮檔的資料夾將會設為目前資料夾
    範例:
    Setup=setup.exe

    注意

    1) 如果您在使用自解檔執行 InstallShield setup.exe 有問題的話,請試著執行 [setup.exe /SMS] 來代替簡潔的 [setup.exe]。此選項允許自解檔檢測安裝程式的離開。
    2) 全部在自解檔命令列所指定的選項都會從 Setup=<程式> 命令提交給程式,自解檔它自己則只認得 -s 選項,也就是強制背景安裝模式而不顯示開始對話方塊。
    3) 自解檔模組在安裝之前先設定 sfxname 環境變數。這個變數包含自解檔名稱,所以安裝程式可以預先讀取這類的資訊。


    shortcut=<目標類型>,<來源名稱>,<目標資料夾>,<敘述>,<捷徑名稱>

    為解壓的檔案建立一個捷徑。

    目標類型 是目標區域種類,可以有下列值:

    D 在桌面建立捷徑
    S 在 [開始] 功能表建立捷徑
    P 在 [開始] 功能表/[程式集] 中建立捷徑
    T 在 [啟動] 功能表中建立捷徑
    來源名稱 是壓縮檔名稱。

    目標資料夾 是建立捷徑的資料夾,如果它不存在,將被自我解壓縮檔建立。
    敘述 是敘述捷徑的字串。
    捷徑名稱 是由自解檔建立的 .lnk (捷徑) 檔案的檔案名稱。
    所有選項用逗號分隔。如果您需要在選項內加入逗號字元,就把整個選項加上引號。如果您要顯示引號,則必須打兩次引號。只有目標類型和來源名稱是必需的,其他選項選用。
    範例
    在桌面建立在 WinRAR 資料夾中連接到 winrar.exe 的捷徑,帶有 [WinRAR 執行檔] 的敘述和 [WinRAR 壓縮軟體] 的名稱:

    Shortcut=D, winrar.exe, WinRAR, "WinRAR 執行檔", "WinRAR 壓縮軟體"

    Silent[=選項]

    開始解壓縮時不顯示開始對話方塊。
    選項 可以是 1 或 2。如果 選項 是 1,開始解壓縮對話方塊會完全隱藏,包含進度顯示和檔案名稱。如果 選項 是 2,則跳過開始解壓縮的確認,但使用者仍然可以看到壓縮檔案的解壓縮進程。
    範例:
    Silent=2

    TempMode=[問題?述][@視窗標題純文字]

    此命令強制自解檔建立一個臨時目錄,將全部檔案解壓縮至此,然後開始執行 Setup 命令所指定的程式,並在完成 Setup 程式之後將臨時目錄中的內容全部清除。當執行這些操作時,自解檔會自動設定為 安靜模式。如果 TempMode 命令存在的話,?述中將有 Setup 命令且不得使用 path 命令。
    TempMode 命令可以有字串選項的選項,在解壓縮之前可用以定義問題和問題的標題。這樣的範例,僅在當使用者選擇 [是] 按鈕時才會開始解壓縮。
    範例:

    a) TempMode
    b) TempMode=您希望繼續安裝 Calculator 3.05 嗎?@Calculator 安裝程式

    Text=<字串>

    b)

    Text

    {-
    字串 1
    字串 2

    }

    加入指定純文字或 HTML 字串到自解檔模組的文字輸出視窗。當自解檔模組第一次遇到 Text 命令時,它會重置此視窗在加入 <字串> 之前的預設內容,後續命令則附加 <字串> 到已存在的純文字後。
    這種命令語法可以一次加入單行字串或數行字串。
    如果使用純文字語法時,自解檔模組會配合對話方塊將指定純文字字串結合和重新格式成最佳狀態,因此如果您希望開始新段落的話,您必須在之前加入一個空字串。
    使用 HTML 可以控制顯示的字形、顏色及格式。關於 HTML 的語法在一般網際網路都找得到,或者您也可以用 HTML 編輯程式製作。

    範例:

    a) 加入單一字串到對話方塊視窗
    Text=這是我的新程式

    b) 加入指定純文字到對話方塊視窗 [Text

    {-
    此程式最有趣的特性是:
    - 支援 Windows 剪貼簿;
    - 每一個處理的檔案大小最大為 10KB;
    }

    Title=<標題>

    設定自解檔的視窗標題。
    範例:
    Title==Calculator,版本 3.05


    Posted by pank at 09:02 PM | Comments (1)

    August 12, 2004

    Windows XP Unattended Installation

    Step 0: SP2 整合
    將 Windwos XP CD 解開到 x:\xpcd, 然後 xpsp2.exe/integrate:x:\xpcd
    (xpsp2.exe 是完裝的 SP2 升級檔)

    Step 1: 準備 winnt.sif (在 i386 目錄內), 設定好參數. winnt.sif 參數說明
    範例:

    [Data]
    AutoPartition=0
    MsDosInitiated="0"
    UnattendedInstall="Yes"

    [Unattended]
    UnattendMode=FullUnattended
    OemSkipEula=Yes
    OemPreinstall=No
    TargetPath=\WINDOWS
    Repartition=No
    UnattendSwitch="Yes"
    WaitForReboot="No"
    DriverSigningPolicy=Ignore
    CrashDumpSetting=0
    NtUpgrade=No

    [GuiUnattended]
    AdminPassword=*
    EncryptedAdminPassword=NO
    OEMSkipRegional=1
    TimeZone=220
    OemSkipWelcome=1

    [SystemFileProtection]
    SFCQuota=0

    [UserData]
    ProductID=XXXXX-XXXXX-XXXXX-XXXXX-XXXXX
    FullName="Windows XP"
    OrgName="Microsoft"
    ComputerName=*

    [RegionalSettings]
    LanguageGroup=7,9,10

    [Identification]
    JoinWorkgroup=WORKGROUP

    [Networking]
    InstallDefaultComponents=Yes

    [Branding]
    BrandIEUsingUnattended=Yes

    [Display]
    BitsPerPel=32
    Xresolution=800
    YResolution=600
    Vrefresh=75

    [Components]
    msmsgs=off

    [URL]
    Home_Page=www.google.com.tw

    Step 2: 建立 $OEM$ 相關目錄
    md $OEM$
    cd $OEM$
    md $1 $$ $Docs $Progs install
    如下(用不到的目錄可以省略)

    $1 下的所有檔案及目錄, 會複製到 %SystemDrive%
    $$ 下的所有檔案及目錄, 會複製到 %SystemRoot%
    install 是用來放 OEM 軟體的地方

    Step 3: 在 $OEM$ 目錄下建立 cmdlines.txt, 寫入預定執行的指令
    範例:

    [COMMANDS]
    install.bat

    Step 4: 編輯 cmdlines.txt 內的批次檔, 軟體安裝需採用 quiet 或 silient 安裝模式, 才能自動安裝, 並不是所有軟體都支援這種參數, 參考應用程序的全自動安裝
    範例:

    @ECHO OFF
    ECHO.
    ECHO 系統優化
    regedit /s tweak.reg
    ECHO.
    ECHO 安裝 MSN Messenger 6.2
    start/wait install\msn.msi /qn
    install\msn6xnoad.exe /s

    Step 5: 使用 WinISO 將異動的檔案, 塞到 Windows XP 的 ISO 檔

    Step 6: 完成, 可以使用 Virtual PC 或 VMWare 測試一下, 最後可燒成 CD

    ref.
    Windows XP Unattended Installation, Part II
    MSFN's Unattended Windows
    無人值守Windows XP安裝光盤

    Posted by pank at 11:31 PM | Comments (0)

    cramfs file size limit

    cramfs default maximum file size is 16M (16777215)
    if file size > 16M, you'll get this message when mkcramfs
    warning: file sizes truncated to 16MB (minus 1 byte).

    it's possible to make limit larger!

    modify to value CRAMFS_SIZE_WIDTH in kernel source
    include/linux/cramfs_fs.h
    (default #define CRAMFS_SIZE_WIDTH 24)

    after I tested, maximum value is 28, in other word,
    file size limit 268435455 (256MB)

    don't forget to modify mkcramfs, get cramfs tools and
    change the value as above (modify /usr/include/linux/cramfs_fs.h and rebuid mkcramfs), use modified mkcramfs to make cram files.

    note. CRAMFS_SIZE_WIDTH in kernel and mkcramfs must be the same,
    or cramfs will not work.

    Posted by pank at 04:50 PM | Comments (3)

    August 11, 2004

    Some regex example

    Check Email format
    ^[a-z]+[0-9a-z._-]*@[0-9a-z.]+[a-z]$
    will match pank@test.com, henry.pan@test.com, a_pank@test.com
    but not 1pank@test.com, pank#@test.com, %pank@test.com

    Check unix userid
    ^[a-z][a-z_-]*
    will match pank, pan_, pank-
    but not 1pank, pank#, pank!

    Posted by pank at 06:15 PM | Comments (0)

    檔案權限問題

    pank 是一般 user, home 在 /home/pank
    先以 root 權限做下列動作
    cd /home/pank
    touch file1 file2
    chmod 644 file1
    chmod 0 file2
    mkdir dir1 dir2 dir3 dir4
    chmod 755 dir1
    chmod 0 dir2
    chmod 777 dir3
    chmod 1777 dir4
    cp file1 file2 dir3
    cp file1 file2 dir4

    然後再以 pank 權限執行下列指令, 請說明會有什麼反應及動作
    1. cat file1
    2. cat file2
    3. ls dir1
    4. ls dir2
    5. rm file1
    6. rm file2
    7. rd dir1
    8. rd dir2
    9. rm dir3/file1
    10. rm dir3/file2
    11. rm dir4/file1
    12. rm dir4/file2

    解答如下

    1. cat file1 可以 cat
    2. cat file2 Permission denied
    3. ls dir1 可以 ls
    4. ls dir2 Permission denied
    5. rm file1 可以 rm
    6. rm file2 可以 rm
    7. rd dir1 可以 rd
    8. rd dir2 可以 rd
    9. rm dir3/file1 可以 rm
    10. rm dir3/file2 可以 rm
    11. rm dir4/file1 Operation not permitted
    12. rm dir4/file2 Operation not permitted

    您答對了幾題呢?

    Posted by pank at 02:45 PM | Comments (0)

    August 09, 2004

    Get pbase photo script

    # 範例: 周大拍的2004台北電腦應用展
    URL="http://www.pbase.com/albertjou/show16&page=all"
    for i in `lynx -dump $URL | awk -F'[] ]' '/http.*image/ {print $NF}'`
    do
        wget `lynx -source $i | awk -F\" '/IMG.*upload.*jpg/ {print $6}'`
    done
    
    Posted by pank at 03:32 AM | Comments (0)

    July 27, 2004

    POPTOP with MPPE (encrypted VPN connection)

    kernel is 2.4.25

    http://sourceforge.net/projects/poptop/ 取得 kernelmod-0.8.4.tar.gz, ppp-2.4.3-0.cvs_20040527.1.src.rpm

    解開 kernelmod-0.8.4.tar.gz 至 /tmp
    因為 package 裡的 script 寫得不是很好, 所以手動安裝
    cd /usr/src/linux-2.4.25
    apply patch
    patch -p1 < /tmp/kernelmod-0.8.4/2.4/linux-default-bsd-mppe.patch
    cp /tmp/kernelmod-0.8.4/src/linux-default-bsd-mppe/*c drivers/net
    cp /tmp/kernelmod-0.8.4/src/linux-default-bsd-mppe/*h drivers/net

    make menuconfig 勾選 PPP MPPE compression (encryption)
    (in Network device support ---> )

    make dep && make bzImage

    編譯 ppp
    (不要用 http://www.samba.org/ppp/ 上的 package, 要用 http://sourceforge.net/projects/poptop/, 因為有加入 MPPE 的 support)

    rpm --rebuild ppp-2.4.3-0.cvs_20040527.1.src.rpm
    安裝
    rpm -ivh /usr/src/RPM/RPMS/i586/ppp-2.4.3-0.cvs_20040527.1.i586.rpm

    設定
    # cat /etc/pptpd.conf
    option /etc/ppp/options.pptpd
    localip 192.168.0.1
    remoteip 192.168.0.240-249
    # cat /etc/ppp/options.pptpd
    lock
    auth
    debug
    name pptpd
    proxyarp
    nobsdcomp
    require-mschap-v2
    require-mppe

    另外有看到類似的 module http://www.polbox.com/h/hs001/#AEN221, 看了一下, 也是差不多, kernel 也要 patch

    ref.
    http://www.poptop.org/
    http://www.chinaunix.net/jh/4/308230.html
    MPPE

    Posted by pank at 06:04 PM | Comments (0)

    July 26, 2004

    egrep

    grep 也有支援 regex 功能, 加 -E 參數或用 egrep

    [:alnum:] 英文字母及數字, 即 [0-9a-zA-Z]
    \w = [[:alnum:]]
    \W = [^[:alnum]].
    [:alpha:] 英文字母, 即 [a-zA-Z]
    [:cntrl:] 控制碼
    [:digit:] 數字, 即 [0-9]
    [:graph:] 除了 space 以外的可印字元
    [:lower:] 小寫英文字母, 即 [a-z]
    [:print:] 可印字元含 space
    [:punct:] 除了 space, 英文字母及數字外的符號
    [:space:] space, form-feed ('\f'), newline ('\n'), carriage return ('\r'), harizontal tab ('\t'), and vertical tab ('\v').
    [:upper:] 大寫英文字母, 即 [A-Z]
    [:xdigit:] Hex 字元, 包含 [0-9a-fA-F]

    包含 ] 必須放在最前面
    包含 ^ 不能放在第一個, 因為放第一個代表除...之外
    包含 - 要放在最後

    . 代表任何一個字元

    「定位」 功能, 但本身不吃掉任何字元 anchor
    ^ 及 $ 分別表示行首及行尾
    \< 及 \> 分別表示字首及字尾
    \b 表示字的邊緣
    \B 表示不是字的邊緣

    計數用, 表達 「前面那個東西重複出現多少次」 的 quantifier
    ? 可有可無 (0 次或 1 次)
    * 重複出現任意次, 包含 0 次
    + 重複出現任意次, 至少 1 次
    {n} 重複 n 次
    {n,} 重複 n 次(含)以上
    {n,m} 重複 n 次到 m 次

    ref. man grep
    輩子受用的 Regular Expressions -- 兼談另類的電腦學習態度
    龍門少尉的窩
    鳥哥的 Linux 私房菜 -- 正規表示法

    Posted by pank at 10:38 PM | Comments (0)

    July 22, 2004

    ip and route

    ip route add 192.168.0.0/24 dev eth0 (add 可以簡寫成 a)
    = route add -net 192.168.0.0/24 dev eth0

    ip route del default (del 可以簡寫成 d)
    = route del -net 0

    ip route replace default via 192.168.0.1 (replace 可以簡寫成 r)
    = route del -net 0; route add -net 0 gw 192.168.0.1

    Posted by pank at 02:36 PM | Comments (0)

    Netscape fullscreen

    <body onLoad="window.open('white.html','Main','toolbar=0,location=0,status=0,menubar=0,
    scrollbars=0,resizable=0,directories=0,left=0,top=0,width=1024,height=768');">

    Posted by pank at 02:30 PM | Comments (0)

    [Shell] dec2hex hex2dec

    dec2hex
    #!/bin/sh
    printf "%X\n" $1

    hex2dec (bash only)
    #!/bin/sh
    echo $((0x$1))

    Posted by pank at 10:09 AM | Comments (1)

    July 21, 2004

    startx procedure in Mandrake

    startx
    xinit
    X (Xwrapper -> XFree86)
    /etc/X11/Xsession (in /etc/X11/xinit/xinitrc or ~/.xinitrc)
    run window manager in Xsession finally

    Posted by pank at 12:37 PM | Comments (0)

    July 18, 2004

    Custom value for MRTG

    MRTG 需要兩個數值來畫圖,
    第一個值是 in
    第二個值是 out
    第三個值是 uptime (非必要)
    第四個值是 device name or hostname (非必要)

    例: BBS 線上人數統計(這裡只用到第二個值來畫圖)
    /home/bbs/bin/mrtg 會產生 output 如下
    0
    60
    11 days, 3:54
    77bbs.com

    mrtg.cfg 內容
    WorkDir: /home/bbs/public_html/num
    Language: big5

    Target[localhost]: `/home/bbs/bin/mrtg`
    MaxBytes[localhost]: 200
    Options[localhost]: gauge, nopercent
    YLegend[localhost]: BBS online number
    LegendO[localhost]: 線上人數
    Title[localhost]: 77bbs.com 線上人數
    PageTop[localhost]: <h1>77bbs.com 線上人數</h1>

    Posted by pank at 03:54 PM | Comments (0)

    July 17, 2004

    MRTG in/out reverse

    若 MRTG 圖表畫出來 in/out 和預期相反
    在 Target 第二個欄位的數字前加上負號即可

    Target[192.168.1.1_1]: 1:public@192.168.1.1:
    改成
    Target[192.168.1.1_1]: -1:public@192.168.1.1:

    Posted by pank at 10:40 PM | Comments (0)

    July 15, 2004

    tac

    tac = reverse cat

    Linux 下有 tac, FreeBSD 沒有
    FreeBSD 用 tail -r 有相同效果(Linux 下的 tail 沒有 -r 參數)

    Posted by pank at 10:19 PM | Comments (0)

    July 14, 2004

    screen

    偶爾用, 但常忘了怎麼用, 記下來參考

    Ctrl+a c : 開新視窗.
    Ctrl+a space : 切換視窗.
    Ctrl+a w : 顯示目前有幾個視窗, 以及正在哪個視窗.
    Ctrl+a 0-9 : 切換 0-9 號視窗 .
    Ctrl+a k : 解決一個視窗 (強迫離開)
    Ctrl+a d : 離開 screen , 但保持所有視窗的資訊. (有連線的還是保持連線.)

    screen -r : 進入 screen, 並繼續上次 Ctrl+a d 所保持的視窗.

    http://ppsc.pme.nthu.edu.tw/~dino/man/bsd/sys/howto/w48laksjdf.html

    Posted by pank at 11:52 PM | Comments (0)

    July 13, 2004

    追查 POP3 錯誤

    早上收信發現收不下來, 看 log

    Jul 13 10:31:00 tecoia qpopper[3314]: I/O error flushing output to client pank at devel.i [192.168.0.7]: Operation not permitted (1)

    在 server 端查了半天, 查不出所以然,
    最後發現原來是 norton 的問題

    Posted by pank at 10:58 AM | Comments (0)

    July 08, 2004

    Backup MBR & Partition entries

    Backup
    dd bs=512 count=1 if=/dev/hda of=backup-hda.mbr
    sfdisk -d /dev/hda > backup-hda.sf

    Restore
    dd if=backup-hda.mbr of=/dev/hda
    sfdisk /dev/hda < backup-hda.sf

    ref.
    http://www.partimage.org/doc/index-3.html#ss3.7

    Posted by pank at 06:03 PM | Comments (0)

    GNOME 啟動程式設定

    使用 gnome-session-properties 設定, 存在 ~/.gnome2/session-manual
    登出時, 選擇儲存目前工作, 存在 ~/.gnome2/session
    也可以寫在 /etc/gnome/gnomerc
    在 exec gnome-session 前

    Posted by pank at 11:24 AM | Comments (0)

    July 06, 2004

    vmware & virtual pc notes

    VMware
    release cursor -> ctrl+alt
    full screen toggle -> ctrl+alt+enter
    nic -> pcnet32, multiple virtual nic ability, Good

    Virtual PC
    release cursor -> alt-shift
    full screen toggle -> right alt+enter
    nic -> same as physical one

    Posted by pank at 12:13 AM | Comments (1)

    July 05, 2004

    [Shell] Get file size

    FreeBSD
    stat -f %z file

    Linux
    stat -c %s file

    sure, you can use
    ls -l file | awk '{print $5}'
    but I think stat is better

    Posted by pank at 06:06 PM | Comments (0)

    顯示從何處連線

    若沒有 who 及 w 指令, 要如何知道連線 FROM 的位址?

    ssh 使用 echo $SSH_CLIENT
    telnet 使用 echo $REMOTEHOST

    Posted by pank at 10:37 AM | Comments (0)

    July 01, 2004

    Show postfix version

    postconf mail_version

    ref. Postfix FAQ

    Posted by pank at 11:26 PM | Comments (0)

    June 28, 2004

    AP 進階應用

    一個功能完整的 AP, 必須具備以下五種 mode
    * AP
    * Point to Point bridge
    * Point to Multi-Point bridge
    * Repeater
    * AP Client

    * AP
    這個大概不用多做解釋, 每台 AP 都具有的功能, client 使用 Infrastructure 方式連接 AP

    * Point to Point bridge
    點對對橋接
    應用實例: 兩棟大樓間的網路橋接
    設定: 兩台 AP 必需設定對方的 MAC, 及使用相同的頻道, 同一個 ESSID

    * Point to Multi-Point bridge
    點對多對橋接
    應用實例: 兩棟以上大樓間的網路橋接
    設定: 設定點對多點的 AP 必需設定基他連線 AP 的 MAC, 其他 AP 也必需設定主 AP 的 MAC
    所有 AP 需使用相同的頻道, 同一個 ESSID

    * Repeater
    延續 AP 的訊號
    應用實例: 中間有阻隔的兩間辦公室, 在走郎處架設 Reapter, 延續 AP 的訊號
    設定: Repeater 需設 root AP 的 MAC

    * AP Client
    AP Client 可接在傳統的 ethernet device, 使之能以無線方式連接
    應用實例: AP Client 連接 Hub, 讓另一區的 LAN 能透過無線方式串接
    設定: AP Client 需設 root AP 的 MAC, 使用同一個 ESSID

    ref.
    http://www.big5.tomshardware.com/howto/03q1/030129/wireless-02.html

    Posted by pank at 01:46 PM | Comments (0)

    Gaim 0.79

    這個版本加入新增兩項重要功能
    MSN 傳檔
    MSN 大頭照, 目前並不會自動更新, 只有對方傳訊過來時才會顯示大頭照, 或者手動按更新好友圖示

    其他
    修正 Yahoo protocol 異動, 使能 login Yahoo Messenger

    Download

    Posted by pank at 11:43 AM | Comments (0)

    June 24, 2004

    gzip file header

    RFC 1952

    把一個 gzip file 前 10 bytes dump 下來

    1f 8b 08 00 b8 8e ea 3f 00 03
    +---+---+---+---+---+---+---+---+---+---+
    |ID1|ID2|CM |FLG| MTIME |XFL|OS |
    +---+---+---+---+---+---+---+---+---+---+

    ID1 ID2 固定是 1f 8b, 作為 gzip format 的識別
    CM 是壓縮方式, 需填 08
    FLG 是一些參數的 flag, 一般為 0, bit 5-7 reserved (Reserved FLG bits must be zero.)
    MTIME 是最後異動時間, 單位秒, 相當於 date +%s
    XFL 是其他參數, 一般為 0
    OS = 03 = Unix

    Posted by pank at 10:19 PM | Comments (0)

    [Shell] cat << EOF > file

    使用 cat << EOF > file 時, 結束的 EOF 要獨立一行, 後面也不能有 space, tab

    Posted by pank at 10:29 AM | Comments (0)

    June 23, 2004

    REALbasic

    REALbasic is a cross-platform VB like language

    http://www.realsoftware.com/realbasic/indepth/

    REALbasic is the powerful, easy to use tool for creating your own
    software for Windows, Macintosh and Linux.

    Download

    Screen Shot

    Posted by pank at 06:37 PM | Comments (0)

    June 21, 2004

    StarDict


    http://stardict.sourceforge.net/

    最近裝了 stardict 才知道, 它有 highlight 即時翻譯的功能, 真好用!

    以 Mandrake 10 為例, 至少要裝主程式, 英翻中檔, 中翻英檔
    stardict-2.4.2-5mdk.i586.rpm
    stardict-xdict-en-zh_TW-2.4.2-1mdk.noarch.rpm
    stardict-xdict-zh_TW-en-2.4.2-1mdk.noarch.rpm

    Posted by pank at 02:00 PM | Comments (0)

    June 17, 2004

    掃 曲線

    有一個檔的內容是


    曲線

    在 linux 下, LC_CTYPE 設 en_US 的話
    grep 掃 file 的結果, 兩個都能找到, 因為"曲"的後半+"線"的前半剛好等於"掃"
    只要設 LC_CTYPE=zh_TW 就能讓 grep 認得中文
    grep 掃 file 的結果, 就不會出現"曲線"

    但是在 FreeBSD 下我試不出來, setenv LC_CTYPE zh_TW 還是 zh_TW.Big5 後,
    還是沒效果

    Posted by pank at 01:58 PM | Comments (0)

    Mouse Gestures

    Mozilla, Firefox 支援滑鼠手勢, 工具/擴充套件 線上安裝 All-in-One Gestures

    http://optimoz.mozdev.org/gestures/installation.html

    Options of All-in-One Gestures screen shot

    常用的和 MyIE 大致相同

    按右鍵上 開新 tab
    按右鍵下 開新視窗
    按右鍵左 上一頁
    按右鍵右 下一頁
    按右鍵上左 上一個 tab
    按右鍵上右 下一個 tab
    按右鍵下右 關閉視窗
    在link上, 按右鍵上, 開在新的 tab

    Posted by pank at 01:35 PM | Comments (0)

    June 15, 2004

    GNOME 取消視窗動畫

    這個設定找好久, 原來中文翻譯翻得不好, 容易讓人誤解
    Mandrake Linux
    系統/設定/GNOME/進階/面板
    取消 抽屜及面板可平滑移動

    Posted by pank at 11:41 PM | Comments (0)

    June 10, 2004

    Godaddy's Email forward service

    最近 GoDaddy 提供 domain 的免費附加服務: Email forward
    可以把 user@domain 的 mail 轉到其他地方

    MX 設定
    IN MX 0 smtp.secureserver.net.
    IN MX 20 mailstore1.secureserver.net.

    再到 Godaddy 的網頁上設定 Email forward, 沒有先做好上面的 MX 設定, 檢查 MX 時就會 pending

    自架 mail server 時, 可利用此功能, 等於是有備援的機制
    在設定 MX 時, 要先照上面的設定, Email forward 設完後再來改 MX

    IN MX 0 mx1.pank.org.
    IN MX 5 mx2.pank.org.
    IN MX 10 smtp.secureserver.net.
    IN MX 20 mailstore1.secureserver.net.

    如此 mail 會先 try mx1, mx2 (自架的 mail server), 若掛了, 會 try godaddy 的 server,
    進而 forward 到你指定的 mail, 這樣一來, 就不用擔心自架 server, 而 mail 收不到的情形

    Posted by pank at 11:39 AM | Comments (0)

    June 07, 2004

    iptables rule issue

    內部網路環境 192.168.0.0/24, 要阻檔內部連外的 tcp port 2000-20000
    使用下面這個 rule , 看似正確, 而嚴格說起來這樣的 rule 是有問題的
    iptables -A FORWARD -p tcp --dport 2000:20000 -j DROP

    為什麼?
    因為有可能誤檔回來封包的連線, 有一個連線 sport 3000, dport 80
    這封包就出得去, 但是回不來, 因為回來的封包符合上面的 rule
    正確的做法應該用
    iptables -A FORWARD -s 192.168.0.0/24 -p tcp --dport 2000:20000 -j DROP

    Posted by pank at 09:48 AM | Comments (0)

    June 04, 2004

    robots.txt

    disable webcrawler (ex. googlebot) access your page
    http://www.robotstxt.org/wc/norobots.html
    http://www.google.com.tw/intl/zh-TW/faq.html#robots

    Posted by pank at 11:49 PM | Comments (0)

    May 28, 2004

    dos2unix, unix2dos 對應指令

    dos2unix, unix2dos 用在 DOS <=> UNIX text file 轉換
    DOS 格式 0d 0a
    UNIX 格式 0a
    有時手邊無此工具, 可用功能相同的指令組合
    dos2unix:
    sed -i "s/\r//" file
    or
    cat file | col -b > newfile
    or
    cat file | tr -d "\r" > newfile
    cat file | tr -d "\015" > newfile

    unix2dos:
    sed -i "s/$/\r/" file
    sed -i "s/$/\x0d/" file

    以上適用 GNU sed, FreeBSD 下的 sed 不適用

    Posted by pank at 11:25 AM | Comments (0)

    May 25, 2004

    [shell] while 讀入檔案表示法

    while read i
    do
       echo $i
    done < file

    和下列效果一樣
    for i in `cat file`
    do
       echo $i
    done

    Posted by pank at 05:12 PM | Comments (0)

    May 24, 2004

    php 條件式字串表示

    (expression?"string when expression=true":"string when expression=false");

    ex.
    echo ($a=="yes"?"YES":"NO");
    當 $a = yes 時, 會秀出 YES, 否則會秀出 NO

    Posted by pank at 03:34 PM | Comments (0)

    May 18, 2004

    zip tgz bz2 file header

    zip
    50 4b 03 04 0a

    tgz
    1f 8b 08 00

    bz2
    42 5a 68 39 31 41 59 26 53 59 | BZh91AY&SY

    Posted by pank at 06:44 PM | Comments (0)

    May 17, 2004

    md4

    openssl dgst -md4 {file}

    Posted by pank at 05:17 PM | Comments (0)

    May 13, 2004

    smb.conf lanman auth

    當 samba 有設密碼時
    (security = user, encrypt passwords = yes, smb passwd file = smbpasswd)
    這個參數要 yes, Windows 9x 才能連

    lanman auth (G)
    This parameter determines whether or not smbd will attempt to
    authenticate users using the LANMAN password hash. If disabled,
    only clients which support NT password hashes (e.g. Windows
    NT/2000 clients, smbclient, etc... but not Windows 95/98 or the
    MS DOS network client) will be able to connect to the Samba
    host.

    Default : lanman auth = yes

    Posted by pank at 10:15 AM | Comments (0)

    May 05, 2004

    getopt example

    getopt 是 shell 裡抓參數的好工具
    例: getopt abc:d: 容許參數 -a -b -c -d, -c and -d 後面要接參數

    #!/bin/sh
    set - `getopt abc:d: $*`
    while true
    do
    case $1 in
    -a)
    echo option -a
    shift
    ;;
    -b)
    echo option -b
    shift
    ;;
    -c)
    echo option -c=$2
    shift 2
    ;;
    -d)
    echo option -d=$2
    shift 2
    ;;
    --)
    shift
    break
    ;;
    *)
    echo "error!"
    exit 1
    ;;
    esac
    done

    執行結果
    # ./go -a
    option a
    # ./go -c jack
    option -c=jack
    # ./go -b -c jack
    option -b
    option -c=jack
    # ./go -b -c test -d
    getopt: option requires an argument -- d
    option -b
    option -c=test
    (使用後面要加參數的 option 會提示)
    # ./go -b -c test -f
    getopt: invalid option -- f
    option -b
    option -c=test
    (使用未支援的參數會提示)

    Posted by pank at 05:30 PM | Comments (0)

    Mozilla 系列軟體啟動時問你要使用那個設定檔, 又說有人在使用

    cd 個人目錄/.mozilla/設定檔名稱/
    cd *
    rm lock


    cd /root/.thunderbird/default
    cd 6srdw22r.slt
    rm lock

    Posted by pank at 09:19 AM | Comments (0)

    May 03, 2004

    postfix canonical

    這個表格重寫 user@somesite 成 other@othesite

    在 main.cf 加入 canonical_maps = hash:/etc/postfix/canonical

    例一:將 alias name 重寫成 canonical name
    test@mail.teco-ia.com.tw test@teco-ia.com.tw
    (From: To: 均會重寫)
    例二: 當成 forward 使用
    test other@othesite

    postmap /etc/postfix/canonical 更新 canonical.db
    postfix reload 後生效

    ref: http://www.laushu.idv.tw/apple/teach/mail_server/postfix_b.html

    Posted by pank at 09:34 PM | Comments (0)

    April 28, 2004

    postfix relocated

    format
    username new location Taichung

    add this line to main.cf
    relocated_maps = hash:/etc/postfix/relocated

    to take effect
    postmap /etc/postfix/relocated
    postfix reload

    then mail to username, system will sned a returned mail said

    User has moved to new location Taichung

    Posted by pank at 10:46 PM | Comments (2)

    April 27, 2004

    ClamAV

    http://www.clamav.netdownload http://prdownloads.sourceforge.net/clamav

    command line scan tool
    /usr/local/bin/clamdscan
    command line scan tool, use with clamd, scan speed fast
    /usr/local/bin/clamscan
    virus pattern update tool
    /usr/local/bin/freshclam
    clamav daemon
    /usr/local/sbin/clamd
    lib
    /usr/local/lib/libclamav.so.1 -> libclamav.so.1.0.4
    /usr/local/lib/libclamav.so.1.0.4
    config
    /usr/local/etc/freshclam.conf
    /usr/local/etc/clamav.conf
    virus pattern
    /usr/local/share/clamav/daily.cvd
    /usr/local/share/clamav/main.cvd

    use clamassassin for mail scan
    http://drivel.com/clamassassin/

    To pass your mail through clamassassin, add the following command to your
    procmail rc file:

    :0fw
    | /usr/local/bin/clamassassin

    If you installed the program elsewhere, change the path. The above will
    scan the mesage for viruses and add the headers X-Virus-Status and
    X-Virus-Report as appropriate. Procmail then continues processing the
    message as normal. Nothing else will happen unless you add additional
    rules to sort or discard detected viruses. To do this, you might do the
    following:

    :0:
    * ^X-Virus-Status: Yes
    IN.virus


    ps. http://monkey.org/openbsd/archive/misc/0310/msg00002.html
    The following are the open source antivirus solution:

    (a) Open Antivirus
    http://www.openantivirus.org

    (b) Clam AV
    http://clamav.elektrapro.com

    (c) Trophie
    http://www.vanja.com/tools/trophie/
    (based on Trend Micro Virus scanning engine library)

    (d) Sophie
    http://www.vanja.com/tools/sophie/
    (based on Sophos SAVI AV interface)

    Posted by pank at 10:24 AM | Comments (0)

    April 26, 2004

    Google 改 UTF-8 編碼

    Google 最近改用 UTF-8 編碼
    以前可以用
    http://www.google.com/search?q=XXX 查詢
    現在直接用這樣使用中文會有亂碼

    現在要改成
    http://google.com/search?hl=zh-TW&ie=Big5&q=%s
    or (搜尋繁體中文)
    http://google.com/search?hl=zh-TW&ie=Big5&lr=lang_zh-TW&q=%s
    有用 MyIE2 的人可以到設定中心/快速搜尋裡面修改 * 的對應

    Posted by pank at 08:36 AM | Comments (0)

    April 25, 2004

    DNS wildcard setting

    *.test IN A 140.117.53.147

    就這麼簡單
    試過 bind, maradns 都可以適用

    Posted by pank at 10:40 PM | Comments (0)

    April 24, 2004

    MSN 6.2 fix

    Patch program for version 6.2.x download
    Patch program for version 6.x all version download

    // Multi-Open
    Find 0F 85 9C 00 00 00 6A
    Edit 90 E9 -- -- -- -- --

    // No-Ad set 1/3
    /*
    Find E8 ?? FD FF FF 53 68
    Edit 90 90 90 90 90 -- --
    */
    Find FD FF FF 53 68
    Edit 90 90 90 -- --
    再往前推 2 bytes, change to 90

    // No-Ad set 2/3
    Find 3B CB 74 07 6A 01 E8 (3 found, but only change 1st one)
    Edit -- -- EB -- -- -- --

    // No-Ad set 3/3
    Find 74 21 57 57
    Edit EB -- -- --

    Posted by pank at 11:13 PM | Comments (1)

    April 22, 2004

    dump, restore

    backup:
    dump -0ua -f {dumpfile} {device}

    restore:
    restore -r -f {dumpfile}
    restore -i -f {dumpfile}
    (-i interactive)

    Posted by pank at 10:06 PM | Comments (0)

    mktemp, mkstemp

    template 最後要是 XXXXXX
    mktemp 有安全性問題, 不要使用, man mktemp BUG 段, 需使用 mkstemp


    char temp[]="/tmp/temp-XXXXXX";
    mkstemp(temp);

    Posted by pank at 09:09 AM | Comments (0)

    April 20, 2004

    poptop

    http://www.poptop.org/

    tar zxvf pptpd-1.1.4-b4.tar.gz
    cd pptpd-1.1.4-b4
    ./configure&&make&&make install

    edit /etc/pptpd.conf
    # localip 是 server 的內部 IP
    localip 192.168.0.2
    # remoteip 配給 vpn client 的 IP
    remoteip 192.168.0.20-30
    pidfile /var/run/pptpd.pid

    if have firewall, add
    iptables -A INPUT -p gre -j ACCEPT
    iptables -A INPUT -p tcp --dport 1723 -j ACCEPT

    /etc/ppp/chap-secrets
    #帳號 servername 密碼 IP
    test pank.org 1111 *

    以上設定完成

    windows 在新增 VPN 連線後
    [內容]-[安全性]->要求資料加密 的選項不要打勾

    Posted by pank at 05:58 PM | Comments (0)

    April 19, 2004

    Softether

    http://www.softether.com/

    前幾個月有看到這個軟體, 當時沒有很注意, 剛剛翻了翻相關文件,
    這真是劃時代的軟體, 經由虛擬 hub , 可以連到 firewall 下的電腦,
    firewall 下的電腦, 連上虛擬 hub 後, 再也不受到任何現制.
    令人振奮亦令人震驚!
    衍生問題是系統安全性的問題, 舉個例子: 只要有人在公司內部裝這個軟體供外面連入,
    外面的人就可以直接穿過 firewall 對公司內部電腦進行存取.

    linux 版 virtual hub 安裝方法
    ref. http://www.softether.com/jp/linux/
    wget http://www.softether.com/jp/download/se_101_linux.zip
    unzip se_101_linux.zip
    gcc se_hub.a -lpthread -lssl -lcrypto -o se_hub
    ./se_hub &
    (ca.crt, ca.key 需在 se_hub 同一個目錄)

    管理
    telnet localhost 8023
    第一次會讓你設定密碼, 爾後請輸入密碼登入
    ------------------------------------------------------------
    SoftEther Virtual HUB Administration Console 1.00

    Copyright (C) 1997-2004 Daiyuu Nobori, All Rights Reserved.
    ------------------------------------------------------------

    http://www.softether.com/

    Note: Please use Microsoft Telnet Client (telnet.exe).

    Please enter Administrator Password.

    Password :


    ref. http://shoppingguide.ithome.com.tw/special/special2004-05-25-002.html
    利用弱點稽核軟體,檢查哪些主機有安裝SoftEther;防火牆可以從連結的主機那裡偵測到標示「SoftEther Protocol」的字串,了解哪些人正在使用SoftEther;SoftEther的作者表示,未來將開發檢查區域網路內是否有人在使用SoftEther的軟體。

    Posted by pank at 04:36 PM | Comments (2)

    April 15, 2004

    FTP client file size limit

    現在動不動就是上 G 的檔案, 很多軟體都會出現這個問題
    無法處理 size > 2147483647 的檔案(long integer)
    剛剛用 ncftp 試圖要傳一個 2.8G 的檔, 就掛了

    Solution:
    1. 抓官方 binary distributions
    2. 自行 make with -D_LARGEFILE_SOURCE

    Posted by pank at 07:15 PM | Comments (2)

    bind - delegate a sub domain

    sub IN NS ns.sub.pank.org.
    ns.sub IN A 61.220.92.130

    Posted by pank at 03:35 PM | Comments (0)

    April 13, 2004

    fetchyahoo & yahoopops

    http://fetchyahoo.sourceforge.net/
    需安裝下列 RPM (以 mdk 9.2 為例)
    perl-Crypt-SSLeay-0.49-1mdk.i586.rpm
    perl-IO-stringy-2.108-4mdk.noarch.rpm
    perl-MailTools-1.58-1mdk.noarch.rpm
    perl-MIME-tools-5.411-4mdk.noarch.rpm

    Usage:
    fetchyahoo --username=username --password=password --spoolfile=/var/mail/username

    http://yahoopops.sourceforge.net/
    台灣 yahoo 不能收, 必須英文 YAHOO 的個人設定網頁登入,再編輯你的會員資料,將你的使用語言改成 English-US 後儲存設定
    或用下面這個修正(for windows)
    http://myweb.hinet.net/home5/daemon9/YahooPOPs-0.5-tw.htm

    for windows
    在 Mail Client 把 SMTP server 設成 localhost, pop

    for linux
    YAHOOPOPS_PORTNUMBER 5058
    YAHOO_SMTP_PORT 5059
    在 Mail Client 把 SMTP server 設成 localhost, port 為 5058

    Posted by pank at 11:06 PM | Comments (0)

    April 09, 2004

    Postfix-SMTP-AUTH-TLS-Howto

    http://www.projektfarm.com/en/support/howto/postfix_smtp_auth_tls.html
    大部分的分件都沒有提到 TLS 需要 patch, 這篇文章寫得滿仔細的

    以下是整理過的步驟

    取得檔案( 原文中有些 URL 已無效)
    wget http://www.openssl.org/source/openssl-0.9.7c.tar.gz
    wget ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/cyrus-sasl-2.1.18.tar.gz
    wget ftp://ftp.aet.tu-cottbus.de/pub/postfix_tls/related/postfix/postfix-2.0.18.tar.gz
    wget ftp://ftp.aet.tu-cottbus.de/pub/postfix_tls/pfixtls-0.8.16-2.0.18-0.9.7c.tar.gz

    解壓檔案
    tar zxf openssl-0.9.7c.tar.gz
    tar zxf cyrus-sasl-2.1.18.tar.gz
    tar zxf postfix-2.0.18.tar.gz
    tar zxf pfixtls-0.8.16-2.0.16-0.9.7b.tar.gz

    編譯 openssl
    cd openssl-0.9.7c
    ./config
    make
    make install

    編譯 cyrus-sasl-2
    cd ../cyrus-sasl-2.1.18
    ./configure --enable-anon --enable-plain --enable-login --with-saslauthd=/var/run/saslauthd --with-pam --with-openssl=/usr/local/ssl --with-plugindir=/usr/local/lib/sasl2 --enable-cram --enable-digest
    make
    make install

    [ -d /usr/lib/sasl2 ] && mv /usr/lib/sasl2 /usr/lib/sasl2_orig
    ln -s /usr/local/lib/sasl2 /usr/lib/sasl2
    printf "pwcheck_method:saslauthd\nmech_list: plain login digest-md5\n" > /usr/local/lib/sasl2/smtpd.conf

    編譯 postfix (含 tls patch)
    cd ../postfix-2.0.18
    useradd postfix
    groupadd postdrop
    patch -p1 < ../pfixtls-0.8.16-2.0.18-0.9.7c/pfixtls.diff
    make makefiles CCARGS="-DHAS_SSL -DUSE_SASL_AUTH -I/usr/local/include/sasl -I/usr/local/ssl/include" AUXLIBS="-L/usr/local/ssl/lib -L/usr/local/lib -R/usr/local/lib -lsasl2 -lssl -lcrypto"
    make
    make install
    cp /etc/postfix/aliases /etc/
    newaliases
    mkdir -p /var/spool/postfix/etc
    cd /etc
    cp localtime services hosts resolv.conf /var/spool/postfix/etc
    mkdir -p /var/spool/postfix/var/run/saslauthd
    chmod 755 /var/spool/postfix/var/run/saslauthd
    ln -s /var/spool/postfix/var/run/saslauthd /var/run/saslauthd

    產生 certificate files for TLS
    cd /etc/postfix
    openssl req -new -x509 -nodes -out smtpd.pem -keyout smtpd.pem -days 3650

    編輯 /etc/postfix/main.cf 加入下列
    # SASL
    smtpd_sasl_auth_enable=yes
    smtpd_recipient_restrictions=permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination
    smtpd_sasl_security_options=noanonymous
    broken_sasl_auth_clients=yes
    # TLS
    smtp_use_tls = yes
    smtpd_use_tls = yes
    smtp_tls_note_starttls_offer = yes
    smtpd_tls_key_file = /etc/postfix/smtpd.pem
    smtpd_tls_cert_file = /etc/postfix/smtpd.pem
    smtpd_tls_CAfile = /etc/postfix/smtpd.pem
    smtpd_tls_loglevel = 1
    smtpd_tls_received_header = yes
    smtpd_tls_session_cache_timeout = 3600s
    tls_random_source = dev:/dev/urandom

    啟動 postfix 及 saslauthd
    postfix start
    saslauthd -a shadow

    測試
    telnet localhost 25

    220 pank.idv.tw ESMTP Postfix
    ehlo 0
    250-pank.idv.tw
    250-PIPELINING
    250-SIZE 10485760
    250-VRFY
    250-ETRN
    250-STARTTLS
    250-AUTH LOGIN PLAIN DIGEST-MD5
    250-AUTH=LOGIN PLAIN DIGEST-MD5
    250-XVERP
    250 8BITMIME

    看起來正常, 再測試認證, 使用者名稱 pank, 密碼 test
    取得編碼後字串 printf 'pank\0pank\0test' | mmencode
    得到 cGFuawBwYW5rAHRlc3Q=
    (使用這個方法測試時, 用數字 0-7 開頭的密碼會認證錯誤, 原因不明.
    而事實上, 使用上述密碼在 smtp auth 上是沒問題的)

    telnet localhost 25

    220 pank.idv.tw ESMTP Postfix
    ehlo 0
    250-pank.idv.tw
    250-PIPELINING
    250-SIZE 10485760
    250-VRFY
    250-ETRN
    250-STARTTLS
    250-AUTH LOGIN PLAIN DIGEST-MD5
    250-AUTH=LOGIN PLAIN DIGEST-MD5
    250-XVERP
    250 8BITMIME
    auth plain cGFuawBwYW5rAHRlc3Q=
    235 Authentication successful

    已正常運作

    若是 failed, 就看 log 查原因

    ref. Postfix/TLS - A TLS extension for POSTFIX

    Posted by pank at 02:52 PM | Comments (0)

    Sticky bit

    http://www.study-area.net/linux/system/linux_fs.htm

    1﹐則為檔案設上一個特殊標籤﹕sticky bit (黏著位元)﹐當這個標籤打開的時候﹐只有檔
    案的擁有者才能刪除這個檔案(root 除外)﹐其它使用者就算具有 w 的權限﹐也只能修改檔
    案的內容﹐而不能將檔案刪除。如果一個目錄具有這個位元﹐那麼其下所建立的檔案﹐也具
    有這個屬性。

    Posted by pank at 09:37 AM | Comments (0)

    April 08, 2004

    pure-ftpd --with-virtualchroot

    ./configure --with-virtualchroot
    此參數讓 link 不受 chroot 的限制, 好用
    http://www.pureftpd.org/README

    --with-virtualchroot: usually, when an user is chrooted (-A and -a
    options), it's impossible to go out of his home directory. Enabling that
    feature makes it possible: symbolic links are always followed, even if they
    are pointing to directories not located in the user's home directory. This
    is very useful for having shared directories (for instance, have a symbolic
    link to /var/incoming in every home directory) .
    This feature isn't enabled by default.

    ./configure --with-sysquotas
    使用系統 quota

    Posted by pank at 02:22 PM | Comments (0)

    April 07, 2004

    chattr

    i 屬性 Immutable, 無法刪除或改變
    a 屬性 Append only

    ex.
    chattr -R +i /bin /boot /etc /lib /sbin
    chattr -R +i /usr/bin /usr/include /usr/lib /usr/sbin
    chattr +a /var/log/messages /var/log/secure

    Posted by pank at 02:50 PM | Comments (0)

    April 05, 2004

    postfix transport

    例一
    Server test.pank.org
    MX 設到 tecoia.com.tw
    Server tecoia.com.tw
    mydestination 設上 test.pank.org
    transport 檔設 test.pank.org smtp:[pank.org] ([] disable MX lookup)
    postmap /etc/postfix/transport

    信件就會先經過 tecoia.com.tw (可做過濾掃毒等動作), 再送到 test.pank.org

    relay 的應用
    bbs.fcu.edu.tw relay:[mail.nsysu.edu.tw]

    要送到 someone@bbs.fcu.edu.tw 的信件, 會 relay 給 mail.nsysu.edu.tw

    例二
    所有的信送給上游 smtp, 除了本身及 server6.com.tw
    server6.com.tw :
    teco-ia.com.tw :
    * :[ms1.hinet.net]

    ps. 有異動需執行 postmap transport 及 postfix reload 動作

    Posted by pank at 10:43 PM | Comments (0)

    March 17, 2004

    好用的 X window 字型管理工具 ttfm

    http://www.study-area.org/tips/setfont/index.html

    wget ftp://cle.linux.org.tw/pub/CLE/i386/RedHat/RPMS/ttfm-1.0-6.i386.rpm
    rpm -ivh ttfm-1.0-6.i386.rpm

    自 MS Windows 取得 mingliu.ttc
    ttfm --add mingliu.ttc

    編輯 /etc/X11/XF86Config-4
    Section "Files"
    FontPath "/usr/X11R6/lib/X11/fonts/TrueType"
    FontPath "/usr/X11R6/lib/X11/fonts/misc:unscaled"
    FontPath "/usr/X11R6/lib/X11/fonts/75dpi:unscaled"
    FontPath "/usr/X11R6/lib/X11/fonts/100dpi:unscaled"
    FontPath "/usr/X11R6/lib/X11/fonts/misc"
    FontPath "/usr/share/fonts/ja/TrueType"
    FontPath "/usr/share/fonts/zh_TW/TrueType"
    # FontPath "unix/:7100"
    EndSection

    Section "Module"
    Load "dbe"
    Load "GLcore"
    Load "dri"
    Load "glx"
    Load "extmod"
    # Load "freetype"
    # Load "type1"
    Load "xtt" #←加入這一列
    EndSection

    裝完細明體, 設好後, 字會糊糊的, 若是用 GNOME, 要修改
    /etc/gnome/gnomerc
    把 XFT 拿掉...
    在 gnome-session 前加入
    export GDK_USE_XFT=0

    修改預設輸入法為倉頡
    編輯 /etc/chinese/xcin/xcinrc
    把 DEFAULT_IM 改為 cj

    (define zh_TW.Big5
    '((DEFAULT_IM "cj")

    Posted by pank at 02:00 PM | Comments (0)

    使用 PCMCIA wireless card + hostap 架設 AP

    先準備一張 intersil chip 的 pcmcia wireless 卡
    以下是從 hostap driver 裡的 hostap_cs.conf 裡面列舉的卡(參考文章最後)

    編譯 kernel
    kernel 不要用 patch 的方式 (我沒試成功過), 獨立 make modules, 用 load modules 方式載入
    make menuconfig
    開啟 General setup ---> PCMCIA/CardBus support
    開啟 Network device support ---> Wireless LAN (non-hamradio) ---> [*] Wireless LAN (non-hamradio) 其下設定不要勾選(因為要用模組載入)

    編譯 hostap driver
    wget http://hostap.epitest.fi/releases/hostap-driver-0.3.7.tar.gz
    解開 make
    make KERNEL_PATH=/usr/src/linux-2.4.xx
    在 driver/modules 會產生所需的 hostap .o 檔
    將 .o 檔 copy 至 /lib/modules/`uname -r`
    cp driver/etc/hostap_cs.conf /etc/pcmcia

    安裝 wireless tools
    可直接使用 wireless-tools rpm 或到 Wireless Tools for Linux 下載 tar ball 安裝

    使用新編好的 kernel 開機, 啟動 pcmcia (service pcmcia start)

    AP 的 prototype 就出來了

    使用 iwpriv 作 ACL
    iwpriv wlan0 maccmd
       0: open policy for ACL (default)
       1: allow policy for ACL
       2: deny policy for ACL
       3: flush MAC access control list
       4: kick all authenticated stations

    iwpriv wlan0 addmac
       add mac addr into access control list

    iwpriv wlan0 delmac
       remove mac addr from access control list

    ref. Host AP website | Host AP readme

    2005-04-08 update

    hostap_cs.conf 裡面列舉的卡

    card "Intersil PRISM2 Reference Design 11Mb/s WLAN Card"
    card "Compaq WL100 11Mb/s WLAN Card"
    card "Compaq WL200"
    card "EMTAC A2424i 11Mbps WLAN Card"
    card "Linksys WPC11 11Mbps WLAN Card"
    card "Linksys WPC11 Ver 2.5 11Mbps WLAN Card"
    card "Linksys WPC11 Ver 3 11Mbps WLAN Card"
    card "Linksys WCF12 Wireless CompactFlash Card"
    card "D-Link DWL-650 11Mbps WLAN Card"
    card "D-Link DRC-650 11Mbps WLAN Card"
    card "ZoomAir 4100 11Mb/s WLAN Card"
    card "Addtron AWP-100 11Mbps WLAN Card"
    card "Samsung SWL2000-N 11Mb/s WLAN Card"
    card "SMC 2632W 11Mbps WLAN Card"
    card "BroMax Freeport 11Mbps WLAN Card"
    card "Z-Com XI300 11Mb/s WLAN Card"
    card "Zcomax XI-325H 200mW"
    card "3Com AirConnect PCI 777A"
    card "U.S. Robotics IEEE 802.11b PC-CARD"
    card "Longshine LCR-8531 11Mbps WLAN PCMCIA CARD"
    card "Philips 802.11b WLAN PCMCIA"
    card "Proxim RangeLAN"
    card "Buffalo WLI-CF-S11G"
    card "Level-One WPC-0100"
    card "Belkin 802.11b WLAN PCMCIA"
    card "Senao SL-2011CD/SL-2011CDPLUS"
    card "Fulbond Airbond XI-300B"
    card "Netgear MA401"

    Posted by pank at 01:58 PM | Comments (7)

    March 11, 2004

    imap make procedure

    make ipop3d imapd
    make slx SSLTYPE=nopwd

    make ipop3sd imapsd
    make slx SSLTYPE=none

    Posted by pank at 10:41 AM | Comments (0)

    March 05, 2004

    fatal: no SASL authentication mechanisms

    缺少 plugin
    裝上 libsasl2-plug-plain-2.1.12-1mdk.i586.rpm
    libsasl2-plug-crammd5-2.1.12-1mdk.i586.rpm
    即可

    -rw-r--r-- 1 nobody nogroup 11101 3月 6 2003 libsasl2-plug-anonymous-2.1.12-1mdk.i586.rpm
    -rw-r--r-- 1 nobody nogroup 12813 3月 6 2003 libsasl2-plug-crammd5-2.1.12-1mdk.i586.rpm
    -rw-r--r-- 1 nobody nogroup 25606 3月 6 2003 libsasl2-plug-digestmd5-2.1.12-1mdk.i586.rpm
    -rw-r--r-- 1 nobody nogroup 15567 3月 6 2003 libsasl2-plug-gssapi-2.1.12-1mdk.i586.rpm
    -rw-r--r-- 1 nobody nogroup 11382 3月 6 2003 libsasl2-plug-login-2.1.12-1mdk.i586.rpm
    -rw-r--r-- 1 nobody nogroup 14042 3月 6 2003 libsasl2-plug-ntlm-2.1.12-1mdk.i586.rpm
    -rw-r--r-- 1 nobody nogroup 32779 3月 6 2003 libsasl2-plug-otp-2.1.12-1mdk.i586.rpm
    -rw-r--r-- 1 nobody nogroup 11435 3月 6 2003 libsasl2-plug-plain-2.1.12-1mdk.i586.rpm
    -rw-r--r-- 1 nobody nogroup 12723 3月 6 2003 libsasl2-plug-sasldb-2.1.12-1mdk.i586.rpm
    -rw-r--r-- 1 nobody nogroup 29700 3月 6 2003 libsasl2-plug-srp-2.1.12-1mdk.i586.rpm
    -rw-r--r-- 1 nobody nogroup 26794 3月 6 2003 libsasl7-1.5.28-5mdk.i586.rpm
    -rw-r--r-- 1 nobody nogroup 8294 3月 6 2003 libsasl7-plug-anonymous-1.5.28-5mdk.i586.rpm
    -rw-r--r-- 1 nobody nogroup 11149 3月 6 2003 libsasl7-plug-crammd5-1.5.28-5mdk.i586.rpm
    -rw-r--r-- 1 nobody nogroup 19790 3月 6 2003 libsasl7-plug-digestmd5-1.5.28-5mdk.i586.rpm
    -rw-r--r-- 1 nobody nogroup 11964 3月 6 2003 libsasl7-plug-gssapi-1.5.28-5mdk.i586.rpm
    -rw-r--r-- 1 nobody nogroup 9317 3月 6 2003 libsasl7-plug-login-1.5.28-5mdk.i586.rpm
    -rw-r--r-- 1 nobody nogroup 9345 3月 6 2003 libsasl7-plug-plain-1.5.28-5mdk.i586.rpm

    Pre-requisites
    The first thing you need to do is have a version of postfix installed that has SASL support enabled. Recently, MandrakeSoft issued updates to postfix that provided fixed SASL support for 8.1 and introduced SASL support in 8.0 (for more information, view the advisory, MDKA-2002:003). These versions of postfix (postfix-20010228-6.2mdk for 8.0 and postfix-200102280-15.2mdk for 8.1) provide proper SASL support and can be upgraded via MandrakeUpdate. You will also need the Cyrus SASL library files, which you can also obtain from updates due to a security fix (MDKSA-2002:018). These updates are available for 8.0 and 8.1 also.

    You will need to have the basic components installed: cyrus-sasl and libsasl7. To enable the authentication methods, you will need the appropriate plugin. For example, to enable CRAM-MD5 authentication, you will need to install the libsasl7-plug-crammd5 package; for PLAIN authentication, you will need the libsasl7-plug-plain package. You can install the specific plugin you wish, or simply download and install all of the plugins (anonymous, crammd5, digestmd5, login, or plain).

    Once you have upgraded and/or installed the appropriate packages, you're ready to configure postfix and Cyrus SASL. 8.2 users can install postfix and the SASL packages from their install CDs.

    Posted by pank at 05:36 PM | Comments (0)

    smtp auth check

    [root@test root]# printf 'pank\0pank\0test' | mmencode
    cGFuawBwYW5rAHRlc3Q=
    [root @test root]# telnet localhost 25
    telnet localhost 25
    Trying 127.0.0.1...
    Connected to localhost.
    Escape character is '^]'.
    220 teco-ia.com.tw ESMTP Postfix
    ehlo 0
    250-teco-ia.com.tw
    250-PIPELINING
    250-SIZE 20971520
    250-VRFY
    250-ETRN
    250-STARTTLS
    250-AUTH LOGIN PLAIN DIGEST-MD5
    250-AUTH=LOGIN PLAIN DIGEST-MD5
    250-XVERP
    250 8BITMIME
    auth plain cGFuawBwYW5rAHRlc3Q=
    235 Authentication successful <==如果出現這一行就表示你的 SMTP 已經運作正常
    quit

    (使用這個方法測試時, 用數字 0-7 開頭的密碼會認證錯誤, 原因不明.
    而事實上, 使用上述密碼在 smtp auth 上是沒問題的)

    ref.
    http://pank.org/blog/archives/000170.html

    Posted by pank at 02:35 PM | Comments (0)

    March 02, 2004

    Postfix SASL

    master.conf 裡

    smtp inet 這一行的參數, 第二個和第三個為 n, sasl 功能才會正常

    smtp inet n n n - -

    Posted by pank at 05:01 PM | Comments (0)

    February 26, 2004

    html 信件

    MIME-Version, Content-Type header 為 html 信件必備, 缺一 html 信無法正常顯示

    cat $TEMP | formail -k -X From -X To -X Subject -X MIME-Version -X Content-Type -I "To: $EMAIL" -I "Subject:$SUBJECT" | sendmail -t

    Posted by pank at 11:43 AM | Comments (0)

    February 24, 2004

    ftp daemon when anonymous login failed

    Login failed.
    No control connection for command: No such file or directory
    當出現上述, 表示 /etc/passwd 裡 ftp 帳號的 home 目錄不存在

    Posted by pank at 10:10 AM | Comments (0)

    February 19, 2004

    自解 script 範例

    把以下存成 script 檔 test.sh, 把壓好的 file.tgz 附加在後面 cat file.tgz >> test.sh
    exit 0 以上的地方可以再加任意指令

    #!/bin/sh
    tail +$((`grep -an "^### end of script" $0 | head -1 | cut -d: -f1`+1)) $0 | tar zxf -


    exit 0
    ### end of script ### by pank

    Posted by pank at 01:12 PM | Comments (0)

    January 22, 2004

    innd 新增/刪除 群組

    ctlinnd newgroup {groupname}
    ctlinnd rmgroup {groupname}

    Posted by pank at 12:04 AM | Comments (0)

    January 20, 2004

    reload usb modules

    rmmod usb-uhci
    rmmod usb-storage
    rmmod sd_mod
    rmmod scsimon
    rmmod scsi_mod
    rmmod usbcore
    modprobe usbcore
    modprobe scsi_mod
    modprobe scsimon
    modprobe sd_mod
    modprobe usb-storage
    modprobe usb-uhci

    Posted by pank at 02:12 PM | Comments (0)

    January 19, 2004

    ipnat.conf

    map rl0 from 192.168.0.0/24 to 192.168.1.0/24 -> 192.168.1.2/32
    map xl0 from 192.168.0.0/24 to 192.168.15.0/24 -> 192.168.15.2/32
    #map rl0 192.168.0.0/24 -> 140.109.231.55/32 portmap tcp/udp 1025:65000
    map rl0 192.168.0.0/24 -> 0/32 portmap tcp/udp auto
    map rl0 192.168.0.0/24 -> 0/32
    map rl0 192.168.15.0/24 -> 0/32 #portmap tcp/udp auto
    rdr rl0 0/0 port 3389 -> 192.168.0.6 port 3389 tcp
    rdr rl0 0/0 port 80 -> 192.168.0.5 port 80 tcp

    Posted by pank at 06:31 PM | Comments (0)

    January 13, 2004

    nmblookup

    nmblookup -A IP 可由 IP 查 windows 電腦名稱, 群組資訊
    nmblookup [電腦名稱] 可查 IP

    PS. nmblookup 在 samba-client rpm 內

    Posted by pank at 05:28 PM | Comments (0)

    gurb with usb device

    當有 usb device 時, 序號是 ide 優先, 例如要有兩顆 hd, 一顆 ide, 一顆 usb 外接,
    ide hd 是 hd0
    usb hd 是 hd1

    Posted by pank at 02:36 PM | Comments (0)

    January 08, 2004

    multiterm330b 過期破解

    CS:46F5C3 3D92050000 CMP EAX,0000592
    CS:46F5C8 7E20 JLE 0046F5EA
    CS:46F5CA 6A00 PUSH 00

    在 CS:46F5C8 需跳

    Find 7E 20 6A 00
    Edit EB -- -- --

    2004 年追加

    CS:XXXXXX 3D93050000 CMP EAX,0000592
    CS:XXXXXX 7E0C JLE XXXXXXXX

    Find 7E 0C 8B 83 A8
    Edit EB -- -- -- --

    Posted by pank at 09:53 AM | Comments (0)

    January 06, 2004

    PowertoyXP resize picture 修改

    %windir%\system32\phototoys.dll

    把第四選項 240x320 改成 976x976

    Find F0 00 00 00 40 01
    Edit D0 03 00 00 D0 03

    Posted by pank at 12:23 AM | Comments (0)

    January 05, 2004

    suck 的簡易設定

    REMOTE_HOST=news.nsysu.edu.tw
    LOCAL_HOST=localhost

    SPOOLDIR=/var/spool/news/articles # base directory for articles to be rposted
    NEWSDIR=/usr/local/news # base directory for news binaries
    BASEDIR=/usr/local/news/nsysu # base directory for scripts and data files

    total 24
    drwxr-xr-x 3 root wheel 512 Jan 5 08:04 .
    drwxr-xr-x 15 root wheel 512 Jan 4 22:50 ..
    drwx------ 2 root wheel 1536 Jan 5 07:47 Msgs
    -rw-r--r-- 1 root wheel 635 Jan 5 08:04 active-ignore
    -rw-r--r-- 1 root wheel 7604 Jan 5 08:04 sucknewsrc
    -rw-r--r-- 1 root wheel 7670 Jan 5 07:27 sucknewsrc.old

    Posted by pank at 08:05 AM | Comments (0)

    December 30, 2003

    bootsplash 筆記

    /etc/rc.d/init.d/functions
    initsplash()
    . /etc/bootsplash/themes/$theme/config/bootsplash-`fbresolution`.cfg

    開機畫面是放在 silentjpeg=

    ref. bootsplash
    http://pank.org/blog/archives/000035.html

    Posted by pank at 10:05 PM | Comments (0)

    December 23, 2003

    gallery 調成 4x3

    修改 album.dat
    "rows";s:1:"3";s:4:"cols";s:1:"4"
    修改其中的 "3" "4"

    Posted by pank at 09:09 AM | Comments (0)

    December 19, 2003

    hotkey 設定 in inittab

    ex.

    kb::kbrequest:/sbin/shutdown -h now
    in /etc/inittab, and

    control alt keycode 79 = KeyboardSignal
    control alt keycode 107 = KeyboardSignal

    in their keymap. Now Ctrl-Alt-End will do a system shutdown

    Posted by pank at 04:22 PM | Comments (0)

    修改 X keyboard mapping

    ex.
    xmodmap -e "keycode 22 = 5 percent"

    Posted by pank at 02:13 PM | Comments (0)

    console 遇亂碼還原方法

    當 console 變成一些如下面這樣的亂碼時

    ⎼⎺⎺├@├␊␌⎺␋▒ ␍┌

    解決方法
    # cat
    ctrl-o
    ctrl-d
    ctrl-c

    或是 setterm -reset

    Posted by pank at 11:33 AM | Comments (0)

    December 11, 2003

    找出比某檔舊的檔案並刪除

    #!/bin/sh
    if [ -z $1 ] ; then
    echo "Usage: `echo $0` {file}"
    else
    if [ -f $1 ] ; then
    find *tgz \! -newer $1 -exec rm {} \;
    else
    echo File does not exist.
    fi
    fi

    Posted by pank at 09:34 AM | Comments (0)

    December 09, 2003

    netsh set IP

    http://support.microsoft.com/default.aspx?scid=%2Fdirectory%2Fworldwide%2Fzh-tw%2Ffaq%2F6420.asp

    DHCP
     
    netsh interface ip set address "區域連線" dhcp
    netsh interface ip set dns "區域連線" dhcp
    netsh interface ip set Wins "區域連線" dhcp
     
    Static IP
     
    netsh interface ip set address "區域連線" static 10.0.0.9 255.0.0.0 10.0.0.1 1
    netsh interface ip set dns "區域連線" static 10.0.0.9
    netsh interface ip set Wins "區域連線" static 10.0.0.9

    sample:

    [C:\]type dhcp.bat
    netsh interface ip set address "區域連線" dhcp
    netsh interface ip set dns "區域連線" dhcp
    netsh interface ip set wins "區域連線" dhcp

    [C:\]type static.bat
    netsh interface ip set address "區域連線" static 192.168.0.9 255.255.255.0 192.168.0.2 1
    netsh interface ip set dns "區域連線" static 192.168.0.2

    Posted by pank at 09:08 AM | Comments (1)

    December 08, 2003

    javascript location

    For self:
    location.href="whateva.htm";

    For blank:
    window.open="whateva.htm";

    For parent:
    parent.location.href="whateva.htm";

    For top:
    top.location.href="whateve.htm";

    For SomeFrame:
    parent.SomeFrame.location.href="whateva.htm";

    Meta refresh can't target a frame

    Problem: A meta refresh tag can't target a frame other than the current.

    Workaround: Use a JavaScript timed location change.

    Code Example: We have a frame named right. The delay is 3 seconds.


    setTimeout("top.right.location = 'p.html'", 3000);


    Note: Remember that top is a reserved word. So use names like upper and lower instead of top and bottom.

    Posted by pank at 02:58 PM | Comments (0)

    December 06, 2003

    procmail 達成 bcc

    作者: pank (7/7的情人) 看板: BSD
    標題: Re: 請問Procmail 可以設定所有信件自動備份一份給?…
    時間: Sat Dec 6 15:56:06 2003

    ※ 引述《TerryLiaw.bbs@Terry.dragon2.net (早睡早起)》之銘言:
    : ※ 引述《pank.bbs@77bbs.com (7/7的情人)》之銘言:
    : > ※ 引述《"Lotus" , 看板: BSD》之銘言:
    : > : 請教前輩 Procmail 可不可以設定為不管哪個USER收到信件 都直接會備份一份到
    某個USER
    : > : 請前輩提示 謝謝...
    : > 設定 always_bcc 參數
    : postfix 才有 always_bcc 可以用吧 ? :p

    sorry, 把 procmail 看成 postfix :p

    若是用 sendmail 搭配 procmail 備分到某信箱, 可以用

    :0c
    ! user@elsewhere

    這只能使用外部信箱, 不能使用本機帳號, 否則會有 loop 的情況發生

    要備分到本機帳號, 需加一段 header 作 check, 以避免信件 loop

    :0c
    * ! ^X-Loop: check
    | formail -A "X-Loop: check" | sendmail user

    當信件第一次進到 procmail 的 rule, 沒有 "^X-Loop: check" 的話,
    會上加去然後寄給 user, 第二次進到 procmail 的信(給 user 的),
    由於有 "^X-Loop: check", 就不會再加 "X-Loop: check" 並寄給 user.

    Posted by pank at 04:35 PM | Comments (0)

    December 03, 2003

    Tweak UI

    http://www.microsoft.com/windowsxp/pro/downloads/powertoys.asp

    Taskbar and Start menu
    Grouping 選第三個 Group any application with at least n windows
    n 若設大一點, 相當於取消 Grouping 功能

    Posted by pank at 06:35 PM | Comments (0)

    November 23, 2003

    Windows XP 兩台電腦建立ad-hoc連線的方法

    第一台電腦
    無線網路->慣用網路->新增, SSID 任意取一個名字, 如 test
    網路驗證: 已開啟
    資料加密: 停用
    進階: 只給電腦到電腦的網路

    第二台電腦
    重複上面的動作, SSID 取一樣即可

    Posted by pank at 01:52 AM | Comments (0)

    November 21, 2003

    USB keyboard support

    Input core support --->
    [*] Input core support
    [*] Keyboard support
    USB support --->
    [*] Support for USB
    [*] USB HIDBP Keyboard (basic) support
    勾選 OHCI Num Lock 燈號才會正常, 否則一直亮
    [*] OHCI (Compaq, iMacs, OPTi, SiS, ALi, ...) support

    Posted by pank at 04:15 PM | Comments (0)

    November 18, 2003

    php show client's browser language

    $_SERVER["HTTP_ACCEPT_LANGUAGE"]

    Posted by pank at 03:21 PM | Comments (0)

    November 17, 2003

    xdm

    server 端
    修改 /etc/X11/xdm/xdm-config
    改成 #DisplayManager.requestPort: 0
    啟動 xdm

    client 端
    X -query host
    X -broadcast

    client 端一開機就連
    3:2345:respawn:/usr/bin/X11/X -broadcast

    Posted by pank at 02:44 PM | Comments (0)

    November 14, 2003

    perl,sed replace, append sample

    在 ccc 後面加上一行 xxx

    # cat test
    aaa
    bbb
    ccc
    ddd

    # perl -pi -e "s/ccc/ccc\nxxx/" test

    # cat test
    aaa
    bbb
    ccc
    xxx
    ddd

    把 xxx 換成 yyy
    # perl -pi -e "s/xxx/yyy/" test

    # cat test
    aaa
    bbb
    ccc
    yyy
    ddd

    把檔案中含有 xxx 字串的下一行加上一行 new line
    # cat test
    aaa 111
    bbb 222
    ccc 333
    555 xxx 444
    ddd kkkkkkkkkkkkk
    xxx 666
    mmmmmmmmmmmmm
    lllllllllllllllllxxx
    eeeeeee

    # sed -e '/xxx/a\
    new line' test > test.tmp

    # mv test.tmp test

    # cat test
    aaa 111
    bbb 222
    ccc 333
    555 xxx 444
    new line
    ddd kkkkkkkkkkkkk
    xxx 666
    new line
    mmmmmmmmmmmmm
    lllllllllllllllllxxx
    new line
    eeeeeee

    Posted by pank at 09:06 AM | Comments (0)

    November 11, 2003

    postfix clean mail queue

    postsuper -d ALL

    Posted by pank at 02:10 PM | Comments (0)

    November 03, 2003

    apache + ssl + php (更新版)

    準備
    apache_1.3.29.tar.gz from http://httpd.apache.org/
    openssl-0.9.7c.tar.gz from http://www.openssl.org/
    php-4.3.3.tar.gz from http://www.php.net/
    mod_ssl-2.8.16-1.3.29.tar.gz from http://www.modssl.org/

    解壓全部
    cd openssl-0.9.7c
    ./config -fPIC
    make
    make install

    cd ../mod_ssl-2.8.16-1.3.29
    ./configure --with-apache=../apache_1.3.29 --with-ssl=../openssl-0.9.7c --prefix=/usr/local/apache

    cd ../apache_1.3.29
    ./configure --prefix=/usr/local/apache --sysconfdir=/usr/local/apache/conf --enable-module=so \
    --enable-shared=ssl --enable-module=ssl --enable-module=rewrite --enable-shared=rewrite
    make
    make certificate

    STEP 0: Decide the signature algorithm used for certificate
    The generated X.509 CA certificate can contain either
    RSA or DSA based ingredients. Select the one you want to use.
    Signature Algorithm ((R)SA or (D)SA) [R]:D (選 DSA)

    WARNING! You're generating a DSA based certificate/key pair.
    This implies that RSA based ciphers won't be available later,
    which for your web server currently still means that mostly all
    popular web browsers cannot connect to it. At least not until
    you also generate an additional RSA based certificate/key pair
    and configure them in parallel.
    ______________________________________________________________________

    STEP 1: Generating DSA private key (1024 bit) [server.key]
    Generating DSA private key via SnakeOil CA DSA parameters
    109338882 semi-random bytes loaded
    Generating DSA key, 1024 bits
    ______________________________________________________________________

    STEP 2: Generating X.509 certificate signing request [server.csr]
    You are about to be asked to enter information that will be incorporated
    into your certificate request.
    What you are about to enter is what is called a Distinguished Name or a DN.
    There are quite a few fields but you can leave some blank
    For some fields there will be a default value,
    If you enter '.', the field will be left blank.
    -----
    1. Country Name (2 letter code) [XY]:TW (輸入資訊)
    2. State or Province Name (full name) [Snake Desert]:Taiwan
    3. Locality Name (eg, city) [Snake Town]:Taipei
    4. Organization Name (eg, company) [Snake Oil, Ltd]:TECO
    5. Organizational Unit Name (eg, section) [Webserver Team]:IA
    6. Common Name (eg, FQDN) [www.snakeoil.dom]:www.teco-ia.com.tw
    7. Email Address (eg, name@FQDN) [www@snakeoil.dom]:root@teco-ia.com.tw
    8. Certificate Validity (days) [365]:10000 (填一個夠長的時間)
    Certificate Version 選 3

    STEP 3: Generating X.509 certificate signed by Snake Oil CA [server.crt]
    Certificate Version (1 or 3) [3]:3

    Encrypt the private key now? [Y/n] (選 n 啟動時才不用輸入密碼)
    make install

    cd ../php-4.3.3
    ./configure --with-mysql --with-apxs=/usr/local/apache/bin/apxs --enable-module=so \
    --with-config-file-path=/usr/local/etc --libexecdir=/usr/local/apache/libexec
    make install

    修改 httpd.conf

    在 DirectoryIndex 該行後加上 index.php

    新增
    LoadModule php4_module libexec/libphp4.so
    LoadModule ssl_module libexec/libssl.so
    AddModule mod_php4.c
    AddModule mod_ssl.c

    AddType application/x-httpd-php .php
    AddType application/x-httpd-php-source .phps

    加入 register_globals = on 到 php.ini
    echo "register_globals = on" >> /usr/local/etc/php.ini

    啟動 /usr/local/apache/bin/apachectl startssl

    Posted by pank at 09:19 AM | Comments (0)

    Postfix 的 MX relay

    master.cf 裡面要有這一行
    relay unix - - n - - smtp

    Posted by pank at 08:20 AM | Comments (0)

    thttpd 改 default charset 為 big5

    in FreeBSD , 修改 /usr/local/sbin/thttpd_wrapper
    加 -T big5

    Posted by pank at 08:18 AM | Comments (0)

    October 31, 2003

    Proftpd timeoute 修改

    TIMEOUTNOXFER 修改 include/option.h

    #ifndef PR_TUNABLE_TIMEOUTNOXFER
    # define PR_TUNABLE_TIMEOUTNOXFER 300
    #endif

    Posted by pank at 07:03 PM | Comments (0)

    KKman Google 版

    右上角廣告換成 Google
    下載 覆蓋原檔

    Posted by pank at 08:34 AM | Comments (0)

    October 30, 2003

    由 daemon 啟動 X 程式注意事項

    啟動前需設 DISPLAY 變數
    如 export DISPLAY=:0.0
    否則 X 程式無法在前景顯示

    Posted by pank at 04:21 PM | Comments (0)

    October 26, 2003

    找 > 100k 的檔案

    linux freebsd 不同

    linux
    find . -size +100k

    freebsd
    find . -size +102400c
    or
    find . -size +200
    (200x512=102400)

    Posted by pank at 06:28 PM | Comments (0)

    October 22, 2003

    postfix+procmail can't mail to root?

    http://www.postfix.org/faq.html#procmail

    Warning: if you use procmail in this manner, you must set up an alias for root that forwards mail for root to a real user. See the FAQ entry titled "Mail for root is delivered to nobody".

    Posted by pank at 07:31 AM | Comments (0)

    October 21, 2003

    beep

    printf "\a"
    or
    echo -en "\a" (linux only)

    Posted by pank at 02:02 PM | Comments (0)

    中華電信 GPRS 撥接

    number: *99#
    APN: internet

    [C:\]ping -n 10 168.95.1.1

    Pinging 168.95.1.1 with 32 bytes of data:

    Reply from 168.95.1.1: bytes=32 time=1191ms TTL=248
    Reply from 168.95.1.1: bytes=32 time=936ms TTL=248
    Reply from 168.95.1.1: bytes=32 time=858ms TTL=248
    Reply from 168.95.1.1: bytes=32 time=817ms TTL=248
    Reply from 168.95.1.1: bytes=32 time=775ms TTL=248
    Reply from 168.95.1.1: bytes=32 time=753ms TTL=248
    Reply from 168.95.1.1: bytes=32 time=730ms TTL=248
    Reply from 168.95.1.1: bytes=32 time=609ms TTL=248
    Reply from 168.95.1.1: bytes=32 time=587ms TTL=248
    Reply from 168.95.1.1: bytes=32 time=808ms TTL=248

    Ping statistics for 168.95.1.1:
    Packets: Sent = 10, Received = 10, Lost = 0 (0% loss),
    Approximate round trip times in milli-seconds:
    Minimum = 587ms, Maximum = 1191ms, Average = 806ms

    Posted by pank at 09:52 AM | Comments (0)

    October 06, 2003

    posfix make tip

    need db.h, in libdb3.3-devel-3.3.11-13mdk.i586.rpm
    need pcre.h, in libpcre0-devel-3.9-5mdk.i586.rpm

    Postfix + Cyrus-SASL
    http://www.cngnu.org/technology/Postfix_I.tw.html

    #!/bin/sh
    rm /usr/libexec/postfix/bounce
    rm /usr/libexec/postfix/cleanup
    rm /usr/libexec/postfix/error
    rm /usr/libexec/postfix/flush
    rm /usr/libexec/postfix/lmtp
    rm /usr/libexec/postfix/local
    rm /usr/libexec/postfix/master
    rm /usr/libexec/postfix/nqmgr
    rm /usr/libexec/postfix/pickup
    rm /usr/libexec/postfix/pipe
    rm /usr/libexec/postfix/proxymap
    rm /usr/libexec/postfix/qmgr
    rm /usr/libexec/postfix/qmqpd
    rm /usr/libexec/postfix/showq
    rm /usr/libexec/postfix/smtp
    rm /usr/libexec/postfix/smtpd
    rm /usr/libexec/postfix/spawn
    rm /usr/libexec/postfix/trivial-rewrite
    rm /usr/libexec/postfix/virtual
    rm /usr/sbin/postalias
    rm /usr/sbin/postcat
    rm /usr/sbin/postconf
    rm /usr/sbin/postfix
    rm /usr/sbin/postkick
    rm /usr/sbin/postlock
    rm /usr/sbin/postlog
    rm /usr/sbin/postmap
    rm /usr/sbin/postsuper
    rm /usr/sbin/postdrop
    rm /usr/sbin/postqueue
    rm /usr/sbin/sendmail
    rm /usr/bin/newaliases
    rm /usr/bin/mailq
    make clean
    make makefiles CCARGS="-DUSE_SASL_AUTH" AUXLIBS="-lsasl"
    make
    make install

    Posted by pank at 05:04 PM | Comments (0)

    September 16, 2003

    openssl file 加解密

    加密 openssl des -k password -in plainfile -out encryptfile
    解密 openssl des -k password -d -in encryptfile -out plainfile

    加密並壓縮
    openssl des -k password -in plainfile | gzip - > file.gz

    Posted by pank at 12:13 PM | Comments (0)

    September 15, 2003

    mke2fs -i -b -J 參數關係

    test script

    #!/bin/sh
    for b in 1024 2048 4096
    do
    for i in 1024 2048 4096
    do
    mke2fs -m0 -b $b -i $i -j /dev/hda1 > /dev/null 2>&1
    mount /dev/hda1 /mnt
    cp -a /devel/flash/conf /mnt
    cp -a /boot /mnt
    cp system.gz /mnt
    echo b=$b i=$i
    df -k | grep mnt
    df -i | grep mnt
    umount /mnt >/dev/null 2>&1
    sync
    done
    done


    b=1024 i=1024
    /dev/hda1 109363 45137 64226 42% /mnt
    /dev/hda1 125056 146 124910 1% /mnt
    b=1024 i=2048
    /dev/hda1 117171 45137 72034 39% /mnt
    /dev/hda1 62592 146 62446 1% /mnt
    b=1024 i=4096
    /dev/hda1 121075 45137 75938 38% /mnt
    /dev/hda1 31360 146 31214 1% /mnt
    b=2048 i=1024
    /dev/hda1 116820 45184 71636 39% /mnt
    /dev/hda1 65536 146 65390 1% /mnt
    b=2048 i=2048
    /dev/hda1 117196 45184 72012 39% /mnt
    /dev/hda1 62528 146 62382 1% /mnt
    b=2048 i=4096
    /dev/hda1 121100 45184 75916 38% /mnt
    /dev/hda1 31296 146 31150 1% /mnt
    b=4096 i=1024
    /dev/hda1 120928 45336 75592 38% /mnt
    /dev/hda1 32768 146 32622 1% /mnt
    b=4096 i=2048
    /dev/hda1 120928 45336 75592 38% /mnt
    /dev/hda1 32768 146 32622 1% /mnt
    b=4096 i=4096
    /dev/hda1 121116 45336 75780 38% /mnt
    /dev/hda1 31264 146 31118 1% /mnt

    加了 -j, 預設多了 4MB 的日誌
    b=1024 i=1024
    /dev/hda1 109363 49251 60112 46% /mnt
    /dev/hda1 125056 146 124910 1% /mnt

    -J size=1 是最小, 日誌最小為 1024 blocks, 即 -J size=1

    結論: 要空間佔最小, mkfs 後空間最大(但是 inode 較少), 日誌最小用
    mke2fs -b 1024 -i 8192 -J size=1

    Posted by pank at 12:08 PM | Comments (0)

    September 14, 2003

    MSN 6.1 beta

    NoAd fix download

    Find 74 13 6A 04
    Edit EB -- -- --

    Find 74 0A 8B 4E 4C
    Edit EB -- -- -- --

    Find 74 0A FF 76 04 E8 80
    Edit EB -- -- -- -- -- -- --

    Posted by pank at 11:13 PM | Comments (1)

    September 10, 2003

    Windows 2003 取消關機, 重開機輸入理由

    " 開始 -> 執行 , 鍵入 gpedit.msc ",出現群組原則物件編輯器
    在視窗左欄進入" 電腦設定 -> 系統管理範本 -> 系統 "
    將視窗右欄的" 顯示關機事件追蹤器 "改成" 已停用 "

    Posted by pank at 03:17 PM | Comments (0)

    initrd 做法

    範例環境
    欲製作的 system root directory 在 /systemroot
    size 大小為 32mb 的 initrd
    CF 在 /dev/hdc, 已格式化, 只有一個 partition /dev/hdc1
    boot loader 使用 grub

    Step 1: 製作 initrd loop device
    dd if=/dev/zero of=initrd bs=1024k count=32
    mke2fs -F -m0 -i 2048 initrd
    mount -o loop initrd /mnt

    Step 2: 複製系統至 initrd, 不含 kernel
    cp -a /systemroot/* /mnt
    umount /mnt

    Step 3: 壓縮 initrd, 產生 initrd.gz
    gzip -9 initrd

    Step 4: 將 kernel 及 initrd.gz 複製到目標(CF, DOM...etc.)
    mount /dev/hdc1 /mnt
    cp kernel initrd.gz /mnt

    Step 5: 安裝 boot loader
    cp -a /boot/grub /mnt
    printf "root (hd0,0)\nsetup (hd1)\nquit\n" | grub --no-floppy --batch

    Step 6: 設定開機設定(menu.lst)
    編輯 /mnt/grub/menu.lst 內容如下
    timeout 0
    default 0
    title linux
    root (hd0,0)
    kernel /kernel ramdisk_size=32768 root=/dev/ram0 quite
    initrd /initrd.gz

    Posted by pank at 11:37 AM | Comments (0)

    September 06, 2003

    gallery size

    976x732 best fit width for 1024x768 in gallery
    一般 page
    984x738 best fit width for 1024x768
    超過這個 size 就有水平 scroll bar

    Posted by pank at 12:32 AM | Comments (0)

    August 28, 2003

    Busybox 1.0 的 httpd

    強到沒力! 用 busybox 1.0 , 基本系統全部搞定
    http 還有 cgi 功能
    基本用法: httpd -h /documentroot -c /etc/httpd.conf

    /*
    * httpd implementation for busybox
    *
    * Copyright (C) 2002,2003 Glenn Engel
    * Copyright (C) 2003 Vladimir Oleynik
    *
    * simplify patch stolen from libbb without using strdup
    *
    * This program is free software; you can redistribute it and/or modify
    * it under the terms of the GNU General Public License as published by
    * the Free Software Foundation; either version 2 of the License, or
    * (at your option) any later version.
    *
    * This program is distributed in the hope that it will be useful,
    * but WITHOUT ANY WARRANTY; without even the implied warranty of
    * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
    * General Public License for more details.
    *
    * You should have received a copy of the GNU General Public License
    * along with this program; if not, write to the Free Software
    * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
    *
    *****************************************************************************
    *
    * Typical usage:
    * for non root user
    * httpd -p 8080 -h $HOME/public_html
    * or for daemon start from rc script with uid=0:
    * httpd -u www
    * This is equivalent if www user have uid=80 to
    * httpd -p 80 -u 80 -h /www -c /etc/httpd.conf -r "Web Server Authentication"
    *
    *
    * When a url contains "cgi-bin" it is assumed to be a cgi script. The
    * server changes directory to the location of the script and executes it
    * after setting QUERY_STRING and other environment variables. If url args
    * are included in the url or as a post, the args are placed into decoded
    * environment variables. e.g. /cgi-bin/setup?foo=Hello%20World will set
    * the $CGI_foo environment variable to "Hello World" while
    * CONFIG_FEATURE_HTTPD_SET_CGI_VARS_TO_ENV enabled.
    *
    * The server can also be invoked as a url arg decoder and html text encoder
    * as follows:
    * foo=`httpd -d $foo` # decode "Hello%20World" as "Hello World"
    * bar=`httpd -e ""` # encode as "<Hello World>"
    * Note that url encoding for arguments is not the same as html encoding for
    * presenation. -d decodes a url-encoded argument while -e encodes in html
    * for page display.
    *
    * httpd.conf has the following format:
    *
    * A:172.20. # Allow any address that begins with 172.20
    * A:10.10. # Allow any address that begins with 10.10.
    * A:10.20 # Allow any address that previous set and 10.200-209.X.X
    * A:127.0.0.1 # Allow local loopback connections
    * D:* # Deny from other IP connections
    * /cgi-bin:foo:bar # Require user foo, pwd bar on urls starting with /cgi-bin/
    * /adm:admin:setup # Require user admin, pwd setup on urls starting with /adm/
    * /adm:toor:PaSsWd # or user toor, pwd PaSsWd on urls starting with /adm/
    * .au:audio/basic # additional mime type for audio.au files
    *
    * A/D may be as a/d or allow/deny - first char case unsensitive
    * Deny IP rules take precedence over allow rules.
    *
    *
    * The Deny/Allow IP logic:
    *
    * - Default is to allow all. No addresses are denied unless
    * denied with a D: rule.
    * - Order of Deny/Allow rules is significant
    * - Deny rules take precedence over allow rules.
    * - If a deny all rule (D:*) is used it acts as a catch-all for unmatched
    * addresses.
    * - Specification of Allow all (A:*) is a no-op
    *
    * Example:
    * 1. Allow only specified addresses
    * A:172.20. # Allow any address that begins with 172.20
    * A:10.10. # Allow any address that begins with 10.10.
    * A:10.10 # Allow any address that previous set and 10.100-109.X.X
    * A:127.0.0.1 # Allow local loopback connections
    * D:* # Deny from other IP connections
    *
    * 2. Only deny specified addresses
    * D:1.2.3. # deny from 1.2.3.0 - 1.2.3.255
    * D:2.3.4. # deny from 2.3.4.0 - 2.3.4.255
    * A:* # (optional line added for clarity)
    *
    * If a sub directory contains a config file it is parsed and merged with
    * any existing settings as if it was appended to the original configuration
    * except that all previous IP config rules are discarded.
    *
    * subdir paths are relative to the containing subdir and thus cannot
    * affect the parent rules.
    *
    * Note that since the sub dir is parsed in the forked thread servicing the
    * subdir http request, any merge is discarded when the process exits. As a
    * result, the subdir settings only have a lifetime of a single request.
    *
    *
    * If -c is not set, an attempt will be made to open the default
    * root configuration file. If -c is set and the file is not found, the
    * server exits with an error.
    *
    */

    Posted by pank at 03:33 PM | Comments (2)

    August 27, 2003

    良好的備份

    想像一下, 當您的重要資料硬碟全部毀損時, 您的反應是
    1. 完了, 沒備份, 畢生心血付之一炬
    2. 還好有做備份, 不過是一個月前的資料
    3. 還好我每天做備份, 只有損失今天的進度

    3 才是良好的備份習慣

    unix 下可以用 tar, cp, rsync 配合 crontab 排程做備份工作
    Windows 下我推薦一套慣用的備份軟體 SecondCopy
    有多樣的備份方式(支援網芳、FTP)及自動排程

    備份有幾個要點
    1. 要異地備份 同一台電腦需備到不同的 HD 或 MO, 同一顆 HD 不同 partition
    的備份是沒有意義的, 現在硬碟不怎麼可靠
    2. 使用自動排程 手動備份的話, 就是上面說的 2 狀況, 人是懶惰且健忘的
    3. 只備份必要備份的資料 什麼是必要備份的資料?
    因人而異, 通常是個人產生的資料, 文件, 程式碼, 而這些資料量都不會很大
    相對的, 從網路上就拿得到的東西如軟體, 電影, MP3, 就是不需備份的
    4. 定期將個人資料整理, 燒成光碟

    目前的儲存煤體可靠度
    我認為是 MO > CDR、CDRW > DVD+/-、DVD+/-RW > Compact Flash > HD

    Posted by pank at 10:23 AM | Comments (0)

    August 21, 2003

    DNS 查不到?

    要兩個 lib
    /lib/libnss_dns*
    /lib/libresolv*
    缺一不可

    Posted by pank at 06:07 PM | Comments (0)

    August 20, 2003

    busybox 1.0 pre release

    busybox1.gif
    busybox 1.0 與 0.65 比起來, 真是進步很多 menuconfig 介面
    整合進tinylogin,udhcp
    又多了一些好用的工具如 awk, rpm, unzip, tar 的 gzip 及 bzip2 支援

    壓 tar czvf a.tgz files
    解 tar zxvf a.tgz -C /tmp


    Posted by pank at 11:29 AM | Comments (0)

    August 18, 2003

    can not poweroff ?

    BIOS 啟用 APM, kernel 有選 APM 支援, 應該就可以 poweroff,
    如果不行, 試試在 boot 參數加上 apm=power-off
    用 SMP 的話, 通常就要加上面那一行
    若還不行, 試試 http://acpi.sourceforge.net/
    patch 一下 kernel, 使用 ACPI , 應該就可以 poweroff 了
    old patches download

    Posted by pank at 01:54 PM | Comments (0)

    August 14, 2003

    bootsplash

    http://www.bootsplash.org

    patch -p1 < /path/to/bootsplash-3.0.7-2.4.20-vanilla.diff

    kernel 勾選
    Console drivers --->
    Frame-buffer support --->
    [*] Use splash screen instead of boot logo

    準備 jpeg 跟 silencejpeg
    先用 rewritejpeg 處理, make sure is compatible for boot logo
    或是
    jpegtopnm $file | ppmtojpeg > $newfile

    設定檔範例 800x600 (取自 bootsplash theme)

    # Pictures provided for Mandrake by me@davidsansome.com
    #
    # Themed with bootSplashMaker by Stefan Reinauer
    # for SuSE Linux, UnitedLinux, SLES8.
    #
    # current version does not implement progress bar yet.

    # config file version (config 版本)
    version=2

    # should the picture be displayed?
    state=1

    # fgcolor is the text forground color. (字的前景顏色)
    # bgcolor is the text background (i.e. transparent) color. (字的背景顏色)
    fgcolor=0
    bgcolor=15

    # (tx, ty) are the (x, y) coordinates of the text window in pixels.
    # tw/th is the width/height of the text window in pixels.
    # tx, ty 文字區塊的 x, y 座標 (pixels)
    # tw, th 文字區塊的寬跟高 (pixels)
    tx=20
    ty=50
    tw=760
    th=530

    # (ax, ay) are the (x, y) coordinates for playing boot/shutdown animations
    ax=112
    ay=30

    # name of the picture file (full path recommended)
    jpeg=/tmp/Flower/images/bootsplash-800x600.jpg

    設定檔範例 640x480

    version=3
    state=1
    fgcolor=7
    bgcolor=0
    tx=0
    ty=0
    tw=640
    th=480
    jpeg=black.jpg
    silentjpeg=bbq.jpg

    輸出到 initrd
    splash -s -f bootsplash.cfg >> /boot/initrd
    若 initrd 為 gz 格式也行
    splash -s -f bootsplash.cfg >> /boot/initrd.gz

    目前 bootsplash 只支援 16bit,
    640x480 使用 vga=785
    800x600 使用 vga=788
    1024x768 使用 vga=791

    kernel boot 參數

    splash=silent switches the bootsplash to silent mode initially
    splash=verbose switches the bootsplash to verbose mode initially. This is default, but if you override the default in the kernel patch, you can use this option to get verbose mode back.
    splash=0 switches the bootsplash off

    Posted by pank at 05:32 PM | Comments (0)

    August 12, 2003

    make device ppp

    mknod /dev/ppp c 108 0

    Posted by pank at 04:26 PM | Comments (0)

    make device loop

    for i in 0 1 2 3 4 5 6 7; do mknod /dev/loop$i b 7 $i; done

    Posted by pank at 09:16 AM | Comments (0)

    August 04, 2003

    xcin 更新預設輸入法

    edit /etc/chinese/xcin/xcinrc

    (define zh_TW
    '((DEFAULT_IM "cj")

    (define zh_TW.Big5
    '((DEFAULT_IM "cj")

    Posted by pank at 11:03 AM | Comments (0)

    July 31, 2003

    lilo 太久沒用

    例: lilo 寫到 hda(下lilo時, 目標的位置), 要從 hdc1 開機
    disk=/dev/hda bios=0x80
    boot=/dev/hda
    root=/dev/hdc1

    還是 grub 比較實用

    Posted by pank at 06:52 PM | Comments (0)

    rename

    linux 下有個好用指令: rename, 可以批次更名, BSD 下沒有

    [root@linux conf]# ll
    total 40
    drwxr-xr-x 2 root root 4096 7月 31 11:37 ./
    drwxrwxrwt 18 root root 4096 7月 31 11:50 ../
    -rw-rw-rw- 1 root root 61 7月 28 18:50 diskmounting.ini
    -rw-rw-rw- 1 root root 2350 7月 31 11:35 keymap.ini
    -rw-rw-rw- 1 root root 45 7月 30 16:49 mouse.ini
    -rw-r--r-- 1 root root 70 7月 23 18:48 storage.ini
    -rw-r--r-- 1 root root 4 7月 17 15:24 version
    -rw-r--r-- 1 root root 7913 7月 3 15:19 zoneinfo.ini
    [root@linux conf]# rename ini conf *
    [root@linux conf]# ll
    total 40
    drwxr-xr-x 2 root root 4096 7月 31 11:53 ./
    drwxrwxrwt 18 root root 4096 7月 31 11:50 ../
    -rw-rw-rw- 1 root root 61 7月 28 18:50 diskmounting.conf
    -rw-rw-rw- 1 root root 2350 7月 31 11:35 keymap.conf
    -rw-rw-rw- 1 root root 45 7月 30 16:49 mouse.conf
    -rw-r--r-- 1 root root 70 7月 23 18:48 storage.conf
    -rw-r--r-- 1 root root 4 7月 17 15:24 version
    -rw-r--r-- 1 root root 7913 7月 3 15:19 zoneinfo.conf

    Posted by pank at 01:55 PM | Comments (0)

    July 23, 2003

    XF86Config Section "Screen"

    更改顏色數, 修改 DefaultColorDepth
    可用參數
    DefaultColorDepth 8
    DefaultColorDepth 15
    DefaultColorDepth 16
    DefaultColorDepth 24

    更改解析度, 修改所有 Subsection "Display" 中的 Mode
    可用參數
    Modes "640x480"
    Modes "800x600" "640x480"
    Modes "1024x768" "800x600" "640x480"
    Modes "1280x960" "1024x768" "800x600" "640x480"
    Modes "1400x1050" "1280x960" "1024x768" "800x600" "640x480"

    Posted by pank at 06:37 PM | Comments (0)

    meta redirect code

    <meta http-equiv="refresh" content="0;url=http://77bbs.com">

    加在 header block 裡
    記下來, 下次就不會忘了怎麼寫

    Posted by pank at 01:24 PM | Comments (0)

    apache HEADER, README

    # ReadmeName is the name of the README file the server will look for by
    # default, and append to directory listings.
    #
    # HeaderName is the name of a file which should be prepended to
    # directory indexes.
    #
    # If MultiViews are amongst the Options in effect, the server will
    # first look for name.html and include it if found. If name.html
    # doesn't exist, the server will then look for name.txt and include
    # it as plaintext if found.
    #
    ReadmeName README
    HeaderName HEADER

    加個絕對路徑上去, 就可每個路徑都有

    Posted by pank at 01:22 PM | Comments (1)

    mrtg cfgmaker

    用 cfgmaker 可自動找抓資料, 建 config
    如用在 ADSL 的 ATU-R
    cfgmaker public@192.168.1.1 --output=mrtg.cfg

    Posted by pank at 11:49 AM | Comments (0)

    July 21, 2003

    apache + ssl + php

    準備

    apache_1.3.28.tar.gz
    from http://httpd.apache.org/dist/httpd/apache_1.3.28.tar.gz
    mod_ssl-2.8.15-1.3.28.tar.gz
    from http://www.modssl.org/source/mod_ssl-2.8.15-1.3.28.tar.gz
    openssl-0.9.7b.tar.gz
    from http://www.openssl.org/source/openssl-0.9.7b.tar.gz
    php-4.3.3RC1.tar.gz
    from http://www.php.net

    解壓全部

    cd openssl-0.9.7b
    ./config -fPIC
    make
    make install

    cd ../mod_ssl-2.8.15-1.3.28
    ./configure --with-apache=../apache_1.3.28 --with-ssl=../openssl-0.9.7b --prefix=/usr/local/apache

    cd ../apache_1.3.28
    ./configure --prefix=/usr/local/apache --sysconfdir=/usr/local/apache/conf --enable-module=so \
    --enable-shared=ssl --enable-module=ssl --enable-module=rewrite --enable-shared=rewrite
    make
    make certificate
    選 DSA
    Country Name 選 TW
    Certificate Validity 填一個夠長的時間, 如 1000 (天)
    Certificate Version 選 3
    其他選項就不是很重要
    Encrypt the private key now? [Y/n] 選 n 啟動時才不用輸入密碼
    make install

    cd ../php-4.3.3RC1
    ./configure --with-mysql --with-apxs=/usr/local/apache/bin/apxs --enable-module=so \
    --with-config-file-path=/usr/local/etc --libexecdir=/usr/local/apache/libexec
    make install

    cp .libs/libphp4.so /usr/local/apache/libexec
    複製編好的 php so 檔到 apache libexec 目錄下

    修改 httpd.conf
    新增
    LoadModule php4_module libexec/libphp4.so
    LoadModule ssl_module libexec/libssl.so
    AddModule mod_php4.c
    AddModule mod_ssl.c

    AddType application/x-httpd-php .php
    AddType application/x-httpd-php-source .phps

    加入 register_globals = On 到 php.ini
    echo "register_globals = On" >> /usr/local/lib/php.ini

    啟動 /usr/local/apache/bin/apachectl startssl

    Posted by pank at 11:48 AM | Comments (0)

    July 17, 2003

    rsync via ssh

    測試檔, 173mb iso 檔

    [root@pank tmp]# rsync -avz -e ssh 192.168.24.5:/tmp/mini.iso /tmp
    receiving file list ... done
    mini.iso
    wrote 32 bytes read 181694087 bytes 2861324.71 bytes/sec
    [root@pank tmp]# rsync -avz -e ssh 192.168.24.5:/tmp/mini.iso /tmp
    receiving file list ... done
    mini.iso
    wrote 32 bytes read 181694087 bytes 2907105.90 bytes/sec
    total size is 181633024 speedup is 1.00
    [root@pank tmp]# rsync -avz -e ssh 192.168.24.5:/tmp/mini.iso /tmp
    receiving file list ... done
    mini.iso
    wrote 32 bytes read 181694087 bytes 2861324.71 bytes/sec
    total size is 181633024 speedup is 1.00

    結果 rsync -e ssh 的效能比 scp 差(2.8mb/s vs 4mb/s)

    Posted by pank at 07:49 AM | Comments (0)

    July 16, 2003

    MSN6 no ad

    去廣告修正

    OFFSET D236D
    Find 74 13 6A 04
    Edit EB -- -- --

    OFFSET D23AA
    Find 74 0A 8B 4E 4C
    Edit EB -- -- -- --

    Posted by pank at 07:57 PM | Comments (0)