Tuesday, October 11, 2005

/usr/sbin/named.restart

Monday, August 15, 2005

Some VIM stuff

All from http://www.study-area.org/tips/tipsfr1.htm

% 這是匹配 {},[],() 用的,例如您的游標現在在 { 上
只要按 %,就會跑到相匹配的 } 上。寫程式時滿好用的。

. 這是什麼?ㄚ,是英文句點啦!沒錯,就是英文句點。什麼意
思?重複前次的編輯動作。這個指令太高明了,只要是編輯動
作(移動游標不算,冒號命令也不算)都可以按英文句點來重
複,要重複幾次都可以。
例如:您按了 yy,然後按 p 就會複製、貼上一整行,如果要重複這個動作的話,就可以按 . ,也可以把游標移到其它地方後再按。其它 dd,dw,r,cw 等編輯指令都可以這樣來重複。如果您要重複做某些編輯動作時,千萬千萬一定要想到有這麼一個英文句點重複指令。ㄚ,拜託啦!您一定要常用這個指令。
"ayy  將本行文字複製到 a 緩衝區
  • a 可為 26 個英文字母中的一個,如果是小寫的話,原先的內容會被清掉,如果是大寫的話是 append 的作用,會把內容附加到原先內容之後。
  • " 是 Enter 鍵隔壁的那一個同上符號(ditto marks)。
"ap  將 a 緩衝區的內容貼上。
  • 緩衝區的術語在 vim 稱為 registers,vim 擴充了相當多的功能,有興趣深入的朋友請 :h registers。您用 d、c、s、x、y 等指令改變或刪除的內容都是放在 registers 中的。例如:您用 dd 刪除的一行,也是可以使用 p 來貼上的。只要是在緩衝區的內容都可以使用 p 來貼上,不是一定要 y 起來的內容才能用 p。因此您認為 p 是 paste 也可以,認為是 put 可能較正確。
5"ayy  複製五行內容至 a 緩衝區。
5"Ayy 再複製五行附在 a 內容之後,現在 a 中有十行內容了!
  • ㄟ!不要我一直用 a 您就認為只有 a 可以用喔。26 個英文字母都可以的,交叉運用下,您會發覺 vi(m) 肚量不小。
  • 問題來了!忘記誰是誰的時候怎麼辦? :reg(冒號命令)就會列出所有 registers 的代號及內容。您現在就試著按看看。咦!怎麼還有數目字、特殊符號的緩衝區,原來您剛剛刪除(複製)的內容就預設放在 " 這個緩衝區,然後依序是 0,1,2,...9。也就是說您按 p 不加什麼的話,是取出 " 緩衝區的內容的。% 指的是目前編輯的檔案,# 指的是前一次編輯的檔案。還有其它的呀!因為沒什麼重要,就請 :h registers 吧!registers 有個 "s" 結尾,不要搞錯了,而且 Tab 的補全鍵 vim 也支援的,也就是說您鍵入 :h regi 再按 Tab 鍵,vim 就會幫您補全,按了 Tab 後發現不是您要的,那就繼續按,總會出現您要的。:-)
  • Tab 補全的功能,elvis 也有,但叫出 registers 列表的命令則沒有,您得自行記憶在您的腦袋瓜子裡。而且 elvis 的補全能力並沒 vim 強。
/  在 c-mode 的情形下,按 / 就會在左下角出現一個 /,然後鍵
入您要尋找的字串,按個 Enter 就會開始找。
? 和 / 相同,只是 / 是向前(下)找,? 則是向後(上)找。
n 繼續尋找。
N 繼續尋找(反向)。
:[range]s/pattern/string/[c,e,g,i]
range 指的是範圍,1,7 指從第一行至第七行,1,$ 指從第一行
至最後一行,也就是整篇文章,也可以 % 代表。
  • 還記得嗎? % 是目前編輯的文章,# 是前一次編輯的文章。
pattern 就是要被替換掉的字串,可以用 regexp 來表示。 string 將 pattern 由 string 所取代。 c confirm,每次替換前會詢問。 e 不顯示 error。 g globe,不詢問,整行替換。 i ignore 不分大小寫。
  • g 大概都是要加的,否則只會替換每一行的第一個符合字串。可以合起來用,如 cgi,表示不分大小寫,整行替換,替換前要詢問是否替換。
[實例] :%s/Edwin/Edward/g
    這樣整篇文章的 Edwin 就會替換成 Edward。

mx  x 代表 26 個小寫英文字母,這樣游標所在處就會被 mark。
`x 回到書籤原設定位置。
  • ` 是 backward quote,就是 Tab 鍵上面那一個。
'x  回到書籤設定行行首。
  • ' 是 forward quote,是 Enter 鍵隔壁那一個。
:marks  得知目前所有書籤的列表。

Monday, August 01, 2005

More company stuff

RRDtools: tms1.above.net.tw/home/tms
pserver1.above.net.tw/home/tms

Tuesday, June 28, 2005

Resip/Dragond

To restart Dragon, check if monit is running first, and stop monit first before stopping Dragon.
Start pserver first -> proxy -> presence -> login

command to start Dragon: /usr/local/dragon/etc/dragond [start|stop|restart]
tail /var/log/dragon.log to see if it's running all services.

monit:
/etc/init.d/monit stop/start

postgres:
/etc/init.d/postgresql restart
su - postgres -c "command"

Wednesday, May 25, 2005

Python tip:

urlopen(siteurl, [postdata])
-------------------------------
If you want GET (like open a page in a browser) just omit postdata like urlopen('http://google.com')
If you want POST (like sending a form) include postdata - values for all form variables.

Data must be prepared for HTTP transfer, that's what is urlencode for.
It takes sequence of pairs or dictionary. Dictionary constructor is convinient as you can use var names as keywords.

So all you need is to get all vars (visible and hidden all alike) and get them values.
To actually perform operation you usually .read() result of urlopen.

Monday, May 23, 2005

5/23/2005

To start httpd under FreeBSD (just so I won't forget):

/usr/local/sbin/apachectl restart
or
/usr/local/etc/rc.d/apache2.sh restart

rt3 is installed in /usr/local/rt3

mysql:

/usr/local/etc/rc.d/mysql-server.sh restart