Dec 20, 2007

一個好用的 Patch 管理工具 - quilt

先在目錄下 mkdir patches
  1. quilt new patchname #新增一個patch file
  2. quilt add filename #把要修改的 file 加入 top most patch 中,也可使用 quilt [vi] edit filename ,這樣就會幫你自動先 add 就直接建入 editor
  3. quilt refresh #updata your patch
  4. quilt remove filepath #把 此 file 的更改移出此patch
  5. quilt delete patchname #remove unapplied patch
  6. quilt push #將下一個patch file apply進來,或是全部的apply [-a]
  7. quilt pop #unpapply回上一個 patch,或是全部都unpapply [-a] 回去
  8. 一些 display 指令
quilt files #list files in patch
quilt diff #show patch
quilt previous, top, next #show previous, topmost, next patch name
quilt filename #list patches modifying file
quilt applied/unapplied #show applied/unapplied patch names
quilt series #list all patch names in series

我想,在配合下面這張圖應該就能很清楚的了解,他的使用


如果還不是很了解,可以看一下,下面這幾個連結 :)

Dec 16, 2007

screen capture with import

以前在windows時,都是使用 HyperSnap 而Linux下,一直沒去注意,是否有取代方案,剛剛google一下,發現,原來 ImageMagick裡早已有這樣的功能,我主要要求是可以讓我自已選譯 capture 的 region,於 ImageMagick 裡有一個名為 import 的工具,只需打 import {Filename}.{File format},螢幕就會出現一個十字, Draw 出一個 region 後會自動幫你存檔,真是太方便了 XD。
不過,要一直打 command 真的有點麻煩,有時我只想砍下我要的畫面檔名對我來說不是很重要,所以寫了一個非常簡單的 script
#!/bin/sh
/usr/bin/import $RANDOM.png
在加到 Gconf 中的快速鍵,哈,這樣使用起來比 HyperSnap 還要方便

Dec 13, 2007

我要看 海賊王 :)

前段時間,跟一位朋友聊到,平時到 ptt 都會逛那些好玩的板,中間他有提到 海賊版 ,之前無聊,把所有熱門的版加到 我的最愛裡,海賊版就是其中之一,也沒認真去逛過,只是覺的,一個卡通有那麼好閒嗎 = =“ (有也是海賊迷),昨天去認真小看一下,丫勒,原來熱門是因該有很多黑暗在,哈哈,這時又想起,我好像有快半年沒看海賊王了,下載了幾集試看看,發現,電 腦裡沒有 realplayer codec 試了把 win32codec 裝到 /usr/lib/win32 播放時,會出現下現錯誤,但是有聲音沒畫面,我一直以為,它在 /usr/lib/codecs 找不到 drvc.so 會換至 /usr/lib/win32 試看看,原來不會 - -“,只好在建一個 ln -s win32 codecs 這樣就沒問題了,哈,又可快快樂樂看海賊王了 :)
============== 下面是難看的 Error Output ====================
Opening video decoder: [realvid] RealVideo decoder
Error: /usr/lib/codecs/drvc.so: cannot open shared object file: No such file or directory
Win32 LoadLibrary failed to load: drvc.so, /usr/lib/win32/drvc.so, /usr/local/lib/win32/drvc.so
Error loading dll
ERROR: Could not open required DirectShow codec drvc.so.
Read the RealVideo section of the DOCS!
VDecoder init failed :(
Opening video decoder: [realvid] RealVideo decoder
Win32 LoadLibrary failed to load: drvc.dll, /usr/lib/win32/drvc.dll, /usr/local/lib/win32/drvc.dll
Error loading dll
ERROR: Could not open required DirectShow codec drvc.dll.
Read the RealVideo section of the DOCS!
VDecoder init failed :(
Opening video decoder: [realvid] RealVideo decoder
Error: /usr/lib/codecs/drv4.so.6.0: cannot open shared object file: No such file or directory
Win32 LoadLibrary failed to load: drv4.so.6.0, /usr/lib/win32/drv4.so.6.0, /usr/local/lib/win32/drv4.so.6.0
Error loading dll
ERROR: Could not open required DirectShow codec drv4.so.6.0.
Read the RealVideo section of the DOCS!
VDecoder init failed :(
Opening video decoder: [realvid] RealVideo decoder
Win32 LoadLibrary failed to load: drv43260.dll, /usr/lib/win32/drv43260.dll, /usr/local/lib/win32/drv43260.dll
Error loading dll
ERROR: Could not open required DirectShow codec drv43260.dll.
Read the RealVideo section of the DOCS!
VDecoder init failed :(
Opening video decoder: [realvid] RealVideo decoder
Error: /usr/lib/codecs/drvc.bundle/Contents/MacOS/drvc: cannot open shared object file: No such file or directory
Win32 LoadLibrary failed to load: drvc.bundle/Contents/MacOS/drvc, /usr/lib/win32/drvc.bundle/Contents/MacOS/drvc, /usr/local/lib/win32/drvc.bundle/Contents/MacOS/drvc
Error loading dll
ERROR: Could not open required DirectShow codec drvc.bundle/Contents/MacOS/drvc.
Read the RealVideo section of the DOCS!
VDecoder init failed :(
Cannot find codec matching selected -vo and video format 0x30345652.
Read DOCS/HTML/en/codecs.html!
==========================================================================
密碼被暴力破解時間表全面披露

剛剛想到,我常使用的密碼到底安不安全,上網google找到一篇文章 密碼被暴力破解時間表全面披露,不過本身自已對密碼學好無研究,就先相信一下他的資料吧。


在 “F級:1,000,000,000 Passwords/sec--大型電腦網路/超級電腦“裡,我的密碼還是有可能在83天被破解,這.....或許因該是考慮在加長我的密碼了 XD

Dec 7, 2007

一些關於測試的名詞

Unit test: 單元測試,針對某個component或method做的測試
Black box test: 黑箱測試
Unit test: 單元測試,針對某個component或method做的測試
Black box test: 黑箱測試,針對功能面來做測試
White box test: 白箱測試,針對內部實作的流程來做測試
Stress test: 壓力測試,測試系統的效能極限
Regression test: 回歸測試,當新功能增加的同時,會不會影響到舊功能的正確性
Integration test: 整合測試,兩個系統整合後有沒有錯誤
System test: 整個system跑起來後的測試
Alpha test: 開放內部測試人員做測試
Beta test: 開放給外部使用者做測試
Monkey test: 搞怪測試,盡可能惡搞來看系統穩定度
,針對功能面來做測試
White box test: 白箱測試,針對內部實作的流程來做測試
Stress test: 壓力測試,測試系統的效能極限
Regression test: 回歸測試,當新功能增加的同時,會不會影響到舊功能的正確性
Integration test: 整合測試,兩個系統整合後有沒有錯誤
System test: 整個system跑起來後的測試
Alpha test: 開放內部測試人員做測試
Beta test: 開放給外部使用者做測試
Monkey test: 搞怪測試,盡可能惡搞來看系統穩定度
Acceptance test: 測試系統或產品是否會滿足客戶的需求

Dec 6, 2007

Linux下的除錯工具

先記錄一下,有機會一定要試看看 :)

MPatrol : 記憶體除錯
http://www.cbmamiga.demon.co.uk/mpatrol/
OProfile : 系統負載低且全系統性的效能表現監視工具
http://rhn.uta.edu/pub/docs/RH-DOCS/rhel-sag-zh_tw-3/ch-oprofile.html
http://oprofile.sourceforge.net/
LTTng : LTTng is the kernel tracer that generates traces of an instrumented Linux kernel. LTTV is a modular viewer that can perform analysis on such traces and show the result in text or in a graphical interface.
http://ltt.polymtl.ca/
DevRocket : 結合了上面三個的商業套件

Dec 4, 2007

Gnome hotkey

剛想設定習慣的HotKey時,發現怎麼有麼東西在 Keyboard Shortcuts 工具裡找不到,如:我開了六個 workspace 但卻只能設定 前二個的 HotKey,後來發現,原來也可以直接在 gconf-editor -> apps -> metacity 修改就可以了 :)

setting widescreen monitor

前陣子退伍後,運氣還不錯,馬上就找到工作,到公司後,拿到一台不錯的電腦(我想對一般人來說算還好,沒辨法,我家還是用intel HT cpu & DDR 1G )
blue119@YPWang:~$ lspci | grep VGA

00:02.0 VGA compatible controller: Intel Corporation 82G33/G31 Express Integrated Graphics Controller (rev 02)

Monitor是 ViewSonic VG1921wm

剛灌完ubuntu 7.10後,沒辨法正常的顯示 16:9,就算是選了1440x900 跑出來,還是一樣 4:3 ,畫面的左右二邊會被壓縮到只剩下 1200 左右,只好 google 一下,沒辨法,沒用過 widescreen monitor沒經驗,下面是我改完之後的 xorg.conf
Section "Device"
Identifier "Intel Corporation Integrated Graphics Controller"
Boardname "intel"
Busid "PCI:0:2:0"
Driver "intel"
Screen 0
EndSection

Section "Monitor"
Identifier "Generic Monitor"
Vendorname "ViewSonic"
Modelname "ViewSonic VG1921wm"
Horizsync 30-82
Vertrefresh 50-75
Modeline "1440x900_70.00" 126.98 1440 1536 1688 1936 900 901 904 937 -HSync +Vsync
Modeline "1440x900_60.00" 106.47 1440 1520 1672 1904 900 901 904 932 -HSync +Vsync
Gamma 1.0
EndSection

Section "Screen"
Identifier "Default Screen"
Device "Intel Corporation Integrated Graphics Controller"
Monitor "Generic Monitor"
Defaultdepth 24
SubSection "Display"

Depth 24
Virtual 1440 900
Modes "1440x900@60"
EndSubSection
EndSection
改完之後,強制退出 Xorg 回來還是一樣,不過到 System -> 偏好設定 -> resolution 裡,先改到其它的解析度後在改回 1440 x 900,很新奇的monitor就正常了 @@"

Dec 1, 2007

[備份] OpenEmbedded

忘了是不是自已寫的筆記 XD

Setting up the toolchain and doing a build Directory Structure
mkdir -p /stuff/build/conf
cd /stuff/

Obtaining BitBake
cd /stuff/
svn co http://svn.berlios.de/svnroot/repos/bitbake/branches/bitbake-1.8/ bitbake

Updating bitbake
cd /stuff/bitbake; svn info
cd /stuff/bitbake; svn update

Obtaining OpenEmbedded
wget http://www.openembedded.org/snapshots/OE.mtn.bz2
bunzip2 OE.mtn

Install Monotone 0.32
http://monotone.ca/downloads/0.32/

mtn --db=/stuff/OE.mtn pull monotone.openembedded.org org.openembedded.dev
mtn --db=/stuff/OE.mtn checkout --branch=org.openembedded.dev
mtn --db=/stuff/OE.mtn checkout --branch=org.openembedded.dreambox

mtn --db=/stuff/OE.mtn pull monotone.openembedded.org org.openembedded.dev
mtn --db=/stuff/OE.mtn pull monotone.openembedded.org org.openembedded.dreambox

cd /stuff/org.openembedded.dev && mtn update
cd /stuff/org.openembedded.dreambox && mtn update

Create local configuration
cd /stuff/
cp org.openembedded.dev/conf/local.conf.sample build/conf/local.conf
vi build/conf/local.conf

Setup the environment
$ export PATH=/stuff/bitbake/bin:$PATH
$ export BBPATH=/stuff/build:/stuff/org.openembedded.dev

Start building
$ bitbake nano

[備份] Backup.sh

很久以前寫的簡單備份 script
#!/bin/sh

BackUpDir_Top="/mnt/backup"
BackUpDir="$BackUpDir_Top/`date +%Y-%m-%d`/"
YesterDay=`date -d '-1 day' +%Y-%m-%d`
BackUpServer="140.111.77.113"

Prefix="bludebser-"
BackToDir="/home/backup/"
BackToName="`date +%Y-%m-%d`.tar"
LoginUser="backup"
LoginPasswd="backup"
LoginPort="2121"

if [ `date +%w` == 1 ]
then
FullBackUpDay=1
else
FullBackUpDay=0
fi

if [ ! -d $BackUpDir_Top ]
then
mkdir $BackUpDir_Top
fi

mkdir $BackUpDir
cd $BackUpDir

if [ -d /mnt/backup/"$YesterDay" ] || [ $FullBackUpDay == 1 ]
then

tar --after-date $YesterDay -czvf www-diff.tar.gz /var/www
tar --after-date $YesterDay -czvf etc-diff.tar.gz /etc
tar -czvf mysql-diff.tar.gz /var/lib/mysql
#tar --after-date $YesterDay -czvf mysql-diff.tar.gz /var/lib/mysql
#tar --after-date $YesterDay -czvf home-diff.tar.gz /home
else

tar -czvf www.tar.gz /var/www
tar -czvf etc.tar.gz /etc
tar -czvf mysql.tar.gz /var/lib/mysql
#tar -czvf home.tar.gz /home

fi

#backup to server

#cd $BackUpDir_Top
#tar cvf $Prefix$BackToName $BackUpDir
#ncftpput -u $LoginUser -p $LoginPasswd -P $LoginPort $BackUpServer . $Prefix$BackToName
#rm -rf $Prefix$BackToName

#if [ $FullBackUpDay == 1 ]
#then
# find /mnt/backup -atime +7 -exec rm -rf {} \;
#fi