2010年5月12日 星期三

[轉] Ubuntu 安裝Vim Plugin ctags及taglist

http://stenlyho.blogspot.com/2008/11/ubuntuvim-plugin-ctagstaglist.html
Ubuntu 安裝Vim Plugin ctags及taglist
安裝ctags及taglist

1. 首先先安裝ctags

apt-get install exuberant-ctags

2. 然後到Taglist網站去下載zip檔http://vim-taglist.sourceforge.net/

(1) 下載後解壓縮該檔案
# unzip taglist_45.zip
Archive: taglist_45.zip
inflating: plugin/taglist.vim
inflating: doc/taglist.txt
(2)將plugin及doc複製到家目錄的".vim"這個目錄裏,如果不存在就建一個新的".vim"

在vim裏設定功能鍵F9 - 用它來開啟/關閉taglist功能
在/etc/vim /vimrc裏加入下面1行

map :Tlist

最後一個步驟,到你的原始程式目錄裏輸入

ctags -R *.c *.h

開啟vim xxx.c按F9
你就會看見如下圖的結果

畫面分成左右兩邊,切換方式用Ctrl-W-W

左邊畫面TagList只要按Enter就會自動跳到相對應的函式或定義

右邊的畫面:
Ctrl+] : 跳到游標所指function的implement 位置 ,注意游標要在function的第一個字。
Ctrl+t : 返回到剛剛的位置。

2010年5月11日 星期二

[轉]TDD(Time Division Duplex) noise.分時多工雜訊

使用GSM手機的時候,一般人一定常聽過其嗶嗶嗶的聲音,有時候是自己的手機聽筒傳出,對方聽不到;有時候是對方聽到,但自己聽不到這個噪音;還有就是在 手機快響起的時候,電腦的喇叭or汽車的喇叭or教室的擴音器也會出現嗶嗶的聲音。
還是不知道我在說什麼聲音嗎?可以到這裡來聽聽:
(2009.07.05 更新,原來在youtube找的影片不見了,我自己錄了一段影片,
一個是我不小心買到的便宜爛喇叭,一個是比較好的喇叭,可 以很明顯的比較得出來TDD noise)


為什麼會有這個聲音呢?下面用簡單易懂,不講太多艱深的方式來陳述。
先從GSM手機的原理來說起。
GSM是使用TDMA分時多工的技術, 利用不同的時間點傳送不同的使用者的語音通話等資料。
以簡單的假設來解釋,同時有八個人在一間房間裡跟錄音機講話,為了要錄下所有人的聲音來溝 通,使用第一秒第一個人講話,第二秒第二個人講話,第三秒第三個人講話…到了第九秒又回到第一個人講話,如此就是分時多工。
而因為分時多工的關 係,手機會開關power(功率),即一下講話一下不講話的意思,而且是週期性的出現,這個週期時間是4.615ms(10^(-3) 秒),換算成頻率是1/4.615ms=217Hz(赫茲)。
一般聽力健全的人可聽見的聲音,其頻率約在20~20,000Hz之間,所以這個聲音是人耳聽得到 的,嗶嗶聲就是因此而來。

而手機的嗶嗶聲來源,主要有三種:

1.通過手機電源
2.通過不同傳輸路徑的耦合
3. 天線幅射出的功率耦合

手機會被影響出現嗶嗶噪音的元件有Mic(麥克風,講話收音)、Receiver(聽筒,講手機時耳朵聽聲音的聽 筒)、Speaker(揚聲器,發出來電鈴聲or放音樂出來)
當Mic有雜訊時,是對方會聽到嗶嗶聲;當Receiver有雜訊時,是我方會聽到 嗶嗶聲;當Speaker有雜訊時,是來電鈴聲or播出來的音樂會有嗶嗶聲。

1.通過手機電源即是手機PA功率放大器週期性的抽取電源的 時候,因為電源的不穩定,上述的三種元件都有接電,所以都會有217Hz的噪音,這樣就需要用電容去穩定電源。
2.通過手機內部的不同傳輸路徑的 耦合,這時候在layout的時候就要小心,把重要的電路保護好,不要外露或跟其他的線耦合到。
3.天線幅射出去的功率耦合,就是造成電腦的喇叭 or汽車的喇叭or教室的擴音器也有嗶嗶聲的來源,這時候只能期待那些電腦喇叭、汽車音響等,有做好保護的設計,要不然是無可避免的。而手機裡的Mic、 Receiver、Speaker則也必定需要設計好保護的電容來過濾,做不好的話,一樣就是通話中會有噪音了。這部份是相當難設計的,所以手機音質的好 壞,在這裡就顯得相當的重要。

至於為什麼電腦喇叭、音響之類的東西,會在手機快響起的時候才有嗶嗶聲呢?因為手機一般的時候並不是一直跟 基地台交換資料的,只是一段時間收一下資訊,跟基地台保持連結。而在電話要撥出或是要響起的時候,是要跟基地台交換相對較多的資料,所以手機會先用最大的 功率打出,以確保基地台能收到。之後與通話後,與基地台溝通,再調整手機的功率,若與基地台近一點,可能手機經由天線發射出去的功率就會調小,那功率比較 小,外部的音響也比較不會受到影響了,但當手機很靠近電腦喇叭的話,還是會有嗶嗶聲,大家可以試試看。

手機是拿來講電話的,聲音就是要清 楚,TDD noise的消除問題是一支手機好壞的重要指標。


1.TDMA示意圖
來源(http://cce.ccmtc.edu.tw /peterweb/book/download/無線通訊/ch14.ppt)



2. 人類聽覺的範圍
(來源http://www.cyut.edu.tw/~hcwul/ErgoPrac/u8.pdf)

2010年5月9日 星期日

Samba config

若 Linux 使用者,要分享目錄給其他使用者,都要去研究 smb.conf 這東西,但是對於初學者來說是很麻煩的事情。

不過現在 Ubuntu 使用者,可以用幾個步驟就可以完成。

1.打開檔案管理員 (Nautilus) ,找到你要分享的目錄,點選右鍵,選擇分享目錄 (Share Floder)。
2.若電腦內沒有安裝 Samba,系統會幫你安裝 Samba 套件。
3.安裝順利,出現設定分享資料夾名稱,以及分享權限。
4.到這邊基本都設定完成,不過還有一個步驟要處理,增加 smb user 帳號密碼。
5.打開終端機,下達指令。

sudo smbpasswd -a user

這樣,完成分享資料夾功能。

而在 Windows 環境,用網路芳鄰方式讀取 Ubuntu 分享資料夾。

不過 Ubuntu 預設的 工作群組是 MSHOME 電腦名稱是 主機名稱,所以在瀏覽上會比較麻煩。可以指令方式瀏覽。

開始 -> 執行 -> \\電腦名稱\分享目錄名稱

當然也可以修改設定,一樣請在 Ubuntu 電腦上,打開終端機。

sudo gedit /etc/samba/smb.conf

在最前面會找到這行敘述

workgroup = MSHOME

改成

workgroup = 您指定的工作群組
netbiosname = 您指定的電腦名稱

存檔離開,最後要重新啟動 Samba

sudo /etc/init.d/samba restart

新的 Samba 設定已經完成。

就某方面來看,設定上已經很方便,至少不像以前要翻文字天書,怎麼設定都不起來。
以上說明是最簡易的設定,至於要詳細當然要回歸最基本的 smb.conf 。