若你這兩日升級了 Debian Sid 的軟體套件,發現自己的桌面上出現了詭異的 Network.desktop,所有的檔案都變成未知 (Unknown) 或 Plain/Text (普通文本檔, 文字檔) 而沒辦法直接點選用特定軟體開啟的話,你大約是裝到了有地雷的 share-mime-info (0.51-2, 0.51-3 confirmed)。

已經有人回報到 BTS, #515728,急著用的話就先降級到 0.30-2 吧。

apt-get install shared-mime-info=0.30-2

晚上整理幾個月前看展的型錄時,發現一張品質低劣的傳單,只是一張影印且解低度不高的雙面產品介紹。記得當初路過這個攤位時,還以為景氣已經差到連賣鍋碗瓢盆的廠商都申請到電子展的攤位了。定睛一看,發現這不鏽鋼鐵鍋中央還立了一隻 USB 天線。衝著這個產品外型順手拿了一張傳單。


型號: USB Wireless Socket & Dish Antenna(001)

這家公司是「成坊有限公司」(CHEN FONG METAL CO., LTD, 86861132, 代表人姓名: 高志成),根據產品說明

碟形天線產品名稱: 具有碟型天線的USB無線模組插座
型號: 具有碟型天線的USB無線模組插座
功能: 藉由碟型天線 , 所擁有良好電波反射與聚焦特性 , 增益訊號接收強度.
靈敏度 , 增強傳送距離與穿透力 , 就如同接上一個大型指向型天線 , 即使無線AP 基地台距離很遠 , 只要對準方向 , 也能順利傳送與接收無線訊號 !
特色: 碟型天線附加USB插座 , 可無限更換 , 多種類型的USB無線週邊產品 , 功能強大 , 超越指向型天線 , 所無法廣泛應用之處 !

老實說,稍微研究過無線電波的人,大致上都了解 Parabolic antenna 的原理。但是這家公司的產品厲害的地方是,除了沒有說明天線的增益效果外,直接宣稱可以延長天線範圍從 1.5 公尺變成三倍到 4.5 公尺,更神力的是這些產品可以同時支援 WiFi, HSDPA/WCDMA/EDGA/GPRS, WiMax, Digital TV, Bluetooth!

傳單上其他沒有意義的文字這裡就不多寫,(像是 Wireless USB 1.0 不需集線器可以支援 127 台週邊設備這種事情跟這個天線一點關係都沒有)。這些產品技術上讓我感到困惑的是,他並沒有針對電波來源 (Feed Antenna) 以及針對不同頻段的波長長度做距離調整。

換句話說就是 USB 無線網路的天線輸出是非常發散的,可能只有十分之一的電波會打到天線的投射面上。由於投射的方向未能聚焦,再加上並未嚴謹的為特定的頻段調整焦點。最後很大可能只會達成的反效果,而未能達到文宣上所號稱的三倍效果。再白話一點說明,請想像你取了一個燈光方向不定的燈泡,不管焦距的隨意的擺在一個炒菜鍋前,並且期待鍋子變成強效手電筒

這家公司的產品除了固面與網狀的碟形天線外,甚至還開發了一組有伸縮功能的延長天線組,不得不說有創意。更厲害的是,這些天線申請了新型專利!翻了一下專利資訊檢索系統的編號 M327552,專利名稱「具有碟型天線的USB無線模組插座 」,專利內容是

「一種具有碟型天線的USB無線模組插座,主要由一座體及一碟型天線所構成。該座體具有相連接的一第一USB插座與一第二USB插座,該第一USB插座與一 USB延長線連接,且該第二USB插座與USB無線模組連接。而碟型天線被直立於座體上,且第二USB插座所連接的USB無線模組會位在該碟型天線約中心 位置,以增強USB無線模組接收訊號強度。 」

Source: 新型專利 M327552

更厲害的是專利發明人「許志維」就是展場客服人員。專利的範圍主要涵蓋「具有碟型天線的 USB 無線模組插座」,事實上,這個專利一點都不新,這種天線叫做 WokFi (Wok + Wi-Fi),就是菜鍋加無線網路組合的意思,四五年前在無線網路社群還相當流行。

我其實認為這種 DIY 是較不專業的家庭手工,經典的窮人無線網路。在 “USB adaptors & DIY antenna = “Poor Man’s WiFi” ?” 網站上號稱可以達到 12-15dB 增益,不過我認為這種數據必須選對鍋子大小與深度,再經過一些調整才能達成。當然,你可以用誤試法來嘗試。

市面上也有不少產品是內建無線網路卡的指向性天線,當然,由於天線是固定設計,相較於號稱萬用的碟形天線來說,比較不容易因為誤觸中央的網路卡造成訊號遺失。

市面上看到最接近的產品,應該是 Hawking 的 HWU8DD,號稱 8 dBi gain,不過這是一款已經上市三年的產品。國內的一些廠商,像是訊舟 EW-7317UHgBuffalo WLI-U2-SG54HG崴海尼可Mr. WiFiRF Caste 都有不少延長 USB 線材的 USB WiFi 無線網卡內建指向性天線的產品,其中崴海尼可甚至擺了功率放大器在裡頭 (沒有法規問題嗎?)。

這種延長 USB 連接線的產品相較於直接換接無線網路天線的差別是,USB 資料傳輸線不會造成類比訊號損失,而對為了低射頻損耗的線材價格比較昂貴。相較起來,延長 USB 線比較實惠,通常你所購買的無線網路天線,相當大成本都是在線材上。

另外,碟形天線的波束寬 (Beamwidth) 相較於上述的其他平板指向性天線是比較窄小的,意思是你得對準訊號來源才能得到比較好的效果。因此碟形天線通常用在較遠的點對點傳輸,一般提昇收訊品質的使用情境,我認為指向性平板天線就夠用。

若你是因為想增強點對點無線網路訊號強度而讀到本篇文章,若你可以找到適當大小的鍋子,不彷試試自己做窮人的天線,只要嚴格的依據數據製作,效能不會比成坊公司這種炒菜鍋差。可以參考「How-To: Build a WiFi biquad dish antenna」一文的細節,或者 Cantenna 也是一種簡單便宜的 DIY 方式。

最近看到一個相當有趣的例子是「一個農民女人DIY的遠距離無線上網,農民雄起」,號稱透過自製的碟形天線打了三公里遠,令人印象深刻。

感興趣的話,台灣的網路論壇 PCZone 無線網路版也有相當多無線網路天線 DIY 的討論文章。

揭露: 作者與成坊有限公司無任何往來或接觸,亦無冤仇。敝人不為文中所提任何產品背書。

Continue reading

我已經在 Learning git 中提到 Scott ChaconGitCasts 網站,網站中包含相當多的操作示範影片。但是其中有一則在原本的文章沒提到的是 Scoot 在 RailsConf 2008 對 Git 做了一個相當精彩的演講,若你原本有使用其他版本控制系統的經驗,花一個小時聽完 Scott 的介紹應該是最有效率的方法。

這場演講中,Scott 廣泛的介紹 Git 的設計理念與使用方法,解釋了 Git 所使用的 DAG Storage 與 SVN 所用的 Delta Stroage 的內涵差異,深入說明 Git 所使用的 Object Model,並解釋那些特別容易令人困惑的 index, remote/local branches 的概念,甚至幫你說明了最重要的幾個 Git 指令的使用方式。專心聽完,真的可以馬上學會喔。

(請按播放視窗的圖示將影像全螢幕較適合閱讀。)

“Getting Git” by Scott Chacon from Kevin Moore on Vimeo.

簡報可於 SlideShare 取得。聽完還意猶未盡的話,請深入閱讀 Git Community Book 吧。

對了,Perl 社群最近也開始使用 Git 來作為版本控制系統了。

話說上週四參加聚會時,Yuren Ju 高興的分享 Android 計畫中帶的 Droid 字型,他說這個字型比其他字型所呈現的字體在他的螢幕上都頗清晰,於是他在每一台機器上都裝了這個字型。

是阿,富比士雜誌甚至報導了一則關於這個由 Google 與 Ascender 公司字型的故事 Android’s Very Own Font,訪問了 Ascender 的首席設計師 Steve Matteson 關於這個長達兩年幾乎跟 Android 開發計畫一樣久的客製化字型開發專案。

正當我想要把字型到處裝來試試的時候,檢查了一下授權,雖說 Android 中所有的軟體包含字型應該都是 Apache 2.0 授權,包含在釋出的軟體開發工具 (SDK)原始檔案中都有文字檔說明版權宣告。不過社群中發現一個疑慮,在 Droid 字型的資訊欄位中,有一項授權條款是這樣寫的

This font software is the valuable property of Ascender Corporation and/or its suppliers and its use by you is covered under the terms of a license agreement. This font software is licensed to you by Ascender Corporation for your personal or business use on up to five personal computers. You may not use this font software on more than five personal computers unless you have obtained a license from Ascender to do so. Except as specifically permitted by the license, you may not copy this font software. If you have any questions, please review the license agreement you received with this font software, and/or contact Ascender Corporation. Contact Information: Ascender Corporation Web http://www.ascendercorp.com/

於是這產生了授權問題,依照上述條款,你只能把字型裝在五台電腦上,超過需要另外要求授權,且關於細節的授權條款並不清楚。

所幸,兩週以前 Google 總算做了一個修正,將字型中的版權聲明也改為 Licensed under the Apache License, Version 2.0,加上原始碼字型檔案同目錄中的 README.txt 也同樣明確聲明為 Apache 2.0 授權。

如此證明已 Apache 2.0 授權散布使用此字型是沒有法律疑慮的。目前社群中 ArchLinuxGentoo 都已經有相關的安裝套件。版權確定沒問題了,就可以安心的把字型丟到我的 Nokia E70 上了,嘿嘿。

其實大部分的英文字型,我習慣使用也很清晰的 Bitstream VeraDejaVu 字型。至於搭配 Terminator 使用的寫程式/系統管理小字型,則是點陣字型 Terminus 最有效率。中文的部份,近來已經改用文泉驛點陣宋體CJKUnifonts。若想看看更多中文字體,可以參考 Ubuntu China 的 Wiki 網站。

這段錄影已經躺在硬碟中很久,這兩日才利用通勤的時間消化了一番。這是 Linus Torvalds 在 Google 所進行的一段演講,身為一個性格強硬的硬底子駭客,他時常發出驚人的評論,有些有趣的言論甚至被整理成格言集,像是 The 10 Best Linus Torvalds QuotesLinus Torvalds Quotes

在這段演講中,身為 Git 計畫的發起人,Linus 說明了為什麼需要設計這樣的一套工具,基本的設計哲學與其他類似的工具的比較。

在技術的觀點上,他直接且尖銳的同時批判了 CVSSubversion,演講一開始 Linus 就給了 CVS 贊頌 – 負面的贊頌,雖然 Linus 從來不用 CVS 管理 Kernel source tree,但是還是在商業公司有過一段不短時間的使用經驗,而且 Linus 打從心裡強烈的厭惡這個工具。同時他也批判 Subversion 這個計畫是他看過最沒有意義的,因為 Subversion 從各方面試著去改善 CVS 的一些技術上的缺點,卻無法根本的解決一些基本使用限制。具體來說 Subversion 改善的創建分支的成本 (意思是相對 CVS 所利用的硬碟、計算資源比較少),但是卻沒辦法解決合併分支的需求,任何使用過 Subversion 合併分支的人都知道那是如何痛苦的折磨。而許多高度開發中的專案,都時常需要為不同的新功能開分支、合併,Subversion 解決了開分支的成本,卻沒有考慮到合併的人工成本。如此讓 Subversion 變成一個沒有未來的軟體計畫。

因此,基於過去在 BitKeeper 上得使用經驗,Linus 設計了新的 Git, 並將效能視為主要的需求。當然分散式的設計也是最重要的概念之一,Linus 提到幾個觀點,討論如下。

第一個是分散式的概念,解決了政治紛爭。所謂政治紛爭指 commit/checkout/create branch 的權利,傳統中央集權式開發模式,你若想要創建一個新的分支,或者進行一些實驗性的開發,通常必須獲得主開發者授予 提交者 (commitor) 的權限,意指你是受到信任的一份子,有權限可以自行修改軟體程式碼,被授權進行一些嘗試。(唐鳳的人人皆為提交者開發模式為例外)

這種模式,很自然的排擠了在所謂信任圈 (core developers) 外的人。對,你依然可以在中央控管的機制下嘗試,你依然可以透過 patch 提交你想要做的更動。但是工具本身的限制,直接的限縮了自由發展的可能性。舉例來說,你相對不容易組成一個工作小組 (Task Group),因為分享程式碼的變動並不容易,你可能必須建立另外一個獨立的程式碼管理系統給這個工作小組使用。而不像分散式的管理工具如 Git/Mercurial 開發者間可以透過數種管道接取/同步雙方的進度。

或者中央集權工具的另外一個根本上的問題是 – 它阻礙了開發者的實驗精神。

簡單講,就是開發者礙於每次提交 (commit),都可能因為程式碼的不相容性,造成其他人必須停下來彙整變更,影響到其他人的工作進度的後果,因此每次提交/儲存都會有所疑慮。因此很容易就演變成開發者埋頭苦幹,直到最後一刻才一口氣提交上線,結果造成的不相容與衝擊更大,反而造成最後的工作成果難以融合。

在分散式開發工具的輔助下,你可以隨意的開立新分支,自行修改、測試、同步、實驗,這些在本地的提交除了完全不會影響到其他人外,同時你也可以輕易的匯出成特定格式 (patches),讓他人更容易的整合。這大幅改善了協同開發模式的磨合問題。

Git 是以分散式開發模式為根本,自然可以融合於相對單純的中央集權  (cvs/svn) 的權利結構。Linus 在演講中也提出了一個我認為很值得討論的觀點,即是應用於 Linux kernel 開發的多層次分散權利結構。Linus 提了一個重點,基本上開發社群中有一種信任關係 (Web of trust),像 Linux Kernel 這樣的龐大計畫,每個版本參與的開發者大約千人。實際上主要開發者如 Linus 不可能認識這麼多人,很自然的,他只能信任最熟識的幾個人,他指知道幾個人的智商與能力都是足以信賴的,於是他只需要仰賴這些人的成果。而其他人在於自己的信賴圈內,找到其他可以仰賴的人,於是利用這樣的信賴機制來擴展成網狀的開發社群。

在實務上,社群中也會演化出幾個角色,像是司令官 (dictator)、副官 (lieutenants)、開發者。幾位副官只要專注在他們熟悉的領域,整合開發者的成果,並提交給司令官做最後的整合決策。這麼一來,各種不同的專業領域都可以交給最熟悉的開發人員管理,而開發不會被限制、停頓在某個角色身上,相對而言是一個比較具有效率的開發社群結構。且分散式開發,也讓不同的開發者得以有權利與自由自行發展,不受限於官僚機制的限制。

上述為演講內容的一些提要。

Web of trust 是我相當認同的一個概念,任何所謂社群中,都會自然的因為信賴關係存在更小的團體,有人誤解這是一種分裂,但是我認為這是一種演化,不該消弭小圈圈的存在,反而應該鼓勵小團體的成立,自行交流、合作,才有機會產生或再演化出更大、更有力量、更健康的社群。(應該有什麼什麼政治學、社會學的理論在講這件事情吧 ?)

另外也推薦一個網站,是即將被國家綁架去服役的 kanru 翻譯的「為什麼 Git 比 X 棒」(Why Git is Better than X)。這個網站簡約的說明了 git 與其他程式碼控制軟體的比較,可以讓你比較容易了解各種軟體間的差異細節。

另外 為什麼 Git 比 X 棒 這個網站中介紹的 github 服務,我個人相當欣賞,它基本上提供了 Git 的 hosting 服務,但同時也包含了更多 Web 2.0 的概念,是所謂 “Social coding hosting”,基本的功能除了提供 Git 外,像一般的社交網站一樣,你可以追蹤別人的狀態,別的網站你追蹤的是朋友發出來的訊息,這裡你追蹤的是朋友寫出來的程式碼,而且你可以直接在線上「複製」(branching) 別人的工作成果,也提供了相當美觀的介面,讓你看到程式碼更動的網路關聯圖,相當有趣。剛開始使用 Git 時,可以試試這個網站。

若想學習 Git, 請參考 Learning git 一文的連結。

上一篇文章介紹我的新玩具 iPod Nano,稍微提到有專為數位音樂播放設備 (Digital audio player) 開發的自由軟體授權的韌體 Rockbox。除了基本的播放功能外,且支援公開的壓縮規格如 Ogg Vorbis, flac 外,計畫本身也納入了許多一般播放設備不見得會置入的大量外掛功能,像是 Picture Flow,以及許多遊戲,如基本的 數獨 Sudoku, 接龍 Solitaire, 踩地雷等等,甚至還有 Game boy 模擬器、ZX Spectrum 等等。

目前 Rockbox 已經可以支援相當多的硬體平台,包含了 Apple iPod, Archos, iAudio, iRiver 等眾多品牌的不少硬體都已經可以順利執行 Rockbox。前一兩年,台灣也有些朋友成功的把自己的播放器韌體換成 Rockbox, 並做了相當詳盡的介紹,如 lwb 介紹了 iHP-120, iRiver H320, Rockbox 的基本介紹等等。若你不喜歡手上的播放器內建的韌體功能,而期待更多額外或其他友善的介面,可以試著將它安裝上 Rockbox,或許可以讓你的設備使用起來有更好的使用經驗。

在此,我想介紹這個玩具給哪些想在耶誕節前買禮物給你家自由軟體愛好者的朋友,可以考慮位在台灣高雄的酷點科技公司的產品酷卡拉 (CK100)。基本上酷點科技的產品完全是基於自由軟體元件所開發的,其中主要的播放軟體是 iPodLinux 中所使用的 Podzilla。加上數個極有特色的軟體功能,像是主打得 Karaoke 功能,或是搭配硬體提供 USB Host 功能,主處理器使用 Samsung SC3244 (ARM920t CPU @ 400MHz) 作為一個 PMP 而言,軟體功能其實相當足夠,加上特別保留的開發介面如 Jtag/USB Net 連線除錯功能,也相當事宜拿來 hacking。

CK100 block diagram

最近酷點科技跟老地方影像工作室做了一段有趣的廣告介紹各項功能,可以參考。

就像是 LinuxDevice.com 上的報導「Hacker-friendly karaoke PMP runs Linux」,酷點科技是以自由軟體為基礎開發這個產品,也同時將自由軟體視為一種利基,其他的設備銷售商提供下載的可能是更新過的韌體,酷點提供的是原始碼/開發工具,以及開發的文件。就軟體架構上,雖然 CK100 的主播放元件也是基於 PodLinux,但是與 Rockbox 是有很大的不同,CK100 的程式碼還未能像 Rockbox 那樣有一個開發架構讓開發者開發外掛,更改過得程式碼也稍嫌「直接」,不過這絲毫不影響 CK100 是一個開放原碼的硬體平台。

因此若你想買一個禮物送給愛玩電腦/嵌入式系統的朋友,這是一個可以考慮的選項喔。(若不計較外觀設計的話 🙂 )

備註: 敝人發表此文時,與酷點科技無往來。