再一次的... XD
在使用 Firefox 中的 [附加元件] -> [尋找更新] 後
完全看不到可以更新的資訊 (因為主版本號碼的不同嗎?)
http://toolbar.google.com/intl/zh-TW/
新增了一些有趣的功能,例如:
1.書籤
無論在 IE 還是 Firefox 上使用的都是同樣的書籤
有 tag 的功能,使用感覺比 Google Sync 還要好用
(Google Sync 可以移除掉了... :P)
2.Google 文件
要在 [設定] -> [選項] 中打開
反正就是讓網頁上的 .doc .xls .rtf .ods .odt .csv .sxw 檔案都用 Google 文件來開啟
更詳細的說明在 http://www.google.com/support/firefox/bin/static.py?page=features.html&v=3&hl=zh_TW 上
2007年2月15日 星期四
2007年2月8日 星期四
2007年2月6日 星期二
rpm: Query all installed packages.
在 Redhat/Fedora/SuSE 上查詢所有已經安裝的套件
可以使用
如果想要查詢套件名稱含有某關鍵字的則可以使用
或者是
自己習慣上都是使用
不過
於是就做了一個小實驗
可以使用
rpm -qa
如果想要查詢套件名稱含有某關鍵字的則可以使用
rpm -qa | grep kernel
或者是
rpm -qa '*kernel*'
自己習慣上都是使用
rpm -qa | grep kernel(鍵盤比較好敲)
不過
rpm -qa '*kernel*'似乎應該比較快速(就程式執行的速度來看)
於是就做了一個小實驗
$ for ((i=0;i<3;i++)); do time echo $(rpm -qa '*kernel*'); done
kernel-devel-2.6.19-1.2895.fc6 kernel-headers-2.6.19-1.2895.fc6 kernel-2.6.19-1.2895.fc6
real 0m2.856s
user 0m2.640s
sys 0m0.149s
kernel-devel-2.6.19-1.2895.fc6 kernel-headers-2.6.19-1.2895.fc6 kernel-2.6.19-1.2895.fc6
real 0m2.854s
user 0m2.656s
sys 0m0.138s
kernel-devel-2.6.19-1.2895.fc6 kernel-headers-2.6.19-1.2895.fc6 kernel-2.6.19-1.2895.fc6
real 0m2.858s
user 0m2.631s
sys 0m0.141s
$ for ((i=0;i<3;i++)); do time echo $(rpm -qa | grep kernel); done果然經過 pipeline 的方法比較慢~ :)
kernel-devel-2.6.19-1.2895.fc6 kernel-headers-2.6.19-1.2895.fc6 kernel-2.6.19-1.2895.fc6
real 0m3.246s
user 0m2.738s
sys 0m0.448s
kernel-devel-2.6.19-1.2895.fc6 kernel-headers-2.6.19-1.2895.fc6 kernel-2.6.19-1.2895.fc6
real 0m3.381s
user 0m2.727s
sys 0m0.570s
kernel-devel-2.6.19-1.2895.fc6 kernel-headers-2.6.19-1.2895.fc6 kernel-2.6.19-1.2895.fc6
real 0m3.311s
user 0m2.705s
sys 0m0.546s
Yahoo! Widget: Radio_Tuner_Taiwan v1.2
最近因為 Hinet Radio 改變了一些設計
於是原本的 Radio_Tuner_Taiwan v1.2 突然不能只用
可是也沒看到有人在修理
所以就自己來修~ :P
作法如下:
1. 解開原本的 Radio_Tuner_Taiwan v1.2
2. 編輯其中的 widFunction.js
i. 把所有的 player.jsp 取代成 player_ff.jsp
ii. 把 function getLiveURL 代換成
於是原本的 Radio_Tuner_Taiwan v1.2 突然不能只用
可是也沒看到有人在修理
所以就自己來修~ :P
作法如下:
1. 解開原本的 Radio_Tuner_Taiwan v1.2
2. 編輯其中的 widFunction.js
i. 把所有的 player.jsp 取代成 player_ff.jsp
ii. 把 function getLiveURL 代換成
function getLiveURL(theURL){
var url=new URL();
url.location=theURL;
var contents=url.fetch(); //("mmsurl=([^\;]+)\"", "g");
var liveURLRE=new RegExp("setMovieFile\\\(\\\"([^\;]+?)\"", "g");
liveURL=liveURLRE.exec(contents);
url.location=liveURL[1];
contents=url.fetch();
liveURLRE=new RegExp("href=\\\"([^\;]+?)\"", "g");
liveURL=liveURLRE.exec(contents);
stationURL=liveURL[1];
}再用 Widget Converter 把它包回成 Yahoo! Widget 就可以用了~~~ Happy Hack! ^o^
2007年1月27日 星期六
Planet Linux of Taiwan 新增 Category 功能
現在的 http://planet.linux.org.tw 不單單只是收個人的 Blog RSS Feed
任何跟 Linux 相關的 RSS Feed 都可以收
之後再以 Category 來分類
例如 GCIN 的軟體開發專案的 Blog RSS Feed
就放到 http://planet.linux.org.tw/software/ 底下
而個人的 Blog RSS Feed 放在 http://planet.linux.org.tw/people/ 底下
至於 http://planet.linux.org.tw 則是所有 RSS Feed 的總和
歡迎各位朋友或是軟體開發專案或是新聞台提供 RSS Feed
辦法請參考 http://planet.linux.org.tw/join.html
希望在 Planet Linux of Taiwan 可以收集到台灣所有跟 Linux 有關的 RSS Feed... ^o^
任何跟 Linux 相關的 RSS Feed 都可以收
之後再以 Category 來分類
例如 GCIN 的軟體開發專案的 Blog RSS Feed
就放到 http://planet.linux.org.tw/software/ 底下
而個人的 Blog RSS Feed 放在 http://planet.linux.org.tw/people/ 底下
至於 http://planet.linux.org.tw 則是所有 RSS Feed 的總和
歡迎各位朋友或是軟體開發專案或是新聞台提供 RSS Feed
辦法請參考 http://planet.linux.org.tw/join.html
希望在 Planet Linux of Taiwan 可以收集到台灣所有跟 Linux 有關的 RSS Feed... ^o^
2007年1月22日 星期一
Bash: ${foo:=bar} ${foo:-bar} ${foo:+bar} ${foo:?bar}
${foo:=bar}
1: #!/bin/sh執行後的輸出結果會是
2:
3: foo='foo'
4: echo ${foo}
5: echo ${foo:=bar}
6: echo ${foo}
7:
8: unset foo
9: echo ${foo}
10: echo ${foo:=bar}
11: echo ${foo}
foo因為 ${foo:=bar} 的意義是:
foo
foo
bar
bar
當 $foo 值不存在或者是空字串時,將 $foo 的值指定為 'bar',並且傳回 'bar'
所以第5行的結果並不會改變 $foo 的值並且傳回 'foo'
而第9行的作用是把 $foo 的值指定為 'bar' 並且傳回 'bar'
${foo:-bar}
1: #!/bin/sh執行後的輸出結果會是
2:
3: foo='foo'
4: echo ${foo}
5: echo ${foo:-bar}
6: echo ${foo}
7:
8: unset foo
9: echo ${foo}
10: echo ${foo:-bar}
11: echo ${foo}
foo因為 ${foo:-bar} 的意義是:
foo
foo
bar
當 $foo 值不存在或者是空字串時,傳回 'bar',但是不改變 $foo 的值
${foo:+bar}
1: #!/bin/sh執行後的輸出結果會是
2:
3: foo='foo'
4: echo ${foo}
5: echo ${foo:+bar}
6: echo ${foo}
7:
8: unset foo
9: echo ${foo}
10: echo ${foo:+bar}
11: echo ${foo}
foo因為 ${foo:+bar} 的意義是:
bar
foo
當 $foo 值存在並且不為空字串時,傳回 'bar',但是不改變 $foo 的值
${foo:?bar}
1: #!/bin/sh執行後的輸出結果會是
2:
3: foo='foo'
4: : ${foo:?bar}
5: echo "Here"
6:
7: unset foo
8: : ${foo:?bar}
9: echo "Cannot be here."
Here因為 ${foo:?bar} 只是拿來檢查 $foo 的值存在並且不為空字串
sample.sh: line 8: foo: bar
檢查不通過時就會印出錯誤訊息並且結束程式
其中的 'bar' 是自訂的錯誤訊息,不填的話輸出結果就變成了
Here
sample.sh: line 8: foo: parameter null or not set
2007年1月18日 星期四
Bash: function return value
作法有點 tricky
不然就是要用另外一個變數來存傳回值了~ :P
#!/bin/sh
main ()
{
return 123
}
main
echo $?
不然就是要用另外一個變數來存傳回值了~ :P
訂閱:
文章 (Atom)