Nautilus 自從 2004 釋出的 Gnome 2.6 後整合了 Python Plugin 介面,相較於 C API,用 Python 來刻外掛軟體顯然要快速方便多了,而且彈性也比 G-Script 好多了。只要稍微了解 Nautilus 架構,再配合 Python 與 GTK/Gnome 的 binding library,就可以很輕易的在選單上添加新的功能。

其中一個利用 Nautilus Python binding 刻的好用軟體就是 postr, 是一個方便上傳照片到 Flickr 的小工具,以 Python 寫成。安裝後重新啟動 Nautilus 後,就可以於圖檔檔案之右鍵選單中找到 “Upload to Flickr” 上傳功能。

介面提供了基本的編輯介面,你可以逐一設定每個檔案的名稱、敘述、Tags 或加進特定的群組中。也可以一次上傳數個檔案,還算相當實用方便的小工具。

另外一個類似的工具是 Desktop Flickr Organizer for GNOME (以 Mono 開發),管理功能更強大,可以用以維護或備份已上傳的資料。但相較之下比較不穩定,許多例外都尚未妥善處理,偶爾會無法正常運作。

這陣子,不少人都瘋著看奧運轉播,特別是棒球賽。(現在不需要再看了..*默*)

不過中華電信 hiChannel 所提供的奧運線上轉播使用了 Microsoft Windows Media DRM 機制,限制微軟平台的用戶可以使用。於是,你必須在 Windows 平台上使用瀏覽器,才能取得授權後觀看。

你可能想使用 Wine 裝 Windows Media Player 與 IE 來接取 hiChannel 的節目,不過 Microsoft DRM 需要驗證簽署過的 Windows 核心與驅動程式 (Bug 14761),即使透過 Wine 跑 Windows Media Player 也是沒轍的。

就算你很高明的攔截到 mms 網址,mplayer 也會因為讀到加密的 asf 格式,而抱怨 “This file has been encumbered with DRM encryption, it will not play in MPlayer!“。除非你先參考 [MS-DRM]: Digital Rights Management License Acquisition Data Structure 實做了 Linux 客戶端,或者認真讀了 Beale Screamer 的 Microsoft’s Digital Rights Management Scheme – Technical Details,把 content key 偷解出來,如此就可以透過 mplayer/libavformat 直接觀看 hiChannel 的 asf 串流。

因此,雖然中華電信 hiChannel 免費提供轉播服務,Linux 平台的使用者依然無福享受。

所幸,中華電信的另外一個數位家庭服務,也提供了線上轉播的服務給註冊會員使用,目前開放註冊後免費試用一個月的優惠,而且解析度 (640×480) 比 hiChannel 還高。但麻煩的是,你得使用 Windows Media Player 11 才能登入、註冊,而且註冊程序不甚方便

好東西是,數位家庭服務最後提供的串流是沒有加密的,於是你可以直接用 mplayer 或任何可以解 WMV3 格式的播放軟體開。於是,我註冊了個帳號,並隨手用 Python/GTK+/Gstreamer 為自己寫了個播放小程式,讓我可以在 Debian GNU/Linux 上觀看轉播

目前這個瀏覽軟體只擺了五個奧運轉播頻道,預期一個月內失效。執行需要 python2.5, python-gtk2, python-gst0.10. 欲觀看視訊服務,請洽 數位家庭服務

FourDollars – 轉播程式寫好了,戰況討論聊天室就交給你了。;-)

哈,終於我 Thinkpad X60 上的 Atheros AR5418 802.11abgn Wireless PCI Express Adapter 要有原生 (Native) 驅動程式了。

Linux Wireless Driver 強者 Luis R. Rodriguez (mcgrof) 加入 Atheros Communications Inc. 後,終於釋出了第一版的開放原碼驅動程式。ath9k 預計支援的晶片有

  • AR5418+AR5133
  • AR5416+AR5133
  • AR5416+AR2133
  • AR9160
  • AR9280
  • AR9281

目前只有 STA 功能,但是 AP, WDS, IBSS (for mesh) 都列在 TODO List 中了。最新的程式碼可以於此下載

git://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/ath9k.git

當下的版本必須搭配最新的無線網路模組使用,可於此下載

git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-testing.git

或是從 Luis R. Rodriguez 的獨立開發分支中取出無線相關模組與 ath9k driver。

根據 Luis 的說明,ath9k 的程式碼目前已整合於

git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-testing.git

關於相關討論,可參考 ath9k-devel 郵遞論壇。依照目前的進度看起來,大約至少要到 2.6.27/2.6.28 才會整合到官方核心中。BTW, OpenWrt 是第一個整合 ath9k 的套件系統喔。;-)

我在 OSDC 的佈建一文中提到做場勘時,需要使用 Spectrum Analyzer。這是為了要挑選一個比較少訊號、雜訊干擾的頻帶。

很多人都知道,在設定無線網路 (WiFi) 時必須小心選擇將使用的頻道 (Channel),避免與其他的基地台使用相同的頻道,以免互相干擾。

比較少人注意的是,由於 IEEE 802.11 b/g 使用的頻是 22MHz 寬,因為法規技術規格上的限制,其實真正不重疊的頻道只有三、四個 (端視你在甚麼國家)。在某些國家如台灣雖然允許 11 個頻道,但是其實只有 1, 6, 11 這三個頻道是沒有與其他頻道重疊的。

Source: How Wifi channels overlap

於是,你最好只使用 1, 6, 11這三個頻道。根據 Cisco 的一篇舊文章 「Channel Deployment Issues for 2.4-GHz 802.11 WLANs」,即便你選用 1, 4, 9, 11 等看似只稍微重複的頻道,也會因為高密度的接取使用,使 802.11 所應用的 CSMA/CA (停看聽才過馬路協定) 協定會因為避免碰撞而造成網路使用停頓 。(Co-channel interference)

更甚者,因為重疊的干擾訊號不夠強,而其他的設備無法辨識為 802.11 訊號,誤認頻段是乾淨的而持續的送出訊號,如此一來偶爾可辨識、偶爾視為雜訊的狀態下,反而加重碰撞現象,使網路效率更加惡化。(Adjacent-channel interference) 更糟的是且 802.11g 所使用的 OFDM 技術所使用的頻譜訊號強度比 802.11b 所應用的 CCK 更強 (應該說相較之下,OFDM 的訊號衰減較小),干擾影響更為嚴重。

除了頻道必須小心選用較少無線網路基地台佔用的頻道外,還要注意其他的干擾源。由於無線網路使用的是 2.4Ghz 免授權頻譜 ISM Band,而這段頻譜是有可能被其他的射頻源所干擾的。在家庭中,最常見的干擾源是微波爐藍芽無線電話以及某些無線監視系統等。

不像是選用頻道,你可以用無線網路卡掃描現有的無線網路基地台狀態,有許多干擾訊號是你的網路卡無法辨識、也無法告知有許多雜訊的。特別是舉辦研討會時,不少人都會攜帶會干擾無線網路訊號的藍芽手機。這個時候,你就需要使用頻譜分析器來辨識真正乾淨無干擾的頻道了。

然而,好的一套頻譜分析儀加上軟體,市場價格常常會超過一兩萬美金。而且這些設備都十分龐大,只適合擺在實驗室,不方便帶著到處跑。

所幸有些公司開發了給筆記型電腦使用的便利頻譜分析儀,像是 Fluke NetworksAnalyzeAirAirMagnetSpectrum Analyzer、Cognio (被 Cisco 收購) 的 Spectrum Expert

這些工具都十分強大,如 Cognio Spectrum Expert 辨識解析度為 10 kHz,應用軟體甚至可以幫你辨識出發出特定訊號的裝置類型,可以輕鬆的找出無線網路問題。不過價格也高達 4000 上下美金,不算是很經濟的解決方案。

退而求其次,就是比較單純的 USB 介面簡易頻譜分析儀。如 Nuts About Nets、或 MetaGeekWiSpy 2.4x。這些產品只要上述的十分之一,約 USD 400 上下即可入手。雖然無法達到自動辨識設備類型,但是已經足以排除頻譜干擾的問題。若你經驗夠的話,也可以從訊號的模式猜測出可能的干擾類型

身為偏好使用自由軟體的偏執狂,我自然選用了 WiSpy 2.4x。除了因為 WiSpy 2.4x 有免費的 Chanalyzer (Windows) 與 EaKiu (Mac OS X) 可用外,還有強者 dragorn 做的開放原碼 Spectools

根據 Tim Higgins 在 SmallNetBuilder 所寫的 MetaGeek Wi-Spy 2.4x Review: Better, but Bigger Bucks 一文,你可以知道 WiSpy 2.4x 的主要元件是 Chipcon CC2500 (現為 TI) 2.4 GHz tranceiver 與 Silicon Labs 的 C8051F326 (8051 MCU with 25 MHz System Clock). 成本其實相當便宜。雖說成本便宜,不過由於這是 Niche Market,售價還是要達 400 美金,總而言之這個價格跟其他類似的產品比起來已經是相當實惠了。

使用 WiSpy 2.4x 搭配 ASUS EEEPC,再裝上 Debiankismet, Wireshark, Spectools 後根本是輕巧的神兵利器!由於 ASUS EEEPC 上得無線網路卡是 Atheros AR5007EG,只要裝上部份開放原碼的 madwifi 驅動程式,就可以把無線網路卡設定為 Monitor 模式。

於是你可以使用 kismet 一邊監測無線訊號中的 Beacons,一邊以 spectools 監測訊號強度與雜訊。

只要再配上一顆 USB Wirless NIC,就可以同時監測與連入各機器中作設定。若是 EEEPC 的螢幕換成 OLED,那就更完美了 (不過相對價格也會高很多)。由於我的 X60 也是用 Atheros AR5418 802.11bgn,因此大部分時候,我還是在 X60 上享受「大」螢幕的快感。

剛剛提到 WiSpy 2.4x 的軟體無法作設備自動辨識,與其他工具比起來稍遜。但 MetaGeek 在六月的時候,釋出了一版新的 Chanalyzer (beta, 現在已是 3.1 版),整合了 InSSIDer (或類似 NetStumbler) 利用無線網路卡掃描的結果,更友善的顯示出每個訊號的強度。也整合了頻譜訊號特徵比對功能,透過拖拉,就可以對照出可能的干擾類型。這些新的功能是目前開放原碼工具中尚欠缺的。

關於這些新功能,請參考以下展示畫面

簡單講,就是這次活動網路遜掉了。

主要問題是場地對外頻寬不足,只拉了一條 8M/640K Hinet ADSL,於是變成大家都可以連上無線網路系統,可是卻無法快速的下載網站,或順暢的使用 Y!LiveSkype.

先說明場地的佈建方式,原先第一次場勘的時候,外面的贊助商帳篷預計是要搭設於 B 廳與 C 廳間的廣場(場地平面圖)。由於廣場與 A 廳中間還有其他建築物,當日也還有展覽,為了避免佈線的麻煩,建議籌辦單位準備兩條 8M/640K,分別拉線於兩棟建築物。

結果後來出席活動前一週的籌備會議時,才知道要將各贊助商攤位移至緊臨 A 廳的廣場,對外網路也暫時只改申請一條 8M/640K。會議上,籌辦人不停的詢問我,8M/640K 是否夠用?只要我說一句「不夠用」,他會馬上再去申請一條沒問題。不過當下活動支出已經稍微超出預算,若換了網路,恐怕得少買一些食物。

甚麼!居然要拿網路會議三寶 (網路會議有三寶,正妹、網路、食物不能少) 來互換,身為阿宅的我當下決定拿出男子漢的氣概,咬著牙說「行!」。畢竟一條中華電信得 8M/640K 臨時短期租用可以換很多很多食物阿。(這個決定是災難的開始)

現場使用的設備跟上次 OSDC 差不多,一樣是從 FON 臨時借用了一些產品跟網路設備。並且將軔體全部換為客制化過的 OpenWrt。不同的是,由於上次 OSDC 使用的會議室已經有學術網路跟網路佈線,因此完全不用顧慮現場拉線跟頻寬的問題。

這次 Blog BoF 是臨時佈建,現場沒有任何現存的線路與管道。且場地分為兩個部份,在內場 A 廳的部份,佔地約 10Mx50M,屬於長狹空曠型。但是由於場地內人員會走來走去,若只靠一台機器或前後各一台,勢必會因為人員走動而干擾無線網路訊號。而外面廣場與 A 廳則隔了一個小山坡,無線勢必受到干擾。於是使了一些方法讓全場都可以覆蓋到無線網路訊號。

最後的作法是於圖中藍色甲一工作人員區設定為總部,中華電信 8M/640K ADSL 接於此。中華電信小烏龜給了一台康全電訊 CT-511C,只有單孔網路,於是接出至 SMC FMCFS5,示意圖如下

其中甲一、乙與丙一,各接了一台寬頻路由器,與一台無線網路基地台。其中藍色甲一作為主要服務基地台,接於 Buffalo BBR-4HG,搭配 FON 指向性天線與甲二的 Repeater 大致可以覆蓋整個內場。使用人數一直都保持於 30-50 人,整天都正常運作。只有中途因為手殘改亂了設定,重新開機一次。

至於紫色乙區,則是提供給講者、Y!Live 廣播及前排觀眾使用。使用了 SMC SMCWBR14T-G 與一台無線網路基地台,SMC SMCWBR14T-G 已經關閉它的無線功能,讓另外一台 FON 無線網路基地台負責。沒想到它整日還是當機了三、四次,造成 OpenWrtF 與 Y!Live 中斷服務。SMC SMCWBR14T-G 是個很糟的產品。

而綠色丙一區則使用 D-Link DI-624S 與 FON 無線網路基地台。一樣關閉 DI-624S 的無線網路功能,靠 FON 運作,丙二則使用 Wireless Repeater 將訊號接取廣播到戶外舞台另外一側。不過下午因為曬太陽的緣故,丙一舞台旁的 FON 熱壞了,重開機一次,重新開機期間丙二則自動切換廣播甲一的無線訊號。

如此的規劃,大致上沒有嚴重的問題。由於會場都收的到訊號,且週邊 2.4Ghz 頻段很安靜,所以無線大致上沒有問題,只要持續監測他們正常運作即可。麻煩的是,由於這次拿到三個公開 IP,各接於不同的 Router,非常不方便監控每一台的流量與狀態。下次應該把他們都換成開放原碼的軔體才是。

這次最嚴重的問題就是頻寬完全不足!整天都非常專心的再監測到底頻寬被哪些人吃掉了,並且試著把他們暫時踢掉,把頻寬讓給其他人使用。當下發現場內許多人都不停的使用 Y!Live, TwitterButoo

剛稍微測試了一下最吃頻寬的 Y!Live,收到以下的數據

狀態 下傳 (kBit/s) 上傳 (kBit/s) 8M/640K 大約承載使用者數
瀏覽視訊/不開視訊 700~800 10~15 10
瀏覽視訊/視訊討論 1100~1500 80~200 3
廣播視訊 300~400 300~400 2
瀏覽熱到爆頻道 3200~3500 60 2

若純粹瀏覽 Y!Live 單一頻道,且頻道其他聽眾沒有開啟視訊/語音的狀態平均需要下載 700~800 kBit/s, 上傳 10~15 kBit/s。若把自己的 WebCam 也開啟,進行單位觀眾對頻道主人視訊對話的話則需要下載 1100~1500 kBit/s, 上傳 80~200 kBit/s。而自己開設頻道所需的頻寬,且觀眾都未開語音時,需要 120~150 kBit/s,上傳 80~200 kBit/s。

上述都是單純的使用。根據昨天 Blog BoF 頻道的盛況,同時有四五頻道訪客加入視訊討論,由於會同時收到數人的影像,需要的頻寬至少需要下載 3200~3500 kBit/s, 上傳需要 60 kBit/s.

如此證明,只要超過十個人開啟 Y!Live 瀏覽視訊,會場的 8M 線路就會爆掉。超過兩人進入 Blog BoF 視訊頻道,現場網路就會滿載。

問題在於昨天上午活動開始時,每位有電腦的朋友都會開啟 Blog BoF 首頁去看議程,偏偏 Blog BoF 首頁就內嵌了 Y!Live 視窗,於是很不幸的,上午的狀況非常的糟。第一場過後就開始在場內每台機器上擋掉 Y!Live 網址,如此至少眾人不會不停的於場內同時開啟 Y!Live.

不過麻煩的是大家還是會不停的、連續的讀取 Twitter 或巴布的回應,剛剛測試了一下類似的行為會用掉平均下傳 65~150 kBit/s, 上載 15~30 kBit/s。8M 預計可以支撐 20 餘人,就算兩條 ADSL 也只能承受 40 人這樣搞阿。就算拉了多條線,也得再處理分流的問題才能有效分擔流量。

下午的時候,負責轉播的 Tyler Lin 已經暫時轉移到備援的 3G 網路上 (因此下午影音效果可能不佳)。問題是大家還同時開 Youtube/Y!Live/Skype/PTT/Twitter/Buboo 阿,其中光是 Skype 對話大約需要 200~300/100~150 kBit/s。會場平均上線人數都超過三十到六十人,這樣講起來上傳要拉到 3M 以上在尖峰時段才稍微堪用阿。於是整場都忙著調整 QoS 與踢掉用太多頻寬的人,中途還不小心踢掉林凱洛小姐,害她嬌驕嗔的在 Twitter 上幹譙 (我還白目的持續在不同的機器上踢了好幾次,到底是甚麼軟體會同時開一兩百個 TCP Sessions 阿)

凱洛小姐,我把妳的 Laptop MAC Address 背起來了,不會再犯,請原諒我吧!

不過,CarolPunch Party 6 有一場與毛向輝作 Skype 對談的節目,雖然直接接了有線網路,效果也相當不好,雖然當下 PP6 已經是整天活動的高潮,場內已經由於節目太嗨沒有人在上網。看來這應該是中國對台灣的網路問題,與會場的網路無關。因為下午笑談華文部落格江湖二三事議程時,喬敬用的是自己的 3G 網路與毛向輝作 Skype 對談,語音效果也不佳。

檢討與改建

  • 應該認真分析、預估鄉民的行為與需求,一點都不能大意阿。
  • 種活動,下次或許可以直接租用學術單位的會議室,這樣可以借用現成的網路基礎建設。會議前一天才拉好臨時線路,實在令人劈劈挫。
  • 要先跟各場主持人講清楚需求,像是需要現場作 Y!Live/Skype 等需要高優先值的流量。可以先設定起 QoS,將優先值調到最高。
  • 對外的機器應該準備一台 PC 或更換開放原碼軔體的機器,這樣才方便臨時作最佳化修改與監測現場狀態。每一台 AP 應該先內建 Management Agent,不要當下才切換網路各台連入設定。

另外,萬一覺得 BoF 網路不好用,完全是我錯估情勢的錯阿。陳力完全是看了這篇被騙的。Orz

若是要對我砍劈或指教,請報名免費的 COSCUP 2008,我將於 8/24 09:30-10:40 間分享相關經驗。

補充附註:

CHT 臨時租用線路,目前只提供 ADSL,最高速度到 8M/640K。8M/640K 資費1500 + 1500 + 1000,上述 4000 元是基本費用,另加 3000 保證金。另外 電路費用+網路費用+電話費 則是以每日 1/15 計算。例如 8M/640K 一週租金大約是 (1599+500)/15*7 =~ 980 元。

光纖部份不屬一般臨時租用業務,需另外接洽中華電信二線業務人員。

以上補充作為未來活動參考之用。由於主要支出為設定費,因此請盡量申請光纖或更高速網路。

試著把 rtorrent 升級到 0.8.2/libtorrent 0.12.2,新版修正了幾個嚴重的 memory leaks 與 EINTR signal handling 問題,以及 Super-seeding (Initial seeding).

由於 rtorrent 在 Debian sid 中一直都是 0.7.9,於是只好繼續自己維護一個新版本的 debian packages。Ubuntu intrepid 倒是已經是 0.8.2

編譯的時候,由於我的系統已經升級到 g++ 4.3 的緣故,必須配合 Header dependency streamlining
補入 C++ Headers。這個問題已經已經有人回報到 trac 上,詳細修改可以參考 Gentoo 的 patches. (libtorrent-0.11.9+gcc-4.3.patch, rtorrent-0.8.0+gcc-4.3.patch)。