星期四, 7月 10, 2008

libiconv

iconv.h 裡面只寫了3個function
iconv_open
iconv
iconv_cloe

而已, 這幾個的用法上網查很容易可以找到
不過今天我在用的時候發現了點問題,
shell 裡我可以用 -c 來忽略一些錯誤, 那我寫程式的時候怎麼辦?
iconv 的manual page 的 ENCODINGS section 裡提供了方法:
在 __tocode 加上 //IGNORE 的suffix 就可以忽略轉換的錯誤
另外 //TRANSLIT 可以將轉換錯誤的字元變成另一個相似字 (好像是)
所以在 iconv_open 時, 把 //IGNORE 的 suffix 加在__tocode 後面就可以了.

星期二, 7月 08, 2008

檔案屬於什麼套件

轉自:
http://andrewtw.wordpress.com/2007/10/25/找尋某個檔案屬於哪一個套件/

安裝 apt-file:
sudo apt-get install apt-file
sudo apt-file update
找/etc/network/interfaces 屬於什麼套件
apt-file search /etc/network/interfaces
或如果在跑人家編好的binary file 可是少了*.so
也可以用這種方法找

星期日, 6月 29, 2008

更新系統時間

有時候電腦的時間會不準
有gui 的 tool 可以直接設定, 如果不想用的話可以使用ntpdate

台灣官方的校時server: time.stdtime.gov.tw
使用方法:
sudo ntpdate time.stdtime.gov.tw #校時
sudo hwclock -w #寫入bios
若想要手動調整時間可以使用 date
date -s 10:10:00

星期三, 6月 25, 2008

rm a file begins with a dash

如果檔案開頭有dash 的話, 直接rm 會出現錯誤
這時候要在前面加個 ./
eg: rm ./-test
就可以了

---edit 21:09 06/25/08 --

rm -- -test
也可以 ( thanks to Mark Raddatz )

星期二, 6月 24, 2008

mplayer in fluxbox !

這幾天在用電腦, 突然覺得每次mplayer 都佔一個terminal 有點煩
所以開始想有沒有辦法讓 fluxbox bind 一些key 來控制mplayer

一開始我打算用mplayer + (nc + retty) 來做, 是可以做可是有點麻煩
做法大概是用
nc -c retty $(pidof mplayer) -l -p [port] 作為server,
然後 echo "command" |nc localhost [port] -q 1 來控制
這樣需要改一點nc 的code .. 有時間再說

今天在surf 的時候看到這篇, 是FVWM 的 user 提供的解法, fluxbox 也可以用喔!
原來是mplayer 本來就提供pipe in command 的 功能 :p (我還大費周張!@%&$!)

大致上的步驟...
mkfifo ~/.mplayer/pipe #做個named pipe 給mplayer 讀


開啟mplayer: (可以放到menu 或另外bind key, 不然乾脆開機直接打開
mplayer -slave -idle -input file=~/.mplayer/pipe


-slave 用來關閉mplayer 從 stdin 讀取command
-idle 是用來啟動mplayer 並且halt 在那邊等你command
-input 是來開啟神奇的pipe 功能

再來就在fluxbox 的設定 bind 一點key: (~/.fluxbox/keys )
Control Next :ExecCommand echo "pt_step 1" > ~/.mplayer/pipe
Control Prior :ExecCommand echo "pt_step -1" > ~/.mplayer/pipe
Control KP_Add :ExecCommand echo "volume +1" > ~/.mplayer/pipe
Control KP_Subtract :ExecCommand echo "volume -1" > ~/.mplayer/pipe
Control KP_0 :ExecCommand echo "pause" > ~/.mplayer/pipe


其實就是 echo "command" > ~/.mplayer/pipe
可以用的command 可以查mplayer ( mplayer -input cmdlist )

個人比較常用的還有 loadlist:
echo "loadlist ~/music/xxxxx" > ~/.mplayer/pipe

學原po 說一句:
Now I have a simple but cool "Fluxbox-Player".