星期五, 十月 08, 2010

轉換subnet mask的程式 => ipcalc

寫網路程式時,常常要處理和ip address有關的issue。這時候,遇到255.255.255.255 = 32的Mask還好,但是如果是IP address/31 或是 IP address/30呢?

還好,我找到了一個很好用的程式: ipcalc
ipcalc 192.168.0.1/24

下頭是輸出
Address: 192.168.0.1 11000000.10101000.00000000. 00000001
Netmask: 255.255.255.0 = 24 11111111.11111111.11111111. 00000000
Wildcard: 0.0.0.255 00000000.00000000.00000000. 11111111
=>
Network: 192.168.0.0/24 11000000.10101000.00000000. 00000000
HostMin: 192.168.0.1 11000000.10101000.00000000. 00000001
HostMax: 192.168.0.254 11000000.10101000.00000000. 11111110
Broadcast: 192.168.0.255 11000000.10101000.00000000. 11111111
Hosts/Net: 254 Class C, Private Internet

星期四, 十月 07, 2010

用gnuplot來畫圖

開會要準備投影片時,如果要畫圖,我心裡就一陣幹。
這兩天,決定用gnuplot來做,果然,順手多了。雖然一開始為了生出一個可以用的script,也磨了一陣子。

plot "./data.txt" using 1:2 title "single direction", "./data.txt" using 1:3 title "two direction"
set title "throughput"
set xlabel "packet size(Bytes)"
set ylabel "rate(Mbps)"
set style data lines
set grid
replot
set output "throughput.png" ; set term png ; replot

在linux的shell下,使用gettext來翻譯

(0)準備gettext的環境變數
TEXTDOMAINDIR
TEXTDOMAIN

(1) 先寫 zh_TW.po

(2) 用msgfmt指令生成 mo檔
msgfmt -o $TEXTDOMAIN.mo zh_TW.po

(3) 將mo檔放到正確的位置, /MO_DIR
其中,/MO_DIR 長成這樣: $TEXTDOMAINDIR/LC_MESSAGES/LC_MESSAGES

(4) 此時,mo檔和路徑,環境變數的關系應該是:
$TEXTDOMAINDIR/LC_MESSAGES/LC_MESSAGES/$TEXTDOMAIN.mo

(5) gettext -s "$msgid"