星期二, 一月 04, 2011

busybox sendmail with gmail

sendmail
-U user_id@gmail.com
-P XXXXX
-w 20
-s 'Email subject'
-f sender@example.com
-H 'openssl s_client -connect smtp.gmail.com:465 -quiet'
receiver@example.com
< ./ttt

星期一, 十月 11, 2010

教我姊機率~ probabiliy density function

姊:「為什麼從discrete變成continuous之後,機率函數就變成機率密度函數?」

我:「因為pdf ( probabiliy density function )是由 cumulative probility function 微分而得到的… 」

姊:「我把微積分忘光了呃。」

我:「好吧。想象,現在有一個球,球質量是十公斤,如果球是均勻質量,你就可以說,球的質心位於球的中心,且,重量是十公斤,質心這個點是 十公斤的質量。 ----> 這就是discrtete的描述。
然而,如果我問你,在這個球內部的某一個點(很小一塊體積的點)真實的質量是多少? 你是無法回答的,因為,除非我告訴你,這個點,它佔有的體積有多少,否則你無法算出這個點含有的質量。 -----> 這就是continuous的描述。 probability density function 就像這個case的密度。 」

星期五, 十月 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"

星期四, 九月 16, 2010

FirePHP

已經用firebug來debug javascript一段時間了,firebug真是超好用的。然而,javascript是 client side的東西。有時候,會希望,要是server-side的php也可以有簡單的方法來debug就好了。

這兩天找了FirePHP來用,雖然它不能做為一個像firebug一樣,是PHP的debugger。但是,它可以做為logger。在php的程式碼中,調用了FirePHP的程式碼之後, 可以用簡單的log function,將PHP執行時,輸出的東西,透過Http的header來回傳。回傳之後,被FirePHP 的程式收到,它就可以顯示。

使用方法:
(1) 下載 FirePHP的 php library, 放到網頁的根目錄
(2) 在php檔中,寫合適的程式碼。
下頭是一個example:
require_once('FirePHPCore/FirePHP.class.php');
ob_start();
$firephp = FirePHP::getInstance(true);
$var = array('i'=>10, 'j'=>20);
$firephp->log($var, 'Iterators');

(3) 在瀏覽器上,開啟firebug,再開啟FirePHP

星期一, 八月 16, 2010

原來網路上找到的noseeing檔是有被修改過的…

這是測試用的嘸蝦米輸入法表格,主要在測試 gcin 的 UTF-8 環境的運作
情形。如果要長期使用,請購買合法版權的嘸蝦米輸入法。這個表格內容
有可能和正式的嘸蝦米表格不一樣,因為這是我個人在使用的。

目前編入正式的 Unicode 編碼日文及簡體字。原來的輸入日文的方法只能
適用於 GNU/Linux 系統,因為他是對照 Unicode PUA 的對應,需要 GNU
libc 才能做正確的轉換,其他的系統並不一定支援。正式的 Unicode 編碼
日文,在輸入時請多加個 j,以便和原來的 Big5 日文區別:

a, => 原 Big5 編入 Unicode PUA 的日文『』
ja, => Unicode 標準編碼日文『あ』

簡體的部份依繁體的輸入方式,必需選字才能輸入。所以,正常的繁體中文
依以往的輸入方法即可,需要簡體時再來選字。

這裡是繁體中文。 => 依正常輸入即可
这里是简体中文。 => 依繁體的輸入方法,需要選字。

這是依我個人的使用習慣編入的,所以不一定會和正式嘸蝦米的輸入方式一
樣,也不一定會符合你的需求。