2009年11月19日

我很喜歡別人問我問題

有時候

我會覺得自己對某些事情已經懂了

但其實不然

當別人問我問題時

就是這件事的新的開始

讓我從另一個角度思考這樣的問題或事情

往往會推翻過去自以為懂的自己

前提是不能自私的認為自己永遠是對得 : )



就因為這樣

而讓我喜歡問別人問題

因為每個人看得角度都不同

讓我想瞭解不同看法的人

問題與答案

本是同一物

所以沒有正確解答,也沒有正確的問法

I just want to know that you know.

我只想知道其他人在想些什麼。



剛剛突然想到

台灣的教育

好像就是一個問題跟著一個正確答案

讓學生沒了思考能力

1+1=2

為什麼1+1=2?有誰在幼稚園(或國小)就提過這問題?

若學生回答1+1=3

就是錯誤解答,要等著受罰

長大了,自然會害怕遇到問題

因為遇到問題後接下來的恐懼就是

我這樣作是正確解答嗎?

我這樣的回答對方滿意嗎?

2009年9月8日

【Ubuntu】apt與dpkg指令介紹

參考網站:
http://www.builder.com.cn/2007/0913/503407.shtml
http://tw.myblog.yahoo.com/naphtali.tw/article?mid=65

ubuntu下apt-get 命令參數


  常用的APT命令參數


  apt-cache search package 搜尋cache內的檔案


  apt-cache show package 獲取軟體資訊,如說明、大小、版本等


  sudo apt-get install package 安裝package


  sudo apt-get install package - - reinstall 重新安裝package


  sudo apt-get -f install 修復安裝"-f = ――fix-missing"


  sudo apt-get remove package 删除包


  sudo apt-get remove package - - purge 删除包,包括删除配置文件等


  sudo apt-get update 更新source.list


  sudo apt-get upgrade 更新已安裝的package


  sudo apt-get dist-upgrade 升級系統


  sudo apt-get dselect-upgrade 使用 dselect 升級


  apt-cache depends package 查看依賴性


  apt-cache rdepends package 查看被哪些package依賴


  sudo apt-get build-dep package 安裝相關的編譯環境


  apt-get source package 下載該package的原代碼


  sudo apt-get clean && sudo apt-get autoclean 清理無用的package


  sudo apt-get check 檢查是否有損壞



Debian,以及基于 Debian 的系統,如 Ubuntu 等,所使用的包格式為 deb。以下為操作 deb 包的常用 Dpkg 指令表,供初學的朋友參考。






































命令


作用


dpkg -i package.deb


安裝包


dpkg -r package


刪除包


dpkg -P package


刪除包(包括配置文件)


dpkg -L package


列出與該包關聯的文件


dpkg -l package


顯示該包的版本


dpkg –unpack package.deb


解開 deb 包的內容


dpkg -S keyword


搜索所屬的包內容


dpkg -l


列出當前已安裝的包


dpkg -c package.deb


列出 deb 包的內容


dpkg –configure package


配置包


注意:更多選項可通過 dpkg -h 查詢,有些指令需要超級用戶權限才能執行。

2009年8月31日

【DNS Server】架設心得

安裝完CentOS 5.3之後

記得再update bind

#yum install bind*

更新完之後就會有chroot的功能

控制chroot開關狀態是在

/etc/sysconfig/named

裡面有個參數:ROOTDIR

若不啟動註解掉即可

chroot可大大提高安全性

即使named被hacker控制

最多也只能在root dir內遊走

named.conf - 主要設定檔
可參考sample
/usr/share/doc/bind-9.3.4/sample/etc/named.conf

以下是我的簡單設定
options
{
      
        directory "/var/named"; // the default
};

zone "." {  // root server
        type hint;
        file "named.ca";
};

//本機正反解
zone "localhost" {
        type master;
        file "named_localhost";
};

zone "0.0.127.in-addr.arpa" {
        type master;
        file "arpa_127.0.0";
};

//herbsite 正反解
zone "herbsite.tw" {
        type master;
        file "named_herbsite.tw";
};

zone "75.208.134.in-addr.arpa" {
        type master;
        file "arpa_134.208.75";
};

herbsite正解設定:
named_herbsite.tw

$TTL 1d

@ IN SOA www.herbsite.tw. root.herbsite.tw. (
        2009090100;
        28800;
        14400;
        720000;
        86400;
)

@ IN NS herbsite.tw.
@ IN A 134.208.75.141

@ IN NS dns.herbsite.tw.
dns IN A 134.208.75.143

@ IN NS www.herbsite.tw.
www IN A 134.208.75.143

@ IN MX 10 mail.herbsite.tw.
mail IN A 134.208.75.143


herbsite 反解設定:
arpa_134.208.75

$TTL 1d

@ IN SOA localhost. root.localhost. (
        2009090100;
        28800;
        14400;
        720000;
        86400;
)

@ IN NS herbsite.tw.
@ IN NS mail.herbsite.tw.

141 IN PTR herbsite.tw.
143 IN PTR mail.herbsite.tw. //只做mail反解,以免被當成垃圾信


然後就可以啟動了

/etc/init.d/named restart

若有錯誤或失敗請檢查/var/log/messages

最常見錯誤為分號和空格問題!

2009年8月18日

【bat】背景執行與kill process

在linux上只需要在指令後面加  & 就可以在背景執行
那windows上呢?

start /D<folder> /I /MIN /NORMAL /B <EXEC> > <log file>

那要刪除背景執行的程式呢?
除了使用工作管理員以外
要在bat內完成就是要下指令瞜

taskkill /IM mytest.exe /F

這樣所以mytest.exe產生的子程序也會跟著關閉了

2009年8月13日

【Apache】WebDav 相關設定

最近發現個好玩的東西



叫webdav



怎麼好玩呢?



當一台 web server 上沒有任何其他service時



要怎麼把檔案傳上web server呢?



其實可以靠Apache 的WebDav模組!



而且在Windows上有個軟體叫NetDrive



可以把ftp、webdav的連線內容模擬成一個磁碟來操作(當然需要相對的權限)



如此方便的功能,一定要來玩玩看得啦



首先要確定Apache有無安裝wevdav module



打開httpd.conf



搜尋



LoadModule dav_module modules/mod_dav.so

LoadModule dav_fs_module modules/mod_dav_fs.so



這兩行的註解記得拿掉



並且加上



Include conf/extra/httpd-dav.conf



路徑是妳webdav的設定檔



接下來就是設定httpd-dav.conf了



幾個重要參數介紹一下



DAVLockDB /usr/local/apache/var/DAVLock



這個必須要放在所有設定的最上面



DAVLock這個檔案mod_dav會在地一次執行時建立



但路徑裡的資料夾必須是要存在的



Alias /webdav "C:/xampp/webdav"



這是設定webdav的資料夾



<Directory "C:/xampp/webdav">

#將DAV功能開啟

Dav On

#設定該資料夾權限

    Order allow,deny

    Allow from all

#類似title

    AuthName DAV-upload


    AuthType Basic

#該資料夾登入時所用的帳號密碼檔(可用htpasswd建立)

#使用方法:htpasswd.exe -c "C:/yourPath/user.pwd" username

    AuthUserFile "C:/xampp/security/htpasswd.webdav"

 

#設定使用權限,GET是read權限,PUT是write權限  

<LimitExcept GET PROPFIND OPTIONS PUT POST DELETE PROPPATCH MKCOL COPY MOVE LOCK UNLOCK>

#哪個user適用這個權限

require valid-user

 </LimitExcept>

</Directory>



最後在加上

BrowserMatch "Microsoft Data Access Internet Publishing Provider" redirect-carefully

BrowserMatch "MS FrontPage" redirect-carefully

BrowserMatch "^WebDrive" redirect-carefully

BrowserMatch "^WebDAVFS/1.[0123]" redirect-carefully

BrowserMatch "^gnome-vfs/1.0" redirect-carefully

BrowserMatch "^XML Spy" redirect-carefully

BrowserMatch "^Dreamweaver-WebDAV-SCM1" redirect-carefully

BrowserMatch "MSIE" AuthDigestEnableQueryStringHack=On



就完成一個簡單的設定了



之後重新啟動Apache



就可以使用webdav的功能摟!







ps. 補上CentOS上的設定




<IfModule mod_dav_fs.c>


        LimitXMLRequestBody 131072


#WebDAV資料夾必須更改擁有者與擁有群組為apache:apache

<Directory /home/sites/your.domain.tld/webdav>

        # Options none

        Options Indexes FollowSymLinks

        IndexOptions FancyIndexing

        AllowOverride None

        Order allow,deny

        Allow from all

</Directory>


Alias /webdav "/home/sites/your.domain.tld/webdav"


<Location /webdav>

        DAV On

        AuthType Basic

        AuthName DAV

        AuthUserFile /etc/httpd/your.webdav.users.pwd

        <LimitExcept GET HEAD OPTIONS>

                require valid-user

        </LimitExcept>

</Location>

</IfModule>

2009年8月7日

【Javascript】Random get number

參考Ext3.0 source code

function getRandomInt(min, max){
    return Math.floor(Math.random() * (max - min + 1)) + min;
}