2007年12月13日 星期四

Firefox好用元件

Oak Vocabulary
----

Firebug

2007年12月4日 星期二

[Weekly Report]2007.11.24-2007.11.30

1.Reading Tasks:
1-1.Paper reading:
MOJTABA HOSSEINI,etc.., UNIVERSITY OF OTTAWA, "A SURVEY OF APPLICATION-LAYER MULTICAST PROTOCOLS",IEEE Communications Surveys & Tutorials:
Just in the beginning. I read it to clarify the concept of multicast. I can realize unicast and broadcast easily, but multicast always confuses me.

1-2.Read some sections about security issues of "SIP Tutorial by Jiri Kuthan and Dorgham Sisalem":
I want to get the overview of SIP authentication mechanism and DOS of VoIP.

2.Implementation Tasks:
Install OpenNMS on Windows operating system.
Just install. Try it for fun.
It features for its functionality which can compare with enterprise softwares but it is open source. I feel that it seems to be likely to the MRTG(I mean the report and setup methods, but it remains for me to dig the core function of it).

3.Web Technology's Homework:
Paper Reading:
http://hsiao-ting.blogspot.com/2007/11/web-teconology-hw4-web-robot-study.html

4.Obstacles I met this week:
4.1 PHPGD can not be installed on my Linux environment....but I supposed it should work well in PHP5 version default. (The browser always displays a fatal error to me said,"The function is not found.")
4.2 Anxious about SIP network report for our lab(my undergraduate project)

2007年12月3日 星期一

有關IPv6

Windows XP 預設沒有啟動IPv6,需要手動啟動。
在假DOS下鍵入
ipv6 install
即可。

如果想要關閉的話,請鍵入
ipv6 uninstall
(有時候使用IPv6的話,網路會變得比較慢。)
----
不知道到底有沒有啟動,請鍵入
ipv6 if
----

進入某些server時會限制沒有啟動ipv6的client進入,所以要記得啟動,雖然Windows XP這個IPv6是假的!
---
有點軟的有點囉唆(完整)說明
Q.How do I install the IPv6 protocol for Windows XP?


A.

To install the IPv6 protocol for Windows XP with SP2, do the following:

1.

Log on to the computer with a user account that has privileges to change network configuration.

2.

Click Start, click Control Panel, and then double-click Network Connections.

3.

Right-click any local area connection, and then click Properties.

4.

Click Install.

5.

In the Select Network Component Type dialog box, click Protocol, and then click Add.

6.

In the Select Network Protocol dialog box, click Microsoft TCP/IP version 6, and then click OK.

7.

Click Close to save changes to your network connection.

Alternately, from the Windows XP desktop, click Start, point to Programs, point to Accessories, and then click Command Prompt. At the command prompt, type netsh interface ipv6 install.

For the IPv6 protocol for Windows XP with SP1, do the following:

1.

Log on to the computer with a user account that has privileges to change network configuration.

2.

Click Start, click Control Panel, and then double-click Network Connections.

3.

Right-click any local area connection, and then click Properties.

4.

Click Install.

5.

In the Select Network Component Type dialog box, click Protocol, and then click Add.

6.

In the Select Network Protocol dialog box, click Microsoft IPv6 Developer Edition, and then click OK.

7.

Click Close to save changes to your network connection.

Alternately, from the Windows XP desktop, click Start, point to Programs, point to Accessories, and then click Command Prompt. At the command prompt, type netsh interface ipv6 install.

To install the IPv6 protocol for Windows XP with no service packs installed:

1.

Log on to the computer running Windows XP with a user account that has privileges to change network configuration.

2.

Open a command prompt. From the Windows XP desktop, click Start, point to Programs, point to Accessories, and then click Command Prompt.

3.

At the command prompt, type ipv6 install.

Regardless of the version of Windows XP, to use RPC applications over IPv6, you must first restart the computer.

====

另,若想要在Linux 底下關閉IPv6支援,請
Referece Link:
IPv6 for Microsoft:FAQ

2007年11月27日 星期二

PHPGD

Def:
PHP script用來畫圖用的一個library.
(問:Library 和API到底在定義上和實際上有什麼不同?那天吃飯在討論,但是沒搞懂。)

Reference:
---------------
PHP:Image

中文指引
PHPGD.com

2007年11月26日 星期一

[Weekly Report]2007.11.17-2007.11.23

1.Reading Tasks:
1-1."Carrier Grade Voice over IP," p222-230
1-2.SIP.edu cookbook:From the beginning to User Agents section
But some parts of that still confuse me, like how to set the routing rules for SIP.edu mechanism.

2.Prepare for midterm of VoIP measurement.
3.Homework of Web Technology:
Study the search robot(a related paper or a search tool)
---
4.and fight against the cold virus....

2007年11月23日 星期五

OpenNMS on M$ Windows note

install instruction:link

tintin評:好裝

2007年11月22日 星期四

Web Teconology HW4-web robot study

Web Technology HW4

Web Robot Study


Paper Reading:

Monika R. Henzinger(Google Inc.),

“Hyperlink Analysis for the Web”,IEEE Internet Computing

本篇是由Goole網路公司的一位員工所撰寫的surey 型論文。主要提出一種搜尋引擎可使用的演算法。

Kleinberg’s Hyperlink-induced Topic Search(HITS) Algorithm

如何去定義一個連結(或稱網頁)與你所鍵入搜尋列的相關度?又如何定位一個連結的屬性為何?以本身使用搜尋引擎的經驗來說,在yahoo奇摩搜尋時,搜尋結果排序在前面的較為可能是其它搜尋引擎的此關鍵字相關頁面,而Google在排序搜尋結果時,會把較為人常用的網頁排在前頭。雖然不知道這兩大搜尋引擎排序的遊戲規則為何,但是對照這次作業所讀的論文,好像兩者有一定的相關。在論文中提出,有兩大類的連結類型。一類是Authority Links,一類是Hub LinksAuthority Links指的是此連結(也就是論文中所示之node節點)有許多的indegree nodes,且這些indegree nodes因著重要性不同會有不同權重;Hub Links則是outdegree nodes 很多,像Hub集線器般將很多網頁集合起來。這兩類型的連結在茫茫網海中都可以算是優質網頁,也是各大搜尋引擎會優先列出的搜尋結果。

The Key Power of HyperLink Analysis

這樣的分類突顯了網際網路上的資訊檢索與傳統的資料庫或資料收集系統的差異。在網際網路中,一個網頁是否有價值,不只和它本身的內容有關,更具判斷力的準則在於:它與其它網頁(尤其是那些具有指標性的網頁)的相關度如何?母以子(子連結)貴也好,子以母貴也好,想要成為一個好的網站就是要朝這兩個方向努力:成為一個收集某領域的資訊中繼站,或者,內容棒到讓權威性網站不得不為你多設一個超連結,讓你成為它們的延伸閱讀。

2007年11月18日 星期日

[Weekly Report]2007.11.10-2007.11.16

1.Reading Tasks:
1-1."Carrier Grade Voice over IP," p215-222
And I also review chapter 1~2 to prepare for themidterm of the class, VoIP Measurement

1-2. RFC3261 section 22
In order to learn the authentication of SIP, I study section 22. In the OpenSER configuration file, it has the implementation codes for the specification authentication. I am glad to find it. (It seems that I can "trace code"?!)

2.Implementation Tasks:
2-1. Learn how to update the MySQL table which is storing the mapping between username and phone number.

2-2.The SIP server can do the authentication work, but the users on the server cannot call others. The users can register and get the other one call him. I also catch the packets between the call flow. When the registered user calls out, no packet comes from the user agent.
(And I also tried two scenarios: using private IP and public IP. When I use public IP, I even can't register on the the SIP server with IP:163.22.20.154. The gnome package for VoIP,Ekiga said, "There is other program listening the port. You cannot make a SIP call.")
The set-up of SIP server seems so easy for others and it is so difficult for me. Why?(Work hours:over 16 hours this week...not including my co-worker's:wenjen)
==============================================
Aaron Solomon using FreeBSD 6.2
寄給 Hsiao-Ting
顯示詳細資料
11月27日
Dear Hsiao-Ting:

I am puzzled by what you wrote in your report: "When I use public IP, I
even can't register on the the SIP server with IP:163.22.20.154."
Because you did not specify the UA you were using, I was unable to check
that for you.

Please try to write down the problem which you encountered, so that we
can discuss how to solve it.

The key to solve a complicated problem is always "Divide and Conquer".
Try to isolate the problem. Try to find out whether the problem is on
the server or on the client. After you divide the problem into many
small pieces, you will find it easier to handle in the smaller scale.

With best regards,
Solomon
Nov. 27

2007年11月13日 星期二

OpenSER Note

1.修改/etc/default/openser
第一行改成yes

2.啟動
sudo /etc/ini.d/openser start

(啟動認證模組)
3.建立SQL table
shell script 檔放在/usr/sbin/openser_mysql.sh
/usr/sbin/openser_mysql.sh create
建立資料庫(表)

4.將openser.cfg檔案中下列行去掉註解
loadmodule "mysql.so"
loadmodule "auth.so"
loadmodule "atuh_db.so"
modparam("usrloc","db_mode",0)
modparam("auth_db","calculate_hal",yes)
modparam("auth_db","password_column","password")

5.將/etc/openser/openserctlrc中的HAS_SERWEB="yes"這行去掉註解註記,才能增加三個以上的subscriber.

6.openser在mysql中會建立使用者openser,若密碼鍵入openserro則為唯讀使用者,openserrw為可讀寫的使用者。

7.可看/var/log/openser.log來debug
(tail -F openser.log可即時更新log檔)

About User Agent:
  • X-lite:在Linux底下的X-lite常常在設定SIP server資訊時,發生記憶體區段錯誤,而且開啟時很慢。如果以console介面用指令開啟會比較穩一點。
    • 看了好幾篇X-lite Forum,發現作者對Linux版本開發並不積極,所以bugs很多應該…不意外。
  • Ekiga:只要換了Public IP就不能在163.22.20.154 SIP server註冊。
    • 要改監聽port
      • →gconf-editor(組態編輯器)→apps
      • →ekiga
      • →protocols
      • →sip
      • →listen_port
      • →改成非5060的值(range在5060~5100之間即可,我設成5070)
      • (11/27)改了也不行
    • (X-lite會自動找可用的監聽port)
  • Twinkle蠻好用的(Twinkle0.9)
    • System setting->listening port要改(e.g.5061)
  • CISCO 7960上記得Authentication name也要設置才可註冊。




Related Links:
官網安裝notes

2007年11月9日 星期五

[Weekly Report]2007.11.3-2007.11.9

1.Reading Tasks:
1-1."Carrier Grade Voice over IP," p209-215
1-2. RFC3261 section 13
1-3. Paper Study:
SIP.edu white paper
http://www.internet2.edu/sip.edu/docs/sip.edu-whitepaper1.pdf
It seems a interesting project. I want to say "SIP me "in the near future.
2.
2-1.The SIP Fluoroscope system works in the "ms11.voip.edu.tw"!!!

2-2.Establish a SIP server on my computers in the dormitory and lab. But there is something wrong with load authentication modules.(Everyone can make a call through my proxy server,so obviously the authentication failed.)

3.VoIP Homework
VoIP HW2-如何確保RTP header 中SSRC欄位的獨一性?
<http://hsiao-ting.blogspot.com/2007/10/voip-hw2-rtp-header-ssrc.html>
----
老師:請問我該學的是用PHP language畫像MRTG那種流量圖,還是動態的call-flow圖呢?最近在逛AJAX和PHP的網站,所以想先問一下哪些是我可以在survey時多看兩眼的主題。
=====================================
Aaron Solomon using FreeBSD 6.2
寄給 Hsiao-Ting, changyu, wenjen
顯示詳細資料
11月12日
On Thu, Nov 08, 2007 at 03:10:42PM +0800, Hsiao-Ting Wang wrote:
> 1.Reading Tasks:
> 1-1."Carrier Grade Voice over IP," p209-215
> 1-2. RFC3261 section 13
> 1-3. Paper Study:
> SIP.edu white paper
> http://www.internet2.edu/sip.edu/docs/sip.edu-whitepaper1.pdf
> It seems a interesting project. I want to say "SIP me "in the near future.

Check with Chang-Yu to understand which MySQL table is storing the
mapping between username and phone number, and learn how to update the
table in the future.

> 2.
> 2-1.The SIP Fluoroscope system works in the "ms11.voip.edu.tw"!!!

How about the one on "iPBX.ipv6.club.tw"?

> 2-2.Establish a SIP server on my computers in the dormitory and lab. But there is something wrong with load authentication modules.(Everyone can make a call through my proxy server,so obviously the authentication failed.)

Check with Wen-Jen to learn how to set up the authentication module
successfully.

> 3.VoIP Homework
> VoIP HW2-如何確保RTP header 中SSRC欄位的獨一性?
> <http://hsiao-ting.blogspot.com/2007/10/voip-hw2-rtp-header-ssrc.html>
> ----
> 老師:請問我該學的是用PHP language畫像MRTG那種流量圖,還是動態的call-flow圖呢?最近在逛AJAX和PHP的網站,所以想先問一下哪些是我可以在survey時多看兩眼的主題。

Try to learn "PHP GD" (http://www.php.net/gd) first, and then try to
install a MRTG on your own server. After that, we can discuss what
further tools you need to learn.

With best regards,
Solomon
Nov. 12

2007年11月6日 星期二

AJAX note

SAJAX
XAJAX

Ajaxian


To myself:
Need to practice coding skills about AJAX and become an Ajaxian. It is my task.

2007年11月5日 星期一

SIP Fluoroscope(SIP透視鏡)安裝程序

實作環境:
FreeBSD 5.4-RELEASE

前置作業:
架好SIP server(e.g.SER or OPENSER)並啟動服務
→在MySQL建立資料庫並資料表,以存放封包表頭內容(有table.sql檔案可匯入)
→在init.php中設定資料庫名稱及將登錄資訊設置妥當
  • $DB_HOST = 'localhost';
  • $DB_USER = 'martensite';
  • $DB_PASSWORD = '';
  • $DB_NAME = 'test';
→改各個檔案的路徑
(2007.11.6淩晨註:我稍稍改了檔案,結果不用改路徑就能用了。所以之前在耍笨。:D~不過,還是留著好了,因為此時此日程度很差的我可是研究了很久呢…還有,學長將檔案分成兩個不同的資料夾放的原因為何?是有特別用意或只是懶得改…不解!)
(11.6早上:我錯了!一定要放兩個資料夾,但現在還沒時間改…)
  • query.php
    • require_once("/home/martensite/www/sipmagnifier/init.php");
  • detail.php
    • require_once('/home/martensite/www/sipmagnifier/init.php');
  • dissector_lite.php
    • require_once('/home/martensite/www/sipmagnifier/init.php');
  • makepcap.php
    • require_once('/home/martensite/www/sipmagnifier/init.php');
  • mailpcap.php
    • $header .= "From: \"SIP Fluoroscope\"<martensite@ms11.voip.edu.tw>\n";//設定信件來源
啟動:
refer to this.

下載點:
完整檔案下載
(.zip檔,密碼請來信索取)

如安裝成功,成果如下列網站:
SIP Fluoroscope System
(請按Enable Live Update可得到即時封包訊息)

Todo List:
把路徑改回來
研究如何在開機時自動啟動此系統(in FreeBSD and Linux)

待學習

1.加強程式能力(PHP.C語言)
2.Linux OS的熟悉度
3.分散式系統相關研究(切勿閉門造車)
4.語文能力
5.表達能力(口語、寫作)
----
Detail
1.php畫圖(流程圖?call flow.動態→那PHPit就不行了...)
-phpGD
2.同時存取多個資料庫並作交叉比對

2007年11月4日 星期日

[Weekly Report]2007.10.27-2007.11.2

1.Reading Tasks:
1-1."Carrier Grade Voice over IP," p196-209
1-2.RFC3261 section 12~13.2(Finally,I choose to skip some parts which are too detailed)

2.After discussing with sepp,I got something clear that I misunderstood before. Rewrite a easy implementation flow chart for myself to check. This week, the SIP Fluoroscope system can catch SIP header
in the database of my own, but the web-oriented user interface with AJAX technology doesn't work. I believe that something I ignored led to the failure.

3.Web Technology Homework:
3-1.Web Teconology HW3- paper study about HTTP protocol performance enhancement
Study Paper:
Network Performance Effects of HTTP/1.1, CSS1, and PNG
<http://hsiao-ting.blogspot.com/2007/10/web-teconology-hw3-paper-study-about.html>

2007年11月1日 星期四

SIPp note

在Debian/Linux下安裝SIPp


前置作業:

On Linux/Debian systems (or any system where dpkg is installed), you can get all pre-requisites for SIPp by doing:

apt-get install gcc-c++
apt-get install ncurses-devel
apt-get install openssl-devel
apt-get install libssl-dev
apt-get install libnet1-dev
apt-get install libpcap0.8-dev
-----

2008/4/14
當初就寫了note,結果到上禮拜才真的安裝好。
不懂那時候在寫什麼意思的?

2007年10月26日 星期五

[Weekly Report]2007.10.20-2007.10.26

1.Reading Tasks:
1-1."Carrier Grade Voice over IP," p190-196
1-2.A part of RFC 3550" RTP: A Transport Protocol for Real-Time Applications":
Read the document to improve the understanding of RTP and for the assignment of "the Measurement of VoIP".

2.Attend WiMAX Demonstration:
-----
The draft of review report is following:
1.事前準備不足:
預備期太短,讀的東西很少,後來發現一個很方便的方法,就是可以使用google提供的快訊服務,像WiMAX這種熱門的議題,每天的新聞很多,讓搜尋引擎幫忙收集,寄到信箱裡,標題有興趣的再去詳細讀,這樣效率不錯。
e.g.在展覽時有人說我們學校跟仁愛鄉合作的偏遠地區遠距教學計劃(由石勝文老師主導),也是利用WiMAX連線,因為之前沒有讀過相關新聞,所以沒辦法很有把握地回應來賓的詢問。
2.太求好心切:
因為想把事情做好,做事很急,口氣就變差,所以有時候會沒顧到別人的感受。(正好印證了才說嘴就打了嘴,還敢說別人幹嘛這麼在意,最在意的其實是自己。我很怕被老師罵…)
3.學習合作的精神:
要學著只看自己的不足,忘記別人的失誤,這是很難的人生課題,一直都學不好。
4.溝通能力不足:
e.g.在最後一天下午構想3分鐘demo時,可能因為我太急了,沒有將細節想得很清楚,所以跟學姊溝通時只說個大概,跟嘉裕溝通時說得更是籠統,所以可 能大家會錯意了,正式上場時會出包也就在所難免。雖然一心想要把事情做好,但是吃快打破碗更 慘。
5.總務職責:
應該要事前將出差報帳相關注意事項調查清楚。
e.g.我們需要在會場明顯標的物處合照,以利報帳程序,但是因為不清楚這點,所以只照了其它攤位的展示,反而自己攤位和動態展示過程都沒拍到。

2007年10月25日 星期四

[Weekly Report]2007.10.13-2007.10.19

1.Reading Tasks:
1-1-1."Carrier Grade Voice over IP," p175~190
1-1-2."Unix Programming Environment," 4-4:filter-awk
1-1-3. Website,"FreeBSD Developers' Handbook" :
<http://www.freebsd.org/doc/en_US.ISO8859-1/books/developers-handbook/index.html>

2. Implementation Tasks:
Practice some awk examples about processing method of the /etc/passwd file, like find the user with no password,select specific fields to print out,and some other format output of it.

3.Web Technology Homework:
3-1 Install Apache
http://hsiao-ting.blogspot.com/2007/10/web-teconology-hw2-install-and-study.html
3-2 Use the Netcat utility
http://hsiao-ting.blogspot.com/2007/10/web-teconology-h.html
4. Prepare for the WiMAX Demonstration:
Learn the cooperation skills from the course of preparation, even there are many emotional stories in it.:D

VoIP HW3- Socket Programming

n
HW3
TCP
  • 請寫出TCP Server的多重客戶端,來同時管理多個客戶端
  • Client可以傳送檔案到Server
多客戶端可用select()來實現。
如何上傳檔案?

UDP
  • 每個Client端由鍵盤輸入字串,傳送給Server端時,
  • Server端要能顯示訊息是那一個Client所發送的
如何顯示是誰發送的訊息?

Reference:
Linux Socket Programming by Example
Socket Programming in C

VoIP HW2-如何確保RTP header 中SSRC欄位的獨一性?

題目:
Read RFC 3550 to study how the protocol guarantee the global uniqueness of SSRC.
Draw a flow chart of the algorithm in a powerPoint file and send it to voip-ta@voip.edu.tw
Deadline: 11/7中午12點
(為什麼我每次都要把問題想得這麼複雜????)

SSRC: Synchronization Source
32 bits
隨機選取,獨立於 IP address
用途:使一個RTP session 中的每個participant 都有獨一的識別資訊。
確保獨一性?RFC 3550 Appendix A.6

Note
n
MD5 routines (RFC 1321)其實就能確保兩兩RTP封包的SSRC值碰撞機率僅有百萬分之一。以下是實作時可用的functions:
getdomainname()
getwd()
getrusage()



Web Teconology HW3- paper study about HTTP protocol performance enhancement

Study Paper:
Network Performance Effects of HTTP/1.1, CSS1, and PNG

本篇論文主要就著HTTP/1.1針對HTTP/1.0所作的功能改進,做一效能評估。
HTTP/1.0有一大部分的封包是用來建立及關閉連結,且因為TCP有slow start這個演算法,會用好幾個封包去偵測網路狀況,以達到最好的傳輸率。這麼多非主要payload的封包,是造成網路壅塞的一項主因。(以現行HTTP多採1.1的角度來看,1.0看起來像製造了很多不必要的垃圾封包。)

作者主要分成兩種網路常見的html embeded type來探討兩代的HTTP對其的影響。
1.CSS(Cascading Style Sheets)
2.PNG(Portable Network Graphics)
也研究了兩代HTTP對於傳輸資料(圖像)壓縮的支援及(解)壓縮的效能。

我的想法:
新一代的協定(HTTP/1.1)其設計動機當然就是改良現行協定(也就是論文寫作時的HTTP/1.0),所以可以想見此篇論文的種種測試假設都會有好結果。
因為論文內容很多,老實說在這次作業繳交期限前沒辦法全部看完。看了一下論文架構,作者很著重地描述做了哪些測試,也將種種變因詳述,觀察他做實驗的做法,真的很有實事求是的精神,一次一個變因,一步一步記錄,這是一種很好的研究精神。回想自己常在測試程式時,一次改變好幾個地方,且以為出錯的不會是我改的那個小地方,結果改變了一組變因就突然可以運作,也就不能真正了解到底是調整哪個變數才是關鍵。

雖然是一篇十年前的論文,邏輯清晰、說理明白,應該可算是當代佳作,可以學習的地方很多。

關於Linux Distribution 的選擇

當初在選Linux Distribution 時,單純是因為身邊有高手是Debian的愛用者,那時候連什麼是Linux都傻傻搞不清楚,就跟著用下去了。慢慢地懂了一點這個好像很難用的作業系統,也看了好多人說Debian是「高手」在用的Distro,自認程度很差的我,幾度想換其它的distro玩看看,但就是沒時間重灌。最近研究進度有點落後,壓力來襲之下居然開始亂玩別人研究領域的軟體,像sipp、linphone等等,因為實驗室的server延用FreeBSD當作業系統,所以有人的研究必須先學著在FreeBSD上把sipp裝起來,光是這一步對一般Unix-like OS的初心者而言就是個大工程,可是我花了10分鐘就把source code compile到可以使用。這都要歸功於Debian的套件管理太強悍,而且因為使用的高手多,所以幾乎所有open source的軟體都有人包成deb,比起Fedora,使用者只需花時間在學習使用軟體上,關於作業系統、檔案架構,只要有個基本認識就可以開始玩重點部分。

不過,我也不知道這樣好或不好,因為以後出了社會,在公司裡是一定要使用Linux,但distro就不能自己選擇了,所以好像也得學著一步一腳印編譯程式…

2008.1.15 Reference:
FourDollars Blog

2007年10月15日 星期一

Web Technology Homework Rule

Turn in your report in class.
E-mail an electronic copy to me before deadline.
Deadline: 12:00 p.m. Sunday
Email subject: web-tech, homework#, student-id
Attached document format: ms-word (.doc) or acrobat (.pdf)
Make all your reports accessible through
http://www.ncnu.edu.tw/~youraccount/web_tech
老師的email:
hychen@csie.ncnu.edu.tw
----
寫作業都不看規則,會白做工。

2007年10月14日 星期日

Web Teconology HW2- Install and Study Apache

Install Apache in Linux:
要在Linux上設立一個WWW Server需要的套件有下列幾項:
Apache
httpd
mysql
mysql-server
php
php-devel
php-mysql
(如果不是使用像apt之類會自動管理套件相依性的軟體安裝Apache,則需自行注意以上套件是否皆有安裝,否則Apache會無法使用)

都安裝好後網頁放置在/var/www.
Apache設定檔在/ect/apache/httpd.conf

Install Apache in Windows:
在Windows底下,因為之前就以安裝Appserv程式,所以以Appserv來說明這部分。
選擇版本為 AppServ 2.5.7 ,
內含
Apache 2.2.3
PHP 5.1.6
MySQL 5.0.24a
phpMyAdmin-2.9.0.2

2007年10月12日 星期五

A Tip a Day Keeps the Doctor Away!(Keep Updating!!)

10/12
今天可愛的鐘逸學長認真指導學弟,如何在Fedora/Linux的環境下操作複雜的安裝過程時,發出一問:"到底要怎麼樣才可以一直往下點?(註1)"

解答如下:工具列:編輯(E)-->偏好設定→運作方式標籤→總是以瀏覽視窗開啟(圖)
(solved by 帥氣學長Po-Chou)

註1:白話一點的說法就是當我們雙擊一資料夾時,如何在同一視窗開啟,而不是像預設般又再開啟一視窗檢視。
註2:想不到吧!這可是很多人一直以來的疑問呢!雖然它很trivial,但也是個小tip. Enjoy it!!

10/13
如何增加PATH?
(還沒全試出來…)
10/14
Linux底下對網路做了新的設定,就必需重啟網卡。請在命令列下鍵入:
/etc/init.d/network restart
即可
11/3
in vim,using
:make %:r (神奇耶!←鄉巴佬)
就可以用runtime compiler編譯程式
11/4
用vim coding時,在第一行鍵入gg=G,即可將全部的code自動對齊(indent)
(很愛這個vim tip)


12/20
ssh登入畫面請修改/etc/motd
sshd config在/etc/sshd/sshd_config

Web Technology HW1-using netcat

Preamble:
netcat for Windows版本一直沒辦法安裝起來,所以大部分的實驗都是用Cygwin這個在Windows模擬Linux的Emulator實作。
基本用法:

nc [-option] host-name -p port-number

好用參數:
-h 幫助訊息 (help)
-i seconds 可以用來設置發送一行標準輸入訊息的間隔,以減少發送速度
-l 監聽模式 (listening some ports),聽說可以用來欺騙別的主機,為一種hacker手法,還沒試出來
-n 直接指定IP位址。 預設情況下,netcat會向DNS或NIS server 查詢IP位址對應的主機名稱或網路名稱,然而,在排除網路問題時,我們往往沒有DNS server可用,這時候可用-n選項讓netcat以點式四數格式來表示IP位址,而不進行任何查詢動作。
-o logfile 可以將連接往來傳輸的訊息,並將收到的訊息以16進制的形式記錄到logfile中。其中,每行的第一個字符為<或>,分別表示接收的訊息或發送的訊息。
-s ip-address 鎖定本地網路資源位址
-v 將得到的訊息詳細輸出(-vv會更加詳細)
-u UDP模式(因為研究主題與RTP和UDP相關,故此選項以後應該會常用到)
-------------
以下是我對netcat的man page中較有興趣的參數及用法做的實驗:

實作一:
nc ftp.ncnu.edu.tw 21
530 Please login with USER and PASS.
實作二:
nc http://www.ncnu.edu.tw 80
(一開始一直會time out就結束連線了)
實作三:
用兩台電腦A、B測試,A設為server端,則可用netcat使A的某個port處於監聽狀態:
nc -l -p 2000
(-l -p表示A的port 2000處於監聽狀態,實驗用的port最好不要設在well-known port的區間內)
而電腦B可使用netcat去傳遞資訊:
(這次實驗用的A 主機位於實驗室NAT下的IP Address:10.10.21.97)
nc 10.10.21.97 -p 1000
如此一來,在B鍵入任何字元,都可即時出現在A端。(理論上應該是即時,但是實驗時覺得delay有點嚴重)
此法也可用來在A、B兩端傳遞檔案,只要以root進入B主機,鍵入:
bzip2 -c /dev/sda | netcat 10.10.21.97 2000
(這個實驗我在Debian/Linux下實作的,因為需要一個完整的Linux OS和其root權限)

實作四:

以個人網站http://ms11.voip.edu.tw/~martensite/index.html

為測試網頁。

測試messages:

(1)一開始測netcat ms11.voip.edu.tw/~martensite 80

會得到forward host lookup failed: Unknown host : Connection timed out response

(2)netcat ms11.voip.edu.tw 80

get /~martensite/index.html 即可成功,並隨即關掉TCP連線。

(3)接下來我想測試若檢索圖片會有怎樣的效果:

netcat ms11.voip.edu.tw 80

get /~martensite/image/hsiao.JPG

目前http成功的就是這幾個步驟,其它的還待測試,推測應該是指令不熟和對網路架構不熟的緣故。



Epilog:
因為很多功能還沒有真正測試出來,所以還未能感受到所謂網路瑞士刀的功力。但是已可體會它應該是一個很有用的工具,在這次作業繳交後仍會繼續測試,且應用在研究上。
Reference:
Linux.com的介紹文章
http://www.linux.com/articles/114093

某論壇netcat介紹文章
http://bb.stormer.com.tw/viewthread.php?tid=522
傳遞檔案的部分參考:
cyberciti.biz的一篇簡介
http://www.cyberciti.biz/tips/howto-copy-compressed-drive-image-over-network.html
man page of GNU Netcat's

[Weekly Report]2007.10.6-2007.10.12

1. Reading Tasks:
1-1-1."Carrier Grade Voice over IP," p166-175
1-1-2."Unix Programming Environment," 4.2~4.3
Practice sed and awk using the resource of "Unix Programming" class taught by prof. Klim(張克寧老師).
http://www.csie.ncnu.edu.tw/~klim/
(It is a helpful page for me.)

2. Implementation Tasks:
Besides sed and awk practice, I also study a tutorial about GNU make tool.("The Linux Programming Environment," adopted from Computer Science Department Texas State University)
It is easy enough for me containing lots of step-by step examples to practice. But I have not finished it this week.

2007年10月11日 星期四

本月學習重點:SED & AWK

練習題:
http://www.csie.ncnu.edu.tw/%7Eklim/unix-intro/exer-2.html
1.寫一個 sed 的 script file, 使以下二行指令的執行效果類似.
$ ps -ef | sed -f your-sed-script
$ ps -ef -o user,pid
解答:
#your-sed-script
s/\(................\).*/\1/
另解:
#(一個字串+一段空白+再一個字串)+一堆字串→\1:
#印出第一個group,即為所求。
#,在column name 為靠左對齊時,格式會有錯誤(e.g:cygwin)
s/\([^ ]* *[^ ]*\).*/\1/

ps.其實用awk就可以用很trivial的解法
ps -ef | awk '{print $1,$2}'
#簡單到不行,但會被人家說殺雞用牛刀。

---
AWK應用(系統管理者愛用的工具?)
1.從/etc/passwd檔案中,用 awk找出pid 不連續的區段。
2.找出沒有密碼的使用者
awk -F: 'NF > 1 && amp; $1 !~ /^[#+-]/ && $2=="" {print $0}'
3.列出所有帳號
awk -F: '{if ($3>=500) print $1}' /etc/passwd

2007年10月10日 星期三

about嘸蝦米

使用嘸蝦米也好幾年了,但是還是有字打不出來,要使用 '+某個同音字,這樣很遜,所以在網誌上加個entry記一下常忘的字好了。
慶LYHP(第二碼是Y,不是F,F被L合併了!)
懶LJCB(為什麼我每次最後一碼都拆成T,不懂自己在想什麼,應該是不會寫字…→文盲!XD)
碎 待解,目前用 'ZS代過。


----
立志成為快打小蝦!!

2007年10月8日 星期一

[VoIP HW1]92321033

What is the newest RFC document in
ftp.NCNU.edu.tw RFC 4776
ftp.NCHU.edu.tw RFC 2693
ftp.NCTU.edu.tw RFC (2007/10/08-2007/10/09.ftp of nctu was down)
ftp.IETF.edu.tw RFC 5072(IP Version 6 over PPP)

What is the Internet Draft with largest "draft number you can find?
draft number:48
(draft-ietf-dnsext-mdns-48.txt)

What is the status of the following protocol:
POP3:STANDARD(RFC 1939)
DNS:STANDARD(RFC 1035)
DHCP:DRAFT STANDARD(RFC 2131)

Find an RFC document in each of the following category:
*Obsoleted standard- RFC 1725 Post Office Protocol - Version 3 (Obsoleted by RFC1939, STD0053)
*Poetry- RFC 1121 Act one - the poems
*Experimental- RFC 0096 An Interactive Network Experiment to Study Modes of Access the Network Information Center
*History- RFC 0937 Post Office Protocol: Version 2
*Process documents- RFC 2026 The Internet Standards Process -- Revision 3


第二次修的作業版本:

[VoIP HW1] 97321526

1. What is the newest RFC document in
1.1 ftp.NCNU.edu.tw

5380:
Hierarchical Mobile IPv6 (HMIPv6) Mobility Management

1.2. ftp.NCHU.edu.tw

5242:
A Generalized Unified Character Code: Western European and CJK
Sections.

1.3. ftp.NCTU.edu.tw
??Not found

1.4. ftp.IETF.org

5380:
Hierarchical Mobile IPv6 (HMIPv6) Mobility Management

Note: NCNU server maintains the latest mirror of IETF server.


2. What is the Internet Draft with largest "draft number" you can find?

Ans: 48(draft-ietf-dnsext-mdns-48)
(Use awk utility twice that set different field separators getting the
"draft numbers", sorting draft numbers, and get the largest one.)


3. What is the status (proposed standard, draft standard, standard) of
the following protocol
3.1. POP3: STANDARD

3.2. DNS: STANDARD

3.3 DHCP:PROPOSED STANDARD


4. Find an RFC document in each of the following category:
4.1. Obsoleted standard
0821:Simple Mail Transfer Protocol. J. Postel

4.2. Joke
1882: The 12-Days of Technology Before Christmas ,B. Hancock,
(12/26/1995...why proposed this rfc after X'mas?)

4.3. Poetry
1121 Act one - the poems. J. Postel, L. Kleinrock, V.G. Cerf, B.Boehm

4.4. Experimental
4828 on TCP Friendly Rate Control (TFRC): The Small-Packet (SP) Variant

4.5. History
3245 History and Context of ENUM Operational Decisions

4.6. Process documents
2026 Internet Standards Process

Note:Humorous RFCs(http://tangentsoft.net/rfcs/humorous.html)

2007年10月7日 星期日

[Weekly Report]2007.9.29-2007.10.5

1. Reading Tasks:
1-1-1."Carrier Grade Voice over IP," p53-72
1-1-2."Unix Programming Environment," 3.5~4.2
sed and awk are still suspended by me,but I study prof.洪朝貴's homepage first to get a glance at them.

2. Implementation Tasks:
Regex practice and other Linux command in the studying books.
---
明顯還在混...

2007年10月2日 星期二

寫報告or論文時注意事項

一直有個疑問,若reference中引用到網頁上的資訊,該如何將之列在reference中?(格式為何)下面的文章寫得蠻清楚的。
http://apastyle.blogspot.com/2005/10/blog-post_12.html
以後引用網頁資訊時,要記得加類似Retrieve Oct.18,2005這樣的timestamp。

Oct.2

2007年10月1日 星期一

如何用Dev C++ debug

http://www.lis.ntu.edu.tw/~khchen/course/pl/pl2007/trace.htm
用了幾年,還不會用debug....XD

史記:留侯世家

【留侯世家第二十五】

  留侯張良者,其先韓人也。大父開地,相韓昭侯、宣惠王、襄哀王。父平,相釐王、悼惠王。悼惠王二十三年,平卒。卒二十歲,秦滅韓。良年少,未宦事韓。
韓破,良家僮三百人,弟死不葬,悉以家財求客刺秦王,為韓報仇,以大父、父五世相韓故。

  良嘗學禮淮陽。東見倉海君。得力士,為鐵椎重百二十斤。秦皇帝東游,良與客狙擊秦皇帝博浪沙中,誤中副車。秦皇帝大怒,大索天下,求賊甚急,為張良故也。良乃更名姓,亡匿下邳。

  良嘗間從容步遊下邳圯上,有一老父,衣褐,至良所,直墮其履圯下,顧謂良曰:「孺子,下取履!」良鄂然,欲毆之。為其老,彊忍,下取履。父曰:「履我!」良業為取履,因長跪履之。父以足受,笑而去。良殊大驚,隨目之。父去裏所,複還,曰:「孺子可教矣。後五日平明,與我會此。」良因怪之,跪曰:「諾。」五日平明,良往。父已先在,怒曰:「與老人期,後,何也?」去,曰:
「後五日早會。」五日雞鳴,良往。父又先在,複怒曰:「後,何也?」去,曰:
「後五日複早來。」五日,良夜未半往。有頃,父亦來,喜曰:「當如是。」出一
編書,曰:「讀此則為王者師矣。後十年興。十三年孺子見我濟北,穀城山下黃石,即我矣。」遂去,無他言,不復見。旦日視其書,乃太公兵法也。良因異之,常習
誦讀之。
--------

既然我已經算是孺子,那我可以「兩腳」都進實驗室了嗎?
我的心都要碎了…

卡關記錄

www.rtfiber.com.tw/~changyj/recheck.1/recheck.1.html
這個範例真的是測試全為數字的正規表示式嗎?做實驗結果不符合…
(補完)
全為數字的正規表示範例應為:
-bash-2.05b$ echo '12343' | grep '^[0-9][0-9]*(我瘋了!作夢想到爬起來補完2007.10.1 4:19am)
--------
(in the "Unix Programming Environment)
grep 配上一堆\ $字組
e.g.
grep \$
grep \\$
grep \\\$
grep '\$'
grep '\'$'

grep \\
grep \\\\
grep "\$"
grep '"$'
grep "$"
測試檔:
$$$123
test $$ finger
$$
$
\
\\
freedom test tab test 1 2 3
\\\
\\jj//
\$
\\$
\\\$
\$\$
[]\$$$
$$$
$$
\\\\
122\\123\\\$

edede///\\$$
123\/$
解答:
簡言之,就是經過bash和grep各剝一層皮。

ls -l | sort +6nr
(我要按存取時間排序,但不行,還是依size排序,應該是指令下錯了,不過+5nr.+7nr.....都試過了…)
解答:

n>&m
不給append
e.g.
將time wc file >wc.out 2>time.out指令
改寫成time wc file >wc.out 2>&1
cat wc.out應該要append standard error output, but in vain.

不會用uniq(明明就重覆了還給我印出來)


sed 的tab怎麼打不出來(書上用→表示,可是在bash下按沒反應)
解答原來是版本的問題。使用sed 4.1.5就可以\t代表tab,而在ms11上的sed版本居然不可考?(sed --version不鳥我...)
還好有灌cygwin.......我知道電腦裡也有Debian/Linux,可是I am a lazybone.


about sed and awk....
(好想跳過去好想跳過去好想跳過去好想跳過去好想跳過去)
--------

2007年9月28日 星期五

Carrier Grade Voice over IP notes

*Standard Track
Internet draft→RFC→proposed standard (if 有兩個成功實作 and interoperability)→draft standard→standard(with a standard number,STD==RFC number)
*advantage of VoIP :
  • lower equipment cost
  • lower operating expense
  • integration of voice and data
  • potentially lower bandwidth
  • the wide spread availability

TCP Port numbers
well-known port numbers:0~1023
telnet:23,SMTP:25
IP address + prot number = socket address
TCP header format
Sequence number: count data octets
ack number: the next segment number that the receiver is expecting

[Weekly Report]2007.9.22-2007.9.29

1. Reading Tasks:
1-1-1."Carrier Grade Voice over IP," p39-53
1-1-2."Unix Programming Environment," 2-3~3-5

2. Implementation Tasks:
2-1-1.Do some testing of the examples in "Unix Programming Environment": Most of them worked, but I still couldn't try some regular expression pattern out(using grep command), like the exercise:
They mixed me up. Maybe I make some examples not suitable for them. Still trying.

3.Lab's Equipment Database maintain

2007年9月27日 星期四

a little VoIP note

2007.9.20

NTP VoIP Platform
Gateway:作通訊協定轉換用的設備
Carrier Grade :電信等級
Carrier Grade and VoIP:
  • 兩者為互斥的名詞
  • a serious alternative for voice communications with enhanced features
Carrier grade
  • the last time when it fails
  • 99.999% reliability(high reliability)
    • fully redundant(不過硬體設備要花錢錢),self healing
best-effort:狂送(封包)!←less of QoS
Telcos: telecommunication campanies

2007.11.1
RTCP:for period-related feedback
sender report:傳送者對網路狀況做報告(可有0~31個reports)
Receiver report: e.g.網路廣播電台
Source Description(SDES)
CNAME(canonical name)官方正式名稱
影音不同source→通常SSRC不同,CNAME相同(在同一session皆同)
BYE:要走了…(但有了SIP後就不太需要BYE)
每個封包都有SR(RR)、SDES
RTP port一定是偶數,RTCP port一定是偶數加一

[Weekly Report]2007.9.15-2007.9.21

1.Read papers and documents:
1.1 RFC 3261(~p42)
1.2 SIP Tutorial by Jiri Kuthan and Dorgham Sisalem
The two documents introduce the basic concepts of SIP. I tried to clarify the header field structure. But still a lot of fields confuse me, like contact.
1.3 "Terminating Telephony Services on the Internet,"Vijay K. Gurbani and Xian-He Sun, Senior Member, IEEE(p1~p3)

2.Install FreeBSD and try to set it a SIP server:
Read the SER manual page.

[Weekly Report]2007.9.8-2007.9.14

1.Papers Reading:
* SIPCache:A Distributed SIP Location Service for Mobile Ad-Hoc Networks
* A Stateless Neighbour-Aware Cooperative Caching Protocol for Ad-Hoc Networks (Introduction of PCache)
*SIP: Understanding the Session Initiation Protocol:
reading on the NetLibrary website ch1~ch2
2.Establish SIP server accounts

Regular Expression(正規表示式) notes


/*
*為什麼會有這篇 因為有一天可愛的鐘逸學長在問帥氣的柏州學長(明顯在巴結人)一個有關正規表示式的問題時,被好像在專心念書,其實一直在觀察四週的我(偷?)聽到了,try to find a method but in vain的感覺很不好,所以複習一下正規表示式囉!

*/

[a-Z]: 表示a-z,A-Z其中"一個"字母
[^a-Z]:表示非a-z,A-Z其中之一
*:量詞,出現零次或一次以上
.: 表示任何一單一字元
^:列首
$:列尾
\< :單字開始處 \> : 單字結束處



[:album:] 任何字母與數字
[:alpha:] 任何字母
[:cntrl:] 任何控制字元
[:digit:] 任何數字
[:lower:]任何一小寫字母
[:upper:]任何一大寫字母
[:print:]任何一可印字元
[:space:]任何空格字元



=======
好用的:
:%s /pattern/&/g 可用來計算有幾個符合pattern的字串(&表示符合pattern的字串,故代換後不改變文章)
\([a-z]\{2}\)\{2,\}\3,5\}
:%s/\([^0-9]\{1,}\)
去除/*………*/c語言註解
:%s:\/\*\(.\{-}\)\s*\*\/:\1:g
去除//
:%s://::g
(喜歡想太多的人可以用:%s:\/\/\(.\{-\}\)\s\+:\1:g)
=======
Reference:
msdn:正規表示式介紹(中文)
Regexp Syntax Summary
Regular Expression Library
RegExLib

/**
後記:雖然問題已被解出來,但是我還是得承認我沒弄懂整個指令的來龍去脈....
其實問題很簡單:
--
A女:"不要嘛~"
"來啦~",B男低語著…(內容純屬虛構)
-------
Scenario:小說中的對話原本是用""雙引號標記的,但現在作者想改用[ ],像vi 這種支援正規表示式的editor可如何快速取代呢?

**/


2007年9月19日 星期三

IPv4及IPv6之轉換技術

前言:為什麼會有這篇呢?因為某個下沉的夜有人丟這個網址給我
http://www.twnic.net.tw/file/07801b.htm
(給我這個幹嘛 XD)
剛好翻到之前去旁聽的筆記,順手整理一下囉!
2007.4.9
IPv4及IPv6之轉換技術
NGtrans規劃(Net Generation)
1.Dual Stack
OS有提供即可,或,可由OS更新,故,此法可減少硬體成本←優點
FreeBSD 4 .Solaries8之後surpport
*兩者routing table不同(32 bits vs. 128 bits)
2.Tunnel(通道機制)

eg.用router作tunneling
(1)手動(manually)
  • If no router do, do it by yourself.
  • 自己config 雙方的IPv4及IPv6位址
  • encapulation,decapulation(封裝,拼法待查)
(2)半自動(Semi-automated)
  • Tunnel Broker (Broke v.仲介)
  • 向tunnel broker註冊(用script告知)
(3)全自動(automated)
  • IPv4 Compatible Tunnel
  • 6 to 4 automatic tunneling
  • 2002:8243:1::/48
  • 130.67.0.1

如何在freeBSD下安裝bash

真神奇…居然預設沒有安裝bash....

1. 安裝 bash

# cd /usr/ports/shells/bash
# make install clean


2. 將 shell 改成 bash

# chsh <== 這個指令就是 change shell 的意思
#Changing user database information for root.
Login: root
Password:
Uid [#]: 0
Gid [# or name]: 0
Change [month day year]:
Expire [month day year]: Class: Home directory: /root
Shell: /bin/tcsh <== 把 /bin/tcsh 改成 /usr/local/bin/bash
Full Name: Charlie &
Office Location: Office Phone: Home Phone: Other information:
3. 存檔離開
4. 編輯 bash 設定檔
# vi /etc/profile 加入 export LANG=zh_TW.Big5 #設定繁體中文 export LC_ALL=zh_TW.Big5 #設定繁體中文
alias ls='ls -fGa' # 讓 ls 能顯現出顏色
alias rm='rm -i' # 刪除確認 alias cp='cp -i' # 拷貝確認
alias mv='mv -i' # 搬移確認
5. 自訂命令提示字元 PS1="[\u@\h \W]\\$ " 說明: \u --> 顯示使用者帳號
\h --> 顯示系統的 hostname
\w --> 完整路徑
\$ --> 以 # 表示 root,以 $ 表示一般使用者

6. 存檔離開,重新登入即可生效...

我覺得很重要的單字(paper常出現)

A~E:
collaboration共同合作、共同研究
de facto 事實上的
de facto standard 現存標準 (未經標準機構通過, 但卻被產業廣泛採用的標準)

F~J:
hybrid 混合(字典居然只查得到雜種這種解釋XD)
jitter:delay variation,在VoIP的世界裡,你delay的程度一直變也是惱人的問題啊!XD

K~O:
ubiquitous 隨處可見、隨處可用(常用來形容現在網際網路的普及性)

P~
proprietary 業主、各公司(強調各個)
status quo 現況


待續…

找論文、技術文章

Prof. Wu in mailing list:

If you have enough knowledge about these protocols, you are encouraged
to read VoIP papers in these magazines:

1. IEEE Internet Computing <http://www.computer.org/internet/> Magazine
2. IEEE Network
<http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?puNumber=65> Magazine
3. IEEE Communications Magazine
<http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?puNumber=35>
4. IEEE Communications Surveys & Tutorials
<http://www.comsoc.org/livepubs/surveys/index.html>

==========
(引用自ptt Master_D看板,並加上一些補充資料)

找所謂的"SCI"與"SSCI"可以分為兩階段

1.上期刊資料庫網站下載全文,如SDOS或IEEE

2.把下載完的期刊論文其"出版社",或"ISSN"等資訊,透過JCR查詢

此出版社是否列入SCI(Web of Science);SSCI,及其在該領域的排名等資訊

1.的相關連結:

http://www.sciencedirect.com/

http://ieeexplore.ieee.org/


2.的相關連結:

http://isiknowledge.com/(選Journal Citation Reports)

:以上各連結均需使用學術網路IP(在家使用需額外設定PROXY)連線
eg. 暨南大學學生在校外需設proxy
並於連線時輸入圖書館系統的帳號、密碼。
(密碼預設為身分證字號後四碼)
ref. to NCNU Library proxy configuration

=====
再附上一個網站:國立編譯館-學術名詞資訊網
若真的一定要找中文的資料,可以到此查一些專有名詞的中文翻譯為何。\

10/14補充:
近來發現Linux Magazine上也有很多名符其實的技術文件可參考,只是有些文章要有登錄後才能閱讀全文,跟讀者文摘一樣,還好是免費加入的會員制。
(說"名符其實"是因為網路上真的超多名不符實的網站啊!)
-----
怎樣的論文算是好的論文?
In general, Journal > Conference
SCI....有一定水準
Impact Factor
citation(被引用次數,不過這點有時候不太準,
e.g.在related work中被引用來批說有如何如何的缺失。)
(2008/2/12)

2007年9月17日 星期一

Debian Birthday Party 參加心得(2007.8.5)

(我真是個乖寶寶,老師說要寫心得我就寫了~)

之前有一段時間曾使用過Debian/Linux這個distribution,也觀察了使用者社群的討論區;日前,陳侃如同學告知八月五日有Debian Birthday Party in Taiwan(http://wiki.debian.org.tw/index.php/DebianBirthdayParty2007),一來對平日有在閱讀其網誌的作者們感到好奇,二來也想去增廣見聞,就安排了這次台北行。
在去參加這個聚會前,看了一下活動網頁上的流程,列了好幾位要發表心得,所以我便抱著要去聽演講的心態,但是到了會場一看發現完全不是這麼 回事。大家分成好幾個小組在聊天,稱之為聊天,是因為氣氛真的很輕鬆,第一次參與這樣聚會的我,四下觀望,找了一個好像比較適合新手討論的小組加入;之後 又藉著侃如認識了幾個耳聞已久的高手(其實侃如也在這個社群赫赫有名的人物),像是jserv(http://jserv.sayya.org/)、Andrew()……等等;聚會的後半,又認識了積丹尼(http://jidanni.org/)這個愛台灣的美國人,也跟一位熱血地在學校推廣Linux的高中生交流,我發現這一群人是這麼熱心於將自己廢寢忘食所研究出來的程式或想法分享給每一個人,甚至願意終身奉獻給這個零與一構築起來的世界。
在此特別要提到jserv這號人物。一開始我並不覺得坐在我身旁的這位是我仰慕已久的jserv,因為他真的太搞笑了,一點都沒有大眾所認 知的電腦高手般不知如何與人社交的氣質,一直到我終於開始仔細看了他給的名片,才驚訝於原來也有「這樣的高手」啊!席間他和我分享了他們公司在研發的產 品,是一支CPU僅有200MHz、使用JVM及LINUX平台開發程式的手機,並且聊了一下Wifi手機在美國因為必須配合官方監聽系統所遇到的難題 (這應該也是開發上述手機產品的動機,只是我在聽的時候,沒有把思路釐清),也天南地北地聊到他已過的經歷,以及到各處演講的趣聞,覺得收獲很多,雖然技 術的交流很少(他在說project開發現況時,我有好幾個名詞聽不太懂,所以沒辦法跟上他的思緒),但是我好像也感染了一些他對資訊技術的熱情。

[轉載]學會對付十大時間竊賊

  對付“十大時間竊賊”最重要的措施之一是要減少你浪費掉的時間。時間管理學研究發現,人們的時間往往是被下述十大“時間竊賊”給偷走的:

  (1)找東西

  據對美國200家大公司職員做的調查顯示,公司職員每年都要把6周時間浪費在尋找亂放的東西上面,這意味著他們每年要損失10%的時間。對付這個“時間竊賊”,有一條好的原則:不用的東西扔掉,不扔掉的東西分門別類保管好。

  (2)懶惰

  對付這個“時間竊賊”的辦法是:

  使用日程安排簿;

  在家居之外的地方工作;

  及早開始。

  (3)時斷時續

  研究發現,造成公司職員浪費時間最多的是干活時斷時續的方式。因為重新工作時,這位職員需要花時間調整大腦活動及注意力,才能在停頓的地方接下去干。

  (4)一個人包打天下

  提高效率的最大潛力,莫過于其他人的協助。你可以把工作委托給其他人,授權他們去幹,這樣每個人都是贏家。授權給別人,同時也要給他們完成任務所需要的條件。

  (5)偶發延誤

  這是最浪費時間的情況,要避免這種情況出現,惟一的辦法是預先安排工作。事前有准備,利用好偶發的延誤,你能把本來會失去的時間化為有用的時間。

  (6)惋惜不已或白日做夢

  老是想著過去犯過的錯誤和失去的機會,唏噓不已,又或者空想未來,這兩種心境都是極浪費時間的。

  (7)拖拖拉拉

  這種人花許多時間思考要做的事,擔心這個擔心那個,找借口推遲行動,又為沒有完成任務而悔恨。在這段時間里,其實他們本來能完成任務而且應轉入下一個工作了。

  (8)對問題缺乏理解就匆忙行動

  這種人與拖拉作風正好相反,他們在未獲得對一個問題的充分資訊之前就匆忙行動,以致往往需要推倒重來。這種人就必須培養自己的自制力。

  (9)消極情緒

  消極情緒使人失去幹勁,工作效率下降。對人懷有戒心、明爭暗斗、憤怒及其他消極情緒使我們難以做到最好。這就必須進行自我心理調適,培養積極心態。

  (10)分不清輕重緩急

  即使是避免了上述大多數問題的人,如果不懂得分清輕重緩急,也達不到應有的效果。區分輕重緩急是時間管理中最關鍵的問題,所以,我接下來多花一點篇幅來說明這個問
題。

  時間管理學家認為區分輕重緩急是時間管理最關鍵的技巧。許多人在處理日常事務時,完全不考慮完成某個任務之後他們會得到什麼好處。這些人以為每個任務都是一樣的,只要時間被工作填得滿滿的,他們就會很高興。或者,他們願意做表面看來有趣的事情,而不理會不那麼有趣的事情。他們完全不知道怎樣把人生的任務和責任按重要性排隊,確定主次。

  在確定每一天具體做什麼之前,要問自己一個問題:做什麼事最重要?你應該遵循一個非常重要的原則:在精力最旺盛的時候做最重要的事。什麼是最重要的事?即能給你帶來最高回報的事,最能幫助你實現目標的事。假如你的目標是在下一個月的銷售額為10萬元,你就要時時刻刻提醒自己:在我精力最旺盛、頭腦最清醒的時候抓緊搞促銷,而不是搓麻將、玩電腦游戲、踢足球。

  除了上述十大“時間竊賊”之外,其他常見的“時間竊賊”還有:承諾太多,喜歡開會,侃侃其談;門戶大開,迎來送往;家務繁雜,應酬過多等等。下面是充分利用時間的一些技巧:

  ——做好協調,工作分流;

  ——在處理重要而耗時的事務中感到厭倦時,改而處理其他雜務,既可節省時間,又能轉換心情;

  ——不浪費零碎時間(利用零碎時間處理雜務,延遲用餐時間以免擁擠等);

  ——採取比較簡單的生活方式,處理好工作與生活的矛盾;

  ——盡量減少不必要的對外應酬,必須應酬時設法節省應酬時間;

  ——充分運用上下班的搭車時間(如車上想問題等)。

  3.每天列出目標清單。

  每天晚上睡覺之前,拿出一張紙,把你明天要達成的目標記下來,不能少於6個,按重要程度編上號碼。早上一起床,馬上著手達成第一個目標,等到第一個目標達成後,然後開始想辦法實現第二個目標。如果有一個目標要做一整天,也沒關系,只要它是最重要的工作,就堅持做下去。

  以上這個方法做起來很簡單,而且對提高工作效率非常有效。它是美國現代公關之父艾維·李賣給伯利恒鋼鐵公司總經理西韋伯的提高效率的一種思維方法,據說這個簡單有效的方法價值百萬。

  我在很早以前就從報紙上看到這個賣思維的案例,可是由於我對這種“雕虫小技”不屑一顧,因而一直沒有使用。最近我看到這個案例後,我決定試試,結果不做不知道,一做嚇一跳!它太棒了!

  首先,它可以讓你每天過得很充實,不會無所事事。你想想看,每天你要達成6個目標,如果不動腦子仔細想想,還真想不出來。等你花費一番心思想出來了,寫在紙上,你還得給這些目標排次序。你得考慮哪件事情重要,哪件事情不那麼重要;哪件事情要先做,哪件事情後做。等你把這項工作完成後,你心中就繃緊了一根弦,你時刻就得為完成目標而忙碌,你是不是過得很充實?

  其次,目標清單能夠給你一些明確的任務,不會讓你干一些無聊的事情而浪費時間;而且它還能夠讓你分清輕重緩急,做事情有計划,不會像無頭蒼蠅一樣到處亂撞,從而極大地提高你的工作效率。

  如果你能夠堅持這樣做一個月,我相信你一定能夠養成一個良好的習慣,你也會越來越有成就感。只要你堅持做下去,你一定會離成功越來越近!

看不懂的文章 about five nines

看完後完全不了解
http://www.networkworld.com/details/5642.html?def

--------

看完課本之後的理解:(Sep.16)誤!

five 表示一年僅有少於五分鐘的down time→reliability
nines表示availability高達99.9999%(後面有幾個9不太確定)

Sep.19 note
發現之前的理解完全錯誤。(弱死了!)
five nines代表99.999%的availability,
一年有3600*24*365=31536000秒
31536000*(1-99.999%)=315.36秒
一年中unavailable time 應少於315.36秒,約五分鐘,
是故,課本提到的五分鐘是這樣來的。
(謝謝老師的提點)

reference:
http://en.wikipedia.org/wiki/Myth_of_the_nines

2007年9月16日 星期日

Install Liu in Linux

簡單版(可以不使用大腦):

移除Scim(Debian/Linux預設安裝Scim)

apt-get remove scim

安裝Gcin (已經裝好可省略此步驟)

  1. apt-get install gcin im-switch
    (安裝gcin和im-switch←可簡單地切換輸入法)
  2. im-switch -s gcin
    (將gcin更改成預設輸入法)
  3. 重新登入

安裝 嘸蝦米 輸入法

  1. wget http://edt1023.sayya.org/misc/noseeing-6.tar.gz #下載嘸蝦米的 table
    或者我有解開的檔案,放在
    http://ms11.voip.edu.tw/~martensite/noseeing.gtab
  2. mkdir tmp; cd tmp
  3. tar zxvf noseeing-6.tar.gz
    (如果是解開的,就別再解了吧~不要來問我這問題,我會很冏XD)
  4. mv noseeing.gtab /usr/share/gcin/table/
    (將table移到gcin表格的資料夾)
  5. Gcin圖示按右鍵設定內定輸入法, 即可使用(也可以順便將不會用到輸入法刪除)
看起來很厲害版:
(前幾步驟與前同,只有table的處理不同)
  1. 如果有原版的嘸蝦米,請找出liu.cin
    (http://ms11.voip.edu.tw/~martensite/liu57b.zip)
  2. gcin2tab liu.cin
  3. mv liu.gtab /usr/share/gcin/table/noseeing.gtab
    #此步驟同時改檔名並移動檔案到gcin預設存放輸入法table的資料夾


2007年9月13日 星期四

Reading Queue

About Distribution
  • Q Focus Journal,Mar 2007,"SIP: Decentralizing SIP"
  • SIPCache:A Distributed SIP Location Service for Mobile Ad-Hoc Networks
  • A Stateless Neighbour-Aware Cooperative Caching Protocol for Ad-Hoc Networks (Introduction of PCache)
閒書Queue
孤獨六講
及戰力﹍大前研一

2007年9月11日 星期二

(轉錄)時間管理101招

時間管理101招

  無論是在家裡還是在工作中,每個人都要在某種程度上支配自己的時間。你做事的先後順序,對你能從生活中獲益多少,有著深遠的影響。大部分人都能安排好自己的時間,從而使工作格外有效,休閒時光更加充實。本書指導你如何有效地支配時間。書中包含了豐富而實用的建議,而散見於全書的101個簡明的小訣竅進一步提供了極有價值的指導。這本書從檢測你通常是如何支配時間開始,再把目光轉向你有待改進的地方,然後告訴你如何使用快捷而容易的方法來進行改進。改進的內容從怎樣處理文件到如何使用高時效的手段進行通訊。本書的最後一節會教你如何用學到的知識來幫助別人更有效地支配時間。

瞭解時間
  時間是我們最寶貴的資源,通過分析我們時間的使用情況,才有可能掌握適於工作場所內外,最為有效的時間使用方法。

1.每天要回顧,急事需優先。

2.對於很棘手的任務,先從一小部分入手,立即處理。

3.考慮一天的日程安排,採用相應的工作方法。

4.不值得去做的事,派下屬代勞。

5.工作日化整為零,每段30分鐘。
6.重溫日程安排,評價工作效率。
7.安排日程時,留點時間用於思考。
8.預測工作用時,看看是否準確。

訂計劃

  如果你不知道明天的行動方向,你就不能決定今天要幹甚麼。改進時間支配的任何方法都有賴於對目標的清楚瞭解。

要隨時做日程記錄,單憑記憶不大可靠。

    10.化長遠規劃為一周、一日的行動計劃。

    11.繪出工作履歷表,計劃下一步幹甚麼。

    12.幾項任務難分先後順序,另闢蹊徑尋找第二方案。

    13.協調你與上級在工作安排的先後順序上存在的差異。

    14.要及時發現與同事在工作安排先後上的矛盾。

    15.把日誌中的所有工作按重要性分類。

    16.如果你的工作表上全是A類任務,委託別人代辦或重新分類。

    17.根據情況的變化和新信息的出現,不斷變更工作的優先順序。

    18.討論應該簡短,避免沒有結論的提問。

    19.每天給自己有段安靜的時間。

    20.不要擔心電話機沒有擱好。

    21.記錄你的體力、腦力出現高峰的時間,瞭解它們能持續多久。

    22.留些精力給家庭生活和工作之後的消遣。

    23.建議公司以彈性工作時間運作,以提高工作效率。

    24.挑選一種看起來美觀,用起來稱心的日誌。

    25.你的日誌裡永遠放枝筆,隨時記錄信息和日期。

    26.用彩色筆標示出任務的不同重要性。

    27.確定的期限要合乎實際,訂期限為的是促進你完成任務而不是要製造緊張。

    28.委託該委託的工作,無論那是你喜歡的還是不喜歡的工作。

    29.工作按時完成後,應該自我獎勵。

    30.在日誌上制訂計劃,不要超前一年。

    31.要保證你每天至少辦了一件令你愉快的事。

    32.晚上的最後一件事,讀篇你最喜歡的作者的文章。

    34.使用電子記事簿列出自己的弱點,然後計劃逐一加以克服。

    35.寫字桌上沒用的東西清理走,只把現在的工作留在手邊。

    立即做出改變
      這裡有許多實際的工作可以去做——無論是清理寫字桌並使其保持整潔,還是使電腦內的文檔分類清晰,都可以在短期或長期內提高你的工作效率。

      36.留心「便利貼」式的便條,小心丟失。

      37.每天都要清理乾淨,不要把髒亂留到明天。

      38.文件裡的特別關鍵處要做標記以加快重讀時的速度。

      39.辦公室裡放一個時鐘,你和客人都能看見。

      40.每隔幾個月,重新檢查檔案系統。

      41.建立一種檔案系統,它將與你和你的生意一起發展興隆。

      42.定期查閱你的存檔,把不再需要的文件丟掉。

      43.將較難歸類的文件統一放入一檔案夾中,貼上“其他”標籤。

      44.只把將來要參考的重要文件存檔。

      45.打給你的電話首先由秘書或同事接聽。

      46.拿起電話聽筒暗示會議結束。

      47.如果有人跟著你走進辦公室,你不要坐下來。

      48.如果門開著,你的座位不要放在別人的視野之中。

      49.把你認為不需要的信息都扔掉。

      50.利用一切機會儘可能站著碰面──以便能隨時離開。

      51.只為那些需要知道的人員複印信息資料。

      52.停止訂閱你不再閱讀的雜誌。

      53.取走你希望保存的報刊,存檔留作參考。

      54.寫字桌上只留最重要的讀物。

      55.評價每條信息與正在進行的工作的相關性。

      56.在打斷別人之前要想到他們的時間與你的時間同樣寶貴。

      57.其他的選擇行不通時,才考慮召開會議。

      58.不要對同事隨意猜測。

      59.在你打電話之前,做一次放鬆的深呼吸。

      60.打電話時要避免精力分散,集中精力聽對方在說些甚麼。

      61.你在打電話時,把另一件工作放在手邊,以防你要久等。

      62.告訴別人甚麼時候可以給你打電話。

      63.為了避免被打斷工作,你可以換一條電話線路。

      64.千萬不要把要寫的材料向後拖--這樣會越積越多。

      65.在你必須閱讀的報告上劃出關鍵的句子。

      66.快速閱讀報紙的標題。

      67.把重要的參考材料與其他文件分開。

      68.每月一次清理你電腦裡的不需要文件。

      69.仔細考慮你的電腦配置。

      70.確保你的電子郵件簡短,地址準確。

      71.要鼓勵別人表達自己的意見,即使他們的觀點與你的相反。

      72.要多聽少說,使會議開得簡短。

      73.如果日常例會超過了一小時,請同事去“緊急”打斷它。

      74.對議程中的每個專題都要分配一定的時間。

      75.鼓勵人們只參加會議中與他們有關的部分。

      76.在會議的備忘錄上記下會議通過的事項。

      77.旅行之前評估這次旅行是否必要,錢花得是否值得。

      78.如果可能,把你需帶的每件東西全都塞進一個小手提箱裡。

      79.帶點工作在候機室裡做,以防飛機延遲。

      80.按目的地的當地時間撥好手錶。

      81.在打電話之前,核查酒店對電話的收費。

      82.核查你的電子裝備在國外使用時是否需要適配器。

      83.每年要安排二到三個短的假期,而不是一幹到底。

      84.定期留出一點時間來追求業餘愛好,和享受休閒放鬆的樂趣。

      85.志在每天嘗試新東西。

      支配別人的時間
        為了把你的時間安排得盡善盡美,同樣你必須要支配好職員、同事和下屬的時間。學會授權或委託他們去替你辦事、分擔任務,掌握好同上下級相處的藝術。

      86.要保持很高的期望值,人們會將努力付諸實踐。

      87.勸說別人的時候要用事實,而不是用感情。

      88.關心別人想得到甚麼。

      89.聽到和聆聽是不同的,要學會聆聽。

      90.當你把任務授權別人去辦的時候,確保你把目的說得相當清楚。

      91.留點時間來做你一個人可以做的事。

      92.要有一張核查表,幫助你監察已委托工作的進度。

      93.獎勵要慷慨,訓斥要適度。

      94.對授權別人的任務要設定明確的,切實可行的完成時間。

      95.不要讓同事用不重要的事來分散你的精力。

      96.在同事的辦公室裡召開會議,這樣在你需要的時候則可以離場。

      97. 專門留出時間,讓你的辦公室向全體人員開放。

      98.只有當你有不止一個疑難問題需要討論的時候,才去請教你的同事。

      99.揣摹老闆的工作模式,並試圖採納。

      100.詢問老闆的家庭生活——這將有助於你與他建立好關係。

      101.記住時間是最民主的,沒人比你的多,也沒人比你的少。

Appserv安裝note

安裝PHP開發環境
1.AppServ 2.5.7版(http://www.appservnetwork.com)
2.安裝Appserv前,記得先關閉skype(如果有裝的話)。
3.安裝到Apache請填入:[伺服器名稱]:localhost、[管理者的電子郵件]:您的Email、[埠號]:80。
4.安裝到MySQL請填入root(最高管理員)的密碼。
5.安裝過程中MySQL千萬勿選語系,保持為UTF8即可。
6.預設網頁目錄:C:\AppServ\www,裝好後用瀏覽器執行「http://localhost」或「127.0.0.1」有畫面即完成。

C:\WINDOWS\php.ini
  1. register_globals=off(關閉全域變數,加強安全性)
  2. max_execution_time=300(延長預設的程式執行時間)
  3. upload_max_fileszie=20M(放寬檔案上傳的大小)
  4. SMTP=外送主機(Windows下才需要)

VoIP Architecture

Sajax.php加註解

if (!isset($SAJAX_INCLUDED)) {

/*
* GLOBALS AND DEFAULTS
*定義全域變數及其初值
*/
$GLOBALS['sajax_version'] = '0.12';
$GLOBALS['sajax_debug_mode'] = 0;
$GLOBALS['sajax_export_list'] = array();
$GLOBALS['sajax_request_type'] = 'GET';
$GLOBALS['sajax_remote_uri'] = '';
$GLOBALS['sajax_failure_redirect'] = '';

/*
* CODE
*
*/

//
// Initialize the Sajax library.
//
function sajax_init() {
}

//
// Helper function to return the script's own URI.
//
function sajax_get_my_uri() {
return $_SERVER["REQUEST_URI"];
}
$sajax_remote_uri = sajax_get_my_uri();

//
// Helper function to return an eval()-usable representation
// of an object in JavaScript.
//
function sajax_get_js_repr($value) {
$type = gettype($value);

if ($type == "boolean") {
return ($value) ? "Boolean(true)" : "Boolean(false)";
}
elseif ($type == "integer") {
return "parseInt($value)";
}
elseif ($type == "double") {
return "parseFloat($value)";
}
elseif ($type == "array" || $type == "object" ) {
//
// XXX Arrays with non-numeric indices are not
// permitted according to ECMAScript, yet everyone
// uses them.. We'll use an object.
//
$s = "{ ";
if ($type == "object") {
$value = get_object_vars($value);
}
foreach ($value as $k=>$v) {
$esc_key = sajax_esc($k);
if (is_numeric($k))
$s .= "$k: " . sajax_get_js_repr($v) . ", ";
else
$s .= "\"$esc_key\": " . sajax_get_js_repr($v) . ", ";
}
if (count($value))
$s = substr($s, 0, -2);
return $s . " }";
}
else {
$esc_val = sajax_esc($value);
$s = "'$esc_val'";
return $s;
}
}

function sajax_handle_client_request() {
global $sajax_export_list;

$mode = "";

if (! empty($_GET["rs"]))
$mode = "get";

if (!empty($_POST["rs"]))
$mode = "post";

if (empty($mode))
return;

$target = "";

if ($mode == "get") {
// Bust cache in the head
header ("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Date in the past
header ("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
// always modified
header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header ("Pragma: no-cache"); // HTTP/1.0
$func_name = $_GET["rs"];
if (! empty($_GET["rsargs"]))
$args = $_GET["rsargs"];
else
$args = array();
}
else {
$func_name = $_POST["rs"];
if (! empty($_POST["rsargs"]))
$args = $_POST["rsargs"];
else
$args = array();
}

if (! in_array($func_name, $sajax_export_list))
echo "-:$func_name not callable";
else {
echo "+:";
$result = call_user_func_array($func_name, $args);
echo "var res = " . trim(sajax_get_js_repr($result)) . "; res;";
}
exit;
}

function sajax_get_common_js() {
global $sajax_debug_mode;
global $sajax_request_type;
global $sajax_remote_uri;
global $sajax_failure_redirect;

$t = strtoupper($sajax_request_type);
if ($t != "" && $t != "GET" && $t != "POST")
return "// Invalid type: $t.. \n\n";

ob_start();
?>

// remote scripting library
// (c) copyright 2005 modernmethod, inc
var sajax_debug_mode = ;
var sajax_request_type = "";
var sajax_target_id = "";
var sajax_failure_redirect = "";

function sajax_debug(text) {
if (sajax_debug_mode)
alert(text);
}

function sajax_init_object() {
sajax_debug("sajax_init_object() called..")

var A;

var msxmlhttp = new Array(
'Msxml2.XMLHTTP.5.0',
'Msxml2.XMLHTTP.4.0',
'Msxml2.XMLHTTP.3.0',
'Msxml2.XMLHTTP',
'Microsoft.XMLHTTP');
for (var i = 0; i < msxmlhttp.length; i++) {
try {
A = new ActiveXObject(msxmlhttp[i]);
} catch (e) {
A = null;
}
}

if(!A && typeof XMLHttpRequest != "undefined")
A = new XMLHttpRequest();
if (!A)
sajax_debug("Could not create connection object.");
return A;
}

var sajax_requests = new Array();

function sajax_cancel() {
for (var i = 0; i < sajax_requests.length; i++)
sajax_requests[i].abort();
}

function sajax_do_call(func_name, args) {
var i, x, n;
var uri;
var post_data;
var target_id;

sajax_debug("in sajax_do_call().." + sajax_request_type + "/" + sajax_target_id);
target_id = sajax_target_id;
if (typeof(sajax_request_type) == "undefined" || sajax_request_type == "")
sajax_request_type = "GET";

uri = "";
if (sajax_request_type == "GET") {

if (uri.indexOf("?") == -1)
uri += "?rs=" + escape(func_name);
else
uri += "&rs=" + escape(func_name);
uri += "&rst=" + escape(sajax_target_id);
uri += "&rsrnd=" + new Date().getTime();

for (i = 0; i < args.length-1; i++)
uri += "&rsargs[]=" + escape(args[i]);

post_data = null;
}
else if (sajax_request_type == "POST") {
post_data = "rs=" + escape(func_name);
post_data += "&rst=" + escape(sajax_target_id);
post_data += "&rsrnd=" + new Date().getTime();

for (i = 0; i < args.length-1; i++)
post_data = post_data + "&rsargs[]=" + escape(args[i]);
}
else {
alert("Illegal request type: " + sajax_request_type);
}

x = sajax_init_object();
if (x == null) {
if (sajax_failure_redirect != "") {
location.href = sajax_failure_redirect;
return false;
} else {
sajax_debug("NULL sajax object for user agent:\n" + navigator.userAgent);
return false;
}
} else {
x.open(sajax_request_type, uri, true);
// window.open(uri);

sajax_requests[sajax_requests.length] = x;

if (sajax_request_type == "POST") {
x.setRequestHeader("Method", "POST " + uri + " HTTP/1.1");
x.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
}

x.onreadystatechange = function() {
if (x.readyState != 4)
return;

sajax_debug("received " + x.responseText);

var status;
var data;
var txt = x.responseText.replace(/^\s*|\s*$/g,"");
status = txt.charAt(0);
data = txt.substring(2);

if (status == "") {
// let's just assume this is a pre-response bailout and let it slide for now
} else if (status == "-")
alert("Error: " + data);
else {
if (target_id != "")
document.getElementById(target_id).innerHTML = eval(data);
else {
try {
var callback;
var extra_data = false;
if (typeof args[args.length-1] == "object") {
callback = args[args.length-1].callback;
extra_data = args[args.length-1].extra_data;
} else {
callback = args[args.length-1];
}
callback(eval(data), extra_data);
} catch (e) {
sajax_debug("Caught error " + e + ": Could not eval " + data );
}
}
}
}
}

sajax_debug(func_name + " uri = " + uri + "/post = " + post_data);
x.send(post_data);
sajax_debug(func_name + " waiting..");
delete x;
return true;
}

$html = ob_get_contents();
ob_end_clean();
return $html;
}

function sajax_show_common_js() {
echo sajax_get_common_js();
}

// javascript escape a value
function sajax_esc($val)
{
$val = str_replace("\\", "\\\\", $val);
$val = str_replace("\r", "\\r", $val);
$val = str_replace("\n", "\\n", $val);
$val = str_replace("'", "\\'", $val);
return str_replace('"', '\\"', $val);
}

function sajax_get_one_stub($func_name) {
ob_start();
?>

// wrapper for

function x_() {
sajax_do_call("",
x_.arguments);
}

$html = ob_get_contents();
ob_end_clean();
return $html;
}

function sajax_show_one_stub($func_name) {
echo sajax_get_one_stub($func_name);
}

function sajax_export() {
global $sajax_export_list;

$n = func_num_args();
for ($i = 0; $i < $n; $i++) {
$sajax_export_list[] = func_get_arg($i);
}
}

$sajax_js_has_been_shown = 0;
function sajax_get_javascript()
{
global $sajax_js_has_been_shown;
global $sajax_export_list;

$html = "";
if (! $sajax_js_has_been_shown) {
$html .= sajax_get_common_js();
$sajax_js_has_been_shown = 1;
}
foreach ($sajax_export_list as $func) {
$html .= sajax_get_one_stub($func);
}
return $html;
}

function sajax_show_javascript()
{
echo sajax_get_javascript();
}


$SAJAX_INCLUDED = 1;
}
?>

簡報技巧

簡報應強調之重點
  • Motivation
  • Problem Definition
  • Related Work
(另一版本)
  • Motivation最重要
  • 例子要簡單易懂
    ps.可多利用Wireshark查封包、解釋各種現象
  • 不要過分強調技術細節
  • A picture speaks louder than words.
注意事項
  • 避免一頁有大量的文字
  • 少用formula
  • 多用examples.figures
*重點不在你講了多少,而在於台下的人聽進了多少。
*簡報,要讓聽者的頭腦能動起來。(請考慮聽者的背景)
(2008/2/12)

有關meeting 簡報
*meeting的意義:讓實驗室的同仁能多方了解與自己研究領域相關的新知或工具,重點在「了解」。
同樣地,簡報的重點不在技術細節,而是讓台下的人能夠跟得上、能夠跟著你的簡報思考。如果能夠給人新的發想,這場簡報對聽者就是值回票價了。
(當然不是說技術細節不重要,但是要用一個一個的範例呈現演說主題的所需的技術範壔。)
所以,為了不要讓自己和台下的人浪費這一個半小時的時間,要認真準備,裨能增進自己邏輯思考能力、簡報能力,和同伴們的知識範圍。

啟動SIP Fluoroscope

前言:
啟動SIP Fluoroscope 有自動(使用shell script)及手動兩種方法,建議先使用手動啟動,若未能啟動成功,比較容易了解問題出在哪個環節。

用sipfluoroscope.sh命令稿啟動:命令稿如下。

#!/usr/local/bin/bash #使用bash執行
# Author : Sepp Wang ( pennywang.tw @ yahoo.com.tw )
# Date : 2007/03/27
# Purpose : Start the SIP Fluoroscope at system startup

SIPFLUOROSCOPE='/home/martensite/www/sipmagnifier/captor.exe | /home/martensite/www/sipmagnifier/dissector_lite.php'
#pipeline 執行captor.exe及dissector_lite.php
SIPFLUOROSCOPE_PID_FILE='/var/run/sipfluoroscope.pid'
SIPFLUOROSCOPE_PID=$(cat $SIPFLUOROSCOPE_PID_FILE)

function USAGE() #定義function USAGE
{
echo -e " Usage : $0 [start|stop|restart]" #顯示Usage:sipfluoroscope 開始、停止、重啟($0為SIPFLUOROSCOPE ←檔案名稱)
}
# ---- Main ------
if [ X$# == X0 ] #若命令列參數為0(?)
then
$SIPFLUOROSCOPE & #背景執行
echo $! > /var/run/sipfluoroscope.pid #顯示process id
elif [ X$# == X1 ] #若命令列參數為1(?)
then
case $1 in #比對字串樣式
start) echo "Starting SIP Fluoroscope ..." #若case $1=start,則顯示開始的訊息
$SIPFLUOROSCOPE & #背景執行
echo $! > /var/run/sipfluoroscope.pid #顯示process id
echo "Done." #結束
;; #跳至esac

stop) echo "Stoping SIP Fluoroscope ..." #若case $1=stop,則顯示停止系統的訊息
kill $DISSECTOR_PID #刪除DISSECTOR的process id
echo "Done." #結束
;;
restart) echo "Restarting SIP Fluoroscope ..." #若case $1為restart,則顯示重啟系統的訊息
kill $SIPFLUOROSCOPE_PID #刪除process id
$SIPFLUOROSCOPE & #背景執行
echo $! > /var/run/sipfluoroscope.pid #顯示process id
echo "Done." #結束
;;
*) USAGE
;;
esac #case 迴圈終止
else
USAGE
fi #命令稿結束

#update by tintin on Sep.27

=====================

手動啟動:Step by step
/**Manually**/
1.$cd /home/martensite/www/sipmagnifier
2$sudo ./captor.exe | ./dissector_lite.php &
找不到device r10,應該是因為沒有root權限→所以,至少要有sudoer權限才可啟動

3.ps -aux | grep captor %顯示自己和其它人的 process
ps -aux | grep dissector %check these two PIDs,and they should contiguous


Web Technology note(1)

9/11
http→mime:can transport video.voice...multimedia
java/applet (client)
\servlet (server) cf:cgi

/Java-applet
\plug-in


*IEEE Internet computing magazine

Who invented web?
w3c executive.

/HTTP
\TCP security.reliable base to transmot cf:RTP.UDP(unreiable)

(protocol of different layers)

*HW deadline:12:00 pm. Mon

DNS server and 查號台

XSL.SMIL?

RTSP:jump to a desired point of movie downloading(random access)

proxy:代理, make a copy of data

要記起來的首字縮寫字

3GPP:Third Generation Partnership Project(ETSI)

ARP:Address Resolution Protocol位址查解協定
IMS:IP Multimedia (Sub)system
WiMAX:Worldwide interoperability Microwave Access(Where is X??)
IEEE:Institute of Electrical and Electronic Engeerers
RFC:Request For Comments
SMTP:Simple Mail Transport Protocol
ENUM:

VoIP:Voice over IP( see also :DTMF)
DTMF:Dual Tone Multi-Frequency encoding of numbers(??)
ADSL:Asymmetric Digital Subscriber Line
B2BUA:Back to Back User Agent
UAS:User Agent Server
UAC:User Agent Client
OAM:Operation,Administration and Maintenance
PSTN:Public Switched Telephone Network
PBX:Packet Branch Exchange
ISP:Internet Service Provider
ISDN:Intergrated Services Digital Network
NAT:Network Address Translator (cf:NAPT)
NAPT:Network Address and Port Translation
ALG:Application Layer Gateway
STUN:Simple Traversal Underneath NATs)
TANet:
IETF:Internet Engineering Task Force, the Internet standard body
MIME:Multipurpose Internet Mail Extension Protocol
SIP:Session Initiation Protocol
SDP:Session Description Protocol(simple plain text document,usually in the body of SIP message that describes the capability of an internet end point)(RFC ?)
CSeq:Sequential number of SIP requests within a SIP dialog(the number is used to detect out of order requests and retransmissions)
AP:Access Point
RTP:Real Time Streaming Protocol(Realtime Transport Protocol)
DNS:Domain Name Service
NAPTR:Naming Authority Pointer
SER:SIP Express Router
GNU:?
GPL:General ? License
LDAP:Lightweight Directory Access Protocol
SMS:Simple Message ?
FAQ:Frequently Asked Questions
BELLcore:communication Research
TTL:Time to Live(hop to live)
SIPit:SIP Interoperability Test)
Reference:
http://www.iptel.org/glossary

2007年9月10日 星期一

GDS(Global Dialing Scheme)

GDS(Global Dialing Scheme)
format:
  • the Internet Access Code(IAC):the world gatekeeper prefix, defined as 00
  • a Country Code(CC)
  • an Organization Prefix(OP)
  • an Endpoint Number(EN)

[Weekly Report]2007.9.1-2007.9.7

1.Continue RFC3261 and Bash manual page:
1.1 Forward 7 pages of RFC 3261 and take notes of it(to page 27 on Sep5).
1.2 the History section of Bash manual page

2.Prepare for the Entrance Exam Practice writing the research report.

VoIP Foro -- SIP Architecture:Session Initiation Protocol

main objective of SIP:
  1. the communication between multimedia devices.
  2. SIP makes the communication possible thanks to:
  • RTP/RTCP(used to transport voice data in real time)
  • SDP(used to negotiate the participant capbilities)

3. an application-layer control protocol

4. a signaling protocol for Internet Telephony

5. establish sessions for features such as audio/video conferencing, interactive gamimg and call forwarding to be deployed over IP networks