2008年3月9日 星期日

目前study的進度在 SIP (Refer Method)

最近在study SIP REFER (RFC3515)這個部分...


大概會牽涉到...Session Initiation Protocol (SIP)-Specific Event Notification (RFC 3265)
...

主要方向是SIP在做Call的transfer的機制study...
所以會去深入study RFC3515 REFER這個部分,而REFER這個部分又涉及到RFC3265 (Specific Event Notification )。

就目前所了解的RFC3515,是在說明Subscriber與Notifier之間的行為模式...
當然要了解上面所說的前提是先了解RFC3261 (SIP: Session Initiation Protocol)這個doc。
整理完再來記錄...

到目前為止所po的文章,SIP方面的study還很零散,打算會先從RFC 3261開始著手整理,到時再po上來供大家參考。

2008年3月7日 星期五

Linux系統基礎指令(二)

下是我在網路上找的一些有關linux的資訊,這個部分比較乏味,我都是用到再來查...
=====================================================

常規表示式
什麼是常規表示式?

常規表示式(也稱為“regex”或“regexp”)是一種用來描述純文字模式的特殊語法。在 Linux 系統上,常規表示式通常被用來尋找純文字的模式,以及對純文字流執行“搜尋-置換”作業以及其它功能。
與 glob 的比較

當我們看到常規表示式時,您可能發現常規表示式的語法看起來與我們上一篇教學(請參閱本教學最後的“參考資料”一節中列出的“第 1 部分”)中研究的“文件名匹配替換”語法相類似。但是,不要讓它欺騙您;它們的類似性只是表面的。雖然常規表示式和文件名匹配替換模式可能看上去相類似,但是它們是根本不同的兩種類型。

簡單子串

記住那個警告,讓我們看一下最基本的常規表示式,簡單子串。為了這樣做,我們要使用 grep,它是一個掃瞄文件內容來尋找適合特定常規表示式的指令。grep 列印與常規表示式匹配的每一行,並忽略與之不匹配的每一行︰

在上面的指令中,grep 的第一個參數是一個常規表示式;第二個參數是一個文件名。grep 讀取 /etc/passwd 中的每一行並對它應用簡單子串常規表示式 bash 來尋找匹配項。如果找到一個匹配項,那麼 grep 列印出整行;否則,忽略該行。
$ grep bash /etc/passwd
operator:x:11:0:operator:/root:/bin/bash
root:x:0:0::/root:/bin/bash
ftp:x:40:1::/home/ftp:/bin/bash


在上面的指令中,grep 的第一個參數是一個常規表示式;第二個參數是一個文件名。grep 讀取 /etc/passwd 中的每一行並對它應用簡單子串常規表示式 bash 來尋找匹配項。如果找到一個匹配項,那麼 grep 列印出整行;否則,忽略該行。

理解簡單子串

一般來說,如果您正在搜尋一個子串,那麼您可以不提供任何“特殊”字元,而只是逐字地指定純文字。只有在子串包括 +、.、*、[、] 或 \(在這樣的情況下,這些字元需要用引號括起來並在它們的前面使用反斜線)才需要做特殊的事情。下面是簡單子串常規表示式幾個其它範例︰

/tmp (掃瞄尋找文字串 /tmp)
"\[box\]"(掃瞄尋找文字串 [box])
"\*funny\*"(掃瞄尋找文字串 *funny*)
"ld\.so"(掃瞄尋找文字串 ld.so)
元字元

使用常規表示式,可以利用元字元來執行比我們至今已研究過的範例複雜得多的搜尋。這些元字元中的一個是 "."(點),它與任何單個字元匹配︰

$ grep dev.hda /etc/fstab
/dev/hda3 / reiserfs noatime,ro 1 1
/dev/hda1 /boot reiserfs noauto,noatime,notail 1 2
/dev/hda2 swap swap sw 0 0
#/dev/hda4 /mnt/extra reiserfs noatime,rw 1 1


在本範例中,文字純文字 dev.hda 沒有出現在 /etc/fstab 中的任何一行中。但是,grep 掃瞄這些行時沒有尋找文字 dev.hda 字串,而是尋找 dev.hda 模式。請記住 "." 將與任何單個字元相匹配。正如您看到的,"." 元字元在功能上等價於 glob 擴充中"?"元字元的工作原理。

使用 []

如果我們希望與比 "." 更具體一點地來匹配字元,那麼我們可以使用 [ 和 ](方括號)來指定要匹配的字元子集︰

$ grep dev.hda[12] /etc/fstab
/dev/hda1 /boot reiserfs noauto,noatime,notail 1 2
/dev/hda2 swap swap sw 0 0


正如您看到的,這個特殊語法的作用與“glob”文件名擴充中的 [] 相同。同樣,這是學習常規表示式的難點之一 ─ 這個語法與“glob ”文件名擴充語法類似,但又不盡相同,它經常給學習常規表示式的人帶來困惑。

使用 [^]

透過使 [ 後面緊跟一個 ^,您可以使方括號中的意思相反。在本例中,方括號將與未列在方括號內的任意字元匹配。同樣,請注意我們在常規表示式中使用 [^] ,而在 glob 中使用 [!] ︰

$ grep dev.hda[^12] /etc/fstab
/dev/hda3 / reiserfs noatime,ro 1 1
#/dev/hda4 /mnt/extra reiserfs noatime,rw 1 1


區別語法

注意下面一點很重要︰方括號內部的語法根本不同於常規表示式其它部分中的語法。例如,如果在方括號內放置一個 "." ,那麼它容許方括號與文字 "." 匹配,就像上面範例中的 1 和 2。比較起來,除非有 \ 作為前綴,否則方括號外面的文字 "." 被解釋為一個元字元。透過輸入如下指令,我們可以利用這一事實來列印 /etc/fstab 中包括文字串 dev.hda 的所有行的清單︰

$ grep dev[.]hda /etc/fstab


或者,我們也可以輸入︰

$ grep "dev\.hda" /etc/fstab


這兩個常規表示式都不可能與您的 /etc/fstab 文件中的任何行相匹配。

“*”元字元

某些元字元本身不匹配任何字元,但卻修改前一個字元的含義。一個這樣的元字元是 * (星號),它用來與前一個字元的零次或者多次重復出現相匹配。這裡是一些範例︰

ab*c(與 abbbbc 匹配但不與 abqc 匹配)
ab*c(與 abc 匹配但不與 abbqbbc 匹配)
ab*c(與 ac 匹配但不與 cba 匹配)
b[cq]*e(與 bqe 匹配但不與 eb 匹配)
b[cq]*e(與 bccqqe 匹配但不與 bccc 匹配)
b[cq]*e(與 bqqcce 匹配但不與 cqe 匹配)
b[cq]*e(與 bbbeee 匹配)
.*(與任何字串匹配)
foo.*(與以 foo 開始的任何字串相匹配)
ac 行與常規表示式 ab*c 相匹配,因為星號也容許前面的表達式(b)出現零次。請注意解釋 * 常規表示式元字元所用的方法與解釋 * glob 字元的方法根本不同。

行的開始和結束

我們在這裡要詳細描述的最後幾個元字元是 ^ 和 $ 元字元,它們用來分別與行的開始和結束相匹配。透過在常規表示式開始處使用一個 ^ ,您可以將您的模式“錨定”在行的開始。在下面的範例中,我們使用 ^# 常規表示式來與以 # 字元開始的任何行相匹配︰

$ grep ^# /etc/fstab
# /etc/fstab: static file system information.
#


完整行常規表示式

可以組合 ^ 和 $ 來與完整的行相匹配。例如,下面的常規表示式將與以 # 字元開始並以 "." 字元結束的行相匹配,在其中間可以有任意多個其它字元︰

$ grep '^#.*\.$' /etc/fstab
# /etc/fstab: static file system information.



在上面的範例中,我們用單引號將我們的常規表示式括起來以阻止 shell 解釋 $ 。在不使用單引號的情況下,grep 甚至沒有機會檢視 $,$ 就從我們的常規表示式上消失了。

2008年3月6日 星期四

很好用的快捷工具列RocketDuck It's Free!!

R

ocketDock

很好用的快捷工具列~ RocketDuck
以下是她的優點需求~

Features:
Minimize windows to the dock
Real-time window previews in Vista
Running application indicators
Simple drag-n-drop interface
Multi-monitor support
Supports alpha-blended PNG and ICO icons
Icons zoom and transition smoothly
Auto-hide and Popup on mouse over
Positioning and layering options
Fully customizable
Completely Portable
ObjectDock Docklet support
Compatible with MobyDock, ObjectDock, RK Launcher, and Y'z Dock skins
Runs great on slower computers
Unicode compliant
Supports many languages and can easily be translated
A friendly user base :)
And best of all... its FREE!!!

Minimum System Requirements:
Windows 2000/XP/Vista
500Mhz or faster CPU
10MB RAM free

RocketDuck下載點
在RocketDuck的首頁還有他的DEMO,可以先看看!
對於常常要開一些軟體使用的人來說,RocketDuck真的很方便。桌面就不會累積一堆捷徑...

2008年3月5日 星期三

一些有關Robots (tag) 介紹

前剛好在弄AdSense,碰到了robots的問題,找到了些文件資料,給大家參考參考。

Robots (tag) 介紹
===============================================

robots.txtRobots META tag

  我們知道,搜索引擎都有自己的“搜索機器人”(ROBOTS),並透過這些ROBOTS在網路上沿著網頁上的鏈接(一般是http和src鏈接)不斷抓取資料建立自己的資料庫。 對於網站管理者和內容提供者來說,有時候會有一些站點內容,不希望被ROBOTS抓取而公開。為了解決這個問題,ROBOTS開發界提供了兩個辦法:一個是robots.txt,另一個是The Robots META tag。
一、 robots.txt
  1、 什麼是robots.txt?
  robots.txt是一個純文本文件,透過在這個文件中聲明該網站中不想被robots訪問的部分,這樣,該網站的部分或全部內容就可以不被搜索引擎收錄了,或者指定搜索引擎隻收錄指定的內容。
  當一個搜索機器人訪問一個站點時,它會首先檢查該站點根目錄下是否存在robots.txt,如果找到,搜索機器人就會按照該文件中的內容來確定訪問的範圍,如果該文件不存在,那麼搜索機器人就沿著鏈接抓取。
  robots.txt必須放置在一個站點的根目錄下,而且檔案名稱必須全部小寫。
  網站 URL
  相應的 robots.txt的 URL
  http://www.w3.org/
  http://www.w3.org/robots.txt
  http://www.w3.org:80/
  http://www.w3.org:80/robots.txt
  http://www.w3.org:1234/
  http://www.w3.org:1234/robots.txt
  http://w3.org/
  http://w3.org/robots.txt


  2、 robots.txt的語法
  "robots.txt"文件包含一條或更多的記錄,這些記錄透過空行分開(以CR,CR/NL, or NL作為結束符),每一條記錄的格式如下所示:
  ":"。
  在該文件中可以使用#進行註解,具體使用方法和UNIX中的慣例一樣。該文件中的記錄通常以一行或多行User-agent開始,後面加上若幹Disallow行,詳細情況如下:
  User-agent:
  該項的值用於描述搜索引擎robot的名字,在"robots.txt"文件中,如果有多條User-agent記錄說明有多個robot會受到該協議的限制,對該文件來說,至少要有一條User-agent記錄。如果該項的值設為*,則該協議對任何機器人均有效,在"robots.txt"文件中, "User-agent:*"這樣的記錄只能有一條。
  Disallow :
  該項的值用於描述不希望被訪問到的一個URL,這個URL可以是一條完整的路徑,也可以是部分的,任何以Disallow 開頭的URL均不會被robot訪問到。例如"Disallow: /help"對/help.html 和/help/index.html都不允許搜索引擎訪問,而"Disallow: /help/"則允許robot訪問/help.html,而不能訪問/help/index.html。
  任何一條Disallow記錄為空,說明該網站的所有部分都允許被訪問,在"/robots.txt"文件中,至少要有一條Disallow記錄。如果 "/robots.txt"是一個空文件,則對於所有的搜索引擎robot,該網站都是開放的。
  下面是一些robots.txt基本的用法:
  l 禁止所有搜索引擎訪問網站的任何部分:
  User-agent: *
  Disallow: /

  l 允許所有的robot訪問
  User-agent: *
  Disallow:

  或者也可以建一個空文件 "/robots.txt" file
  l 禁止所有搜索引擎訪問網站的幾個部分(下例中的cgi-bin、tmp、private目錄)
  User-agent: *
  Disallow: /cgi-bin/
  Disallow: /tmp/
  Disallow: /private/

  l 禁止某個搜索引擎的訪問(下例中的BadBot)
  User-agent: BadBot
  Disallow: /

  l 只允許某個搜索引擎的訪問(下例中的WebCrawler)
  User-agent: WebCrawler
  Disallow:
  User-agent: *
  Disallow: /

  3、 常見搜索引擎機器人Robots名字
  名稱 搜索引擎
  Baiduspiderhttp://www.baidu.com
  Scooterhttp://www.altavista.com
  ia_archiverhttp://www.alexa.com
  Googlebothttp://www.google.com
  FAST-WebCrawlerhttp://www.alltheweb.com
  Slurphttp://www.inktomi.com
  MSNBOThttp://search.msn.com

  4、 robots.txt舉例
  下面是一些著名站點的robots.txt:
  http://www.cnn.com/robots.txt
  http://www.google.com/robots.txt
  http://www.ibm.com/robots.txt
  http://www.sun.com/robots.txt
  http://www.eachnet.com/robots.txt


  下面一個小工具專門檢查robots.txt文件的有效性:
  http://www.searchengineworld.com/cgi-bin/robotcheck.cgi


  二、 Robots META tag
  1、什麼是Robots META tag
  Robots.txt文件主要是限制整個站點或者目錄的搜索引擎訪問情況,而Robots META tag則主要是針對一個個具體的頁面。和其他的META標簽(如使用的語言、頁面的描述、關鍵詞等)一樣,Robots META tag也是放在頁面的中,專門用來告訴搜索引擎ROBOTS如何抓取該頁的內容。具體的形式類似(見黑體部分):

<html>
<head>
<title>時代營銷--網路營銷專業門戶</title>
<meta name="Robots" content="index,follow">
<meta http-equiv="Content-Type" CONTENT="text/html; charset=gb2312">
<meta name="keywords" content="營銷… ">
<meta name="description" content="時代營銷網是…">
<link rel="stylesheet" href="/public/css.css" type="text/css">
</head>

<body>

</body>

</html>

  
  2、Robots META tag的寫法:
  Robots META標簽中沒有大小寫之分,name=”Robots”表示所有的搜索引擎,可以針對某個具體搜索引擎寫為name=”BaiduSpider”。content部分有四個指令選項:index、noindex、follow、nofollow,指令間以“,”分隔。
  INDEX 指令告訴搜索機器人抓取該頁面;
  FOLLOW 指令表示搜索機器人可以沿著該頁面上的鏈接繼續抓取下去;
  Robots Meta tag的值是INDEX和FOLLOW,只有inktomi除外,對於它,值是INDEX,NOFOLLOW。
  
其中
<meta content="INDEX,FOLLOW" name="ROBOTS">
可以寫成
<meta content="ALL" name="ROBOTS">;

<meta content="NOINDEX,NOFOLLOW" name="ROBOTS">
可以寫成
<meta content="NONE" name="ROBOTS">
  要注意的是:上述的robots.txt和Robots META tag限制搜索引擎機器人(ROBOTS)抓取站點內容的辦法只是一種規則,需要搜索引擎機器人的配合才行,並不是每個ROBOTS都遵守的。

2008年3月4日 星期二

Samba.conf 設定擋

S

amba 中最重要的設定檔為 /etc/samba/smb.conf。

而它又分為定義主機的 [global] 部分及定義分享資料夾 [webpage] 的部分。

[global] workgroup:工作群組。 netbios name:主機名稱。 server string:主機說明,隨便寫寫沒關係。

security:share(不管制)/user(以帳號密碼)/domain

Linux系統基礎指令(一)

近一直跟Linux接觸,所以開始著手整理一下手上的資料。
以下是我列出幾個很常用很常用的指令(再常用也不過了)算是"新手上路"級的
有些我只有列指令,因為可以直接使用。有些則是用例子來表示(因為有些指令是帶著參數使用、帶著檔案、或者目錄來使用)
bash shell
echo
cd /
cd ..
cd ~
pwd
ls
ls -a
ls -l
ls -d
ls -i


ex. mkdir easy
ex. rm copyme
rm -f
rm -r

ex. rm -fr easy
ex. mkdir -p easy/as/pie
ex. echo "firstfile" > copyme
ex. cat copyme
ex. cp copyme copiedme
ex. mv copy copp



ex. Hard Link
ln firstlink secondlink
ls -i firstlink secondlink
15782 firstlink 15782 secondlink



ex. Soft Link
ln -s secondlink thirdlink
ls -l firstlink secondlink thirdlink
-rw-rw-r-- 2 agriffis agriffis 0 Dec 31 19:08 firstlink
-rw-rw-r-- 2 agriffis agriffis 0 Dec 31 19:08 secondlink
lrwxrwxrwx 1 agriffis agriffis 10 Dec 31 19:39 thirdlink -> secondlink


最後這幾個算是很常用的指令,用途很多、也很強大,真的要好好了解


man
grep
find


ex. man find
ex. man grep
(沒錯! 就用man去查查那兩個指令的用法吧~ 其上所有指令都用man來查詢~)

SIP--最近一份報告的草稿~ <還有很多地方待修正~~~>

最近一份我的SIP報告的草稿~ <還有很多地方待修正~~~>



下面是OUTLINE以及下載點
此篇草稿主要是依據RFC3261來整理的
Overview of SIP
================================
SIP Functionality and Message Structure
Registration
Conclusions
References

主要的Reference如下
SIP: Session Initiation Protocol (Request for Comments: 3261)
HTTP Authentication: Basic and Digest Access Authentication (RFC 2617)
Session Initiation Protocol (SIP) Basic Call Flow Examples (RFC 3665)
Session Initiation(SIP) Methodology Handbook

有興趣的可以參考!


SIP~Intro v.1

2008年3月3日 星期一

Could not find the file "flash.ocx"

下次我在網路上找到的一個解法~ <加上我自己的情況>

原文轉貼處

錯誤訊息:
could not find the file "flash.ocx"

新機器配置 :
VAIO SZ-58 vista Business

發生原因:
上網更新 Adobe Flash Player V9e 版。

將 Adobe flash player 更新至 v9e 之後,原本在 %systemroot%\system32\Macromed\Flash 資料夾(不一定在此資料夾,要搜尋 flash*.ocx 看看)之 flash.ocx 會被移除,且剩下 flash9e.ocx。這樣的情況就會發生舊版設計的 flash 無法呼叫 flash.ocx

我的發生狀況是:
安裝完Dr.eye 7.0,並且更新新的Adbobe Flash player,將會出現 "Could not find the file "flash.ocx" 錯誤訊息方塊,導致該程式無法繼續執行。


解決方法:

打開 %systemroot%\system32\Macromed\Flash 資料夾(我的情況是在此資料夾裡),找到 flash?.ocx (? 代表現在的版本) 原地複製並將檔名改為 flash.ocx 即可。


Dr.eye 7---元件:DrAdb301,錯誤

重新安裝Dr.eye 7.0時發生的錯誤,以下是網路上找到的解法。



安裝時出現出現錯誤訊息"元件傳送錯誤,元件:DrAdb301,錯誤:檔案名稱、目錄名稱或磁碟區標籤語法錯誤",造成無法正常安裝。

A: 可能是系統曾安裝過Dr.eye,而系統機碼未清除乾淨造成,你可依以下步驟設定:
  1、移除Dr.eye後重開機(如果在"控制台"/"新增移除程式"中有Dr.eye項目時,先行移除)。
  2、刪除Dr.eye安裝目錄(二個目錄):
    C:\Program Files\Inventec\Dreye
    C:\Program Files\Common Files\Inventec Shared\DreyeDict
  3、執行光碟中/tool/Setup.exe,清除機碼
  4、再行重新安裝Dr.eye 7.0

以上方法我試過,可以work~

搜尋此網誌