2007/12/13

active RAID-5 ubuntu with mdadm

想在 ubuntu 下裝 RAID-5 的企圖心讓我有機會第一次設定 Raid-5, 在此建議各位使用 mdadm, 若尚未安裝的話,請 sudo apt-get install mdadm

步驟很簡單,只需要先將硬碟裝起來,當然驅動程式不在此討論。以我的例子來說,我是裝了四顆硬碟,用 fdisk -l 看會有四顆硬碟。

二、先分割區做好,例如 fdisk /dev/sdf。請把四顆都做好,而不是一顆。至於分割區的 type, 請選擇 fd. 不過我用 ext3(83) 也可以。

三、mdadm -C /dev/md0 -l5 -n4 /dev/sd[bcde]1

四、使用前當然要先格式化 mkfs.ext3 /dev/md0

四、接下來就可以掛載 mkdir -p /media/raid5; mount /dev/md0 /media/raid5

五、要停用的話,請用 mdadm --stop, 若要重新啟用則用 mdadm --run,有一個建議的用法是 mdadm --stop --scan 這樣可以把所有 RAID 停掉

六、若要自動在開機時掛載(非從此 RAID 碟開機)的話,可以修改 /etc/fstab, 參考如下
/dev/md0 /media/raid5 auto defaults 0 0

七、要若查狀態,可以用 mdadm -D /dev/md0

八、若是將 RAID 硬碟移到別的系統,則需要重組 mdadm --assemble --scan

九、若要把 RAID 電源關閉,必須先移除該 RAID controller 的 module, 否則核心會收到一堆錯誤訊息,以我的系統為例,是 rmmod sata_sil24。當然若你系統未關,在重新使用 RAID 之前記得先 modprobe sata_sil24。因為 RAID 都是 SATA 裝置,所以若不知道自己的模組名稱,可以試試 lsmod | grep sata 來找出來

蛇吞象 400S, ubuntu-7.10-server Sil 3132 + Sil 3726

我想架個 server, 做法是買台 普通 DIY PC, 然後外掛一台蛇吞象 400S, 裡面接四顆 500GB 硬碟,這樣的好處是 PC 沒附作業系統,我喜歡,而儲存用的硬碟在外面也比較好管理。

問題來了,這款 Raid 外接盒並沒有受支援,找了 patch file 一看,哇,一萬七千多行,我用差不多一天的時間才 porting 完,下載最新 2.6.23 更新檔,但是我想既然要更新,就將它更新到 2.6.39.9 的最新版去。幸好開機成功。

若有興趣的人,請自行下載 patch, 不過原網站目前最新的是給 2.6.23, 若您想用 2.6.23.9 試試的話,可以從此處下載。請注意兩件事:
一、這個 patch 並未給予任何保證與服務
二、裡面我拿掉一個裝置,p5wdh, 懶得把它加回去。

2007/12/06

gmail group chat

愛用 google 產品的注意一下。我五、六年前開始用 google 的 search engine 時就已發現英文介面(一開始其實沒中文介面)與中文介面設定畫面不太一樣,尤其在從試用版開始用 gmail 時也發現所提供的功能也不太一樣。但是因為當時查兩種語系的功能時發現不同的部份我也用不到,所以後來只用中文介面,誰知,今天為了要找 gmail group chat 功能才發現,事實上還不止這個功能在中文沒有,還有更多的地方是不一樣的。

也就是說,請大家有機會有意願的話,用英文介面吧!

2007/12/05

VirtualBox 使用 usb device

http://www.linuxdiyf.com/viewarticle.php?id=67813
1.增加 usbfs 群組

$ sudo groupadd usbfs
# groupadd usbfs

2. 查看 usbfs 的 gid

$ cat /etc/group | grep usbfs
usbfs:x:1002: <-- 這邊應該會不一樣,請仔細比對,下面要用到

把當前用戶增加到 usbfs 群組,請修改 /etc/group 裡的
usbfs:x:1002:
修改為
usbfs:x:1002:wade 這裡的 wade 即為你平常登入使用的帳號

4. 為 USB 裝置檔案系統設置掛載及權限,修改 /etc/fstab文件,添加下面兩行,注意你的gid可能不是1002(上面有查到)

# 1002 is the USB group IDI
none /proc/bus/usb usbfs devgid=1002,devmode=664 0 0

2007/11/30

模擬器 simulator

一聽到模擬器,大家會想到的或許是game 的吧,但是我一向不玩 game, 所以當然不會去談它,但是事實上我也曾經玩過 game 模擬器,其實這也是一個課題。

比較常用的模擬器有很多,一般人可能較常用 vmware 吧,不過我以前只用 wine, 後來用 qemu, 最近又多了一個不錯的選擇,叫 virtual box, 有windows 也有 Linux, 例如 debian/ubuntu

其實模擬器還有很多,例如 xen, 但是其他的我都沒在用,只曾經試用。若以 x86 的模擬來說,Virtual box 比 qemu 還快,不過 qemu 適用的硬體較多,算是各有好壞。

2007/11/15

unzip unsupported compression method 99

我最近遇到 unzip 要解開收到的附件,卻出現 unsupported compression method 99,因為明明是 .zip 檔,所以一直以為是 winzip 太新用了什麼鳥方法造成的,因為困擾不大就沒深究。後來才發現用 7z 可以解開,查了一下,底下一篇有說明 http://juljas.net/linux/tips/,其說明如下:


ZIP unsupported compression method 99
There is new kind of compresion that can be used to compress files inside .zip file.
It is related to security encryption and regular Linux unzip utility does not know how to handle that.

Files compressed with method 99 can be uncompressed with another utility called 7z. There is Linux & win32 version.
Syntax is: 7z x file.zip

7z is available at 7z home site and in standard repositories (i.e. yum install p7zip p7zip-plugins)

事實上在 debian/ubuntu 中也有 p7zip 可以安裝,請自行用 apt-cache search p7zip 找。若含密碼的話,解開的語法是類似
7z x -p密碼緊接在此 File.zip

2007/10/25

隨手筆記 tomboy

推薦大家使用一套軟體 http://live.gnome.org/Tomboy/Win32

wiki 是我很喜歡的東西,隨手把要的資料寫下來很重要,有一套 google notebook,不過要上網。當然啦,上網有上網的好處,就是你到別人那兒也可以透過網路把筆記讀取下來,問題是,若我真的只是想隨手記呢?那就請用 Desktop Wiki 軟體。 tomboy 是免費軟體,歡迎大家使用。

如果你使用習慣了,它讓你很容易整理隨手資料(當然是純文字),寫心得剛好,寫小抄適用。若能配合 google desktop 那就更妙,透過 google desktop 來找根本就可以隨便亂放,連整理的工夫都免了。

2007/10/24

低價 NB?

陳彥廷/台北2007/10/24 繼華碩Eee PC進軍消費性市場後,神達亦宣布2008年正式跨向
低價PC市場,將與MIND Ltd.合作,瞄準3~12歲學童市場,亞洲區已選定香港率先推出,定
價為3,000港幣。
筆記型電腦(NB)業者認為,神達進軍低價PC意義格外重大,因為低價PC切入消費性市場前
景開始受到注意,而神達切入特殊市場經驗豐富,針對特殊年齡層及使用功能再與Eee
PC區隔,至於目前OLPC(One Laptop per Child)仍堅持走新興、標案市場,若Eee PC、神
達與MIND的兒童電腦將市場規模加大,標案市場訂單未如預期順利的OLPC陣營,恐得調整
策略進駐消費性市場。
隨著華碩Eee PC引爆低價PC熱潮,炒熱市場,使目前全力衝刺手持式系列產品的神達,亦
正式喊進兒童電腦市場,至於最先提倡低階PC產品的OLPC陣營,因為競爭者眾而氣勢再度
式微,而陪著OLPC一路走來的處理器廠超微(AMD),近期則展開一連串節能平台宣傳戰,為
沒有品牌加持的OLPC護盤,增強11月出貨氣勢!
事實上,華碩跨出NB品牌大廠不敢輕易嘗試的一步棋,讓Eee PC前進消費性市場接受挑戰
,進而引領風潮,如微軟(Microsoft)原本不願支持,到最後降價以求,Eee PC的
Windows簡易版和XP完整版將在2007年底提供市場選購,華碩也斬釘截鐵地表示,
Windows與Linux版的價差不大!現在無論低價PC能帶給華碩多少獲利,當低價PC氣勢擴大
,外圍相關軟、硬體供應廠商也只有跟進的份。
PC業者指出,由於低價PC焦點移轉,擔心OLPC氣勢下滑的超微近期亦不得不為OLPC發聲,
希望為氣勢稍弱的OLPC陣營注入一劑強心針。超微強調,OLPC是協助開發中國家孩童學會
如何學習(Learn Learning)的重要教學工具,其耗電量僅為一般NB的10分之1。
值得注意的是,處理器大廠英特爾(Intel)除Classmate PC與Eee PC之外,7月亦已加入
OLPC所發起100美元電腦計畫,因此,未來無論任何一陣營成功熱賣,英特爾終將是最大贏
家。此外,近期市場也傳出氣勢不如預期的OLPC,若連標案市場大餅也輸給華碩Eee PC,
超微恐將琵琶別抱,未來低價PC市場如何發展,備受業界關注!

評估行動終端8大要素 mobile device

唐鴻/DIGITIMES2007/10/24 前言:目前已決定導入Tablet PC的企業,定位較為明確,至於導入Tablet PC的評估要素,也可見諸本刊先前探討導入筆記型電腦的文章中。但是導入UMPC,則遠較導入Tablet PC複雜,因為在UMPC的應用定位中,可能與輕薄型筆記型電腦、PDA、PDA手機、智慧型手機等裝置重疊,如何完善的評估是否該導入UMPC,反而更為困難,因此,本篇將針對導入UMPC的關鍵評估因素,進一步加以討論。

M化是許多企業考慮導入行動終端的重要因素,但是行動終端的選擇相當多樣,事實上,UMPC只是眾多競爭者之一,還有一般筆記型電腦、輕薄型筆記型電腦、PDA、PDA手機、智慧型手機…等多種裝置,在華碩(ASUS)推出Eee PC低價電腦後,又多了1個新的競爭對手。

這些行動終端裝置雖然可以從外觀上看出有很大的不同,但是功能性及許多設計概念,卻有大量重複之處,企業一方面因為能有多種選擇所喜,畢竟這並非獨佔市場,價格與品質都比較健康,但是另一方面又為選擇太多所苦。

本專題前面的章節中,已先針對UMPC作為第2台筆記型電腦的身分,做了一番評估比較,雖然這是一般人認定的UMPC定位,但是對很多企業來說,行動終端設備根本不是所謂的Sub-NB,因此,在此一假設不存在的情況下,又該如何評估?

所幸導入行動終端,還是有幾項關鍵因素可以作為評估標準,讓企業採購人員至少有個基準可以依循。

導入行動終端8大要素 按部就班評估真實需求面向

企業評估該導入何種行動終端裝置,可以由網路連線品質與傳輸速度、作業系統使用彈性、內容輸入難易度與重新學習成本、螢幕大小、攜帶便利性、電池使用續航力、穩定性與安全性、總持有成本等8個面向,進行全方位的評估。

1.網路連線品質與傳輸速度

作為M化終端,良好的無線網路連線品質與傳輸速度,當然是優先考量的因素,但是,目前無線網路的連線模式日益複雜,不同終端設備由於體積或基本設計的限制,支援的連線模式也不盡相同,當然是導入時應該評估的重點,特別是各種連線模式的費率不同,除了效率,連線成本亦不可忽略。

目前較為普及的連線方式,有Wi-Fi無線網路、3G或3.5G行動通訊網路;此外,眾所矚目的WiMAX執照,終於在2007年7月底透過競標程序,成功的發放了8張,根據規定,取得執照者必須在3年內開台營業,因此,業者間的布局與角力,也會牽動無線連線市場的變化。

單就連線支援度來說,各種連線模式都支援,自然比較能夠達成無縫連線的最佳狀況,不過,大部分的行動終端限於各種設計因素,通常難以一網打盡。一般來說,較大的裝置,即筆記型電腦、輕薄筆記型電腦、UMPC類的產品,都有支援擴充的USB插槽,因此,就算原本不支援某種連線模式,例如大部分的筆記型電腦都沒有支援3.5G上網,卻可透過安裝USB介面3.5G數據機的方式,解決此一問題。

扣除上網的部分,手機類的手持行動終端搭配近場通訊 (Near Field Communication; NFC),即支援短距離的資料無線傳輸技術,能發揮相當大的應用彈性,因為NFC具有雙向識別和連接的功能,適用於認證與付費機制等特殊應用。手機加上NFC功能,成為電子錢包、悠遊卡的中心,雖然與一般無線上網的應用模式不同,卻同樣能替行動商務人士帶來不少便利性。

2.作業系統使用彈性

行動終端裝置的角色,除了筆記型電腦(含Tablet PC)與輕薄筆記型電腦與部分硬碟容量較大的UMPC外,幾乎都會受限於系統效能與儲存容量,無法運算與儲存大規模或是較耗效能的企業資料,此時,通常需要1台桌上型電腦或大型筆記型電腦,作為後端支援電腦,M化使用者的各種資料在兩者間交換,已是司空見慣的運作模式。

如果行動終端是筆記型電腦、輕薄筆記型電腦、UMPC,就作業系統這1項,基本上與企業後端電腦具有完整的相容性,因此無論是連接傳送資料,或是企業開發應用程式方面,都相當完整與便利。

如果企業導入的行動終端為PDA、PDA手機、智慧型手機,甚至Eee PC等裝置,其採用的作業系統多半為Palm、Windows Mobile、Linux、Symbian等,這類平台與Windows作業系統無法直接連接,必須透過中介軟體,或是企業另行開發的軟體,再不然就是透過網際網路連接,運用上的彈性較為不便,購置軟體或開發軟體的成本也較高。

3.內容輸入難易度與重新學習成本

由UMPC從基本概念捨棄鍵盤,到幾乎所有廠商都把鍵盤列為標準配備,可以看出內容輸入的重要性,特別是中文的環境,每個單字並非由符號所組成,所以輸入的難易度更重要,如果只是輸入一段簡單的資料,都需要耗費大量的時間,相信這樣的行動終端,很容易被使用者束之高閣。

此外,輸入法也與使用者的習慣息息相關,雖然任何技巧都是多加練習即可熟練,但是要花時間重新學習,對許多已經熟悉某種打字或輸入法的使用者來說,可能相當困難,付出的時間與精力也難以估計。

如果不考慮使用環境,輸入的便利性當然以絕大多數使用者已經習慣的大型鍵盤最佳,因此,筆記型電腦與輕薄筆記型電腦通常仍是優先選擇,Eee PC在此項也不惶多讓,而改良過鍵盤的UMPC,基本上也頗貼近使用者的習慣,轉換的學習曲線應該不會太陡峭。

而以手機、PDA等裝置來說,除非外接鍵盤,或是內建鍵盤,且使用者已經非常熟悉小鍵盤的輸入模式,否則一般來說,輸入的便利性,還是以大型的裝置佔上風。此外,風靡全球的BlackBerry手機,雖然也具有鍵盤的設計,但是卻沒有多數台灣民眾習慣的注音輸入法,這個因素竟成為許多使用者或企業不導入的原因,可見內容輸入的影響相當大。

圖說:請注意UMPC與人物的手掌比例,說明了UMPC鍵盤通常必須遷就手持使用模式與攜帶便利性而縮小,因此使用者還是需要花時間才能熟練操作。

4.螢幕大小與顯示效果

螢幕是絕大部分IT設備輸出資訊的最重要裝置,行動終端亦不例外,在多數使用情況下,螢幕通常愈大愈好,並支援較高的解析度,讓顯示畫面的面積最大化,以瀏覽網頁這項行動終端經常執行的功能為例,大螢幕加上較高解析度,瀏覽起來絕對比較輕鬆;用於多媒體播放方面,通常大螢幕會搭配較好的顯示晶片,顯示效果亦較佳。

因此,在螢幕大小這個評估點上,類筆記型電腦產品還是一面倒的強,當然,目前許多智慧型手機或PDA的螢幕大小也急起直追,愈做愈大,但是多媒體顯示效果、螢幕反應速度等,通常還是略微遜色。

不過,螢幕大小通常與裝置本身的體積成正比,顯示效果通常也與耗電量息息相關,到底該如何取捨,還是端看使用者的需求,如果只需要看簡單資訊或是畫面較不複雜的網頁,小螢幕通常還是可以接受,不過,如果資料量較大,可能就得仔細評估螢幕大小。此外,有些使用者本身可能只需要讀取簡單資訊,但卻經常得向客戶展示或分享行動終端顯示的資訊,此時,螢幕當然也是愈大愈好。

5.攜帶便利性

行動終端裝置的攜帶便利性,評估起來通常也是一面倒,只是結果正好與前述3項相反,手持式、沒有內建鍵盤、螢幕較小的手機與PDA等裝置,反而遙遙領先,螢幕愈大、輸入愈便利的筆記型電腦等,在可攜性上則處於落後的局面。

除了尺寸之外,重量也是1å置所使用的連線模式費用,不同模式間運作數個月後,費用可能相差不少,也是總持有成本的一部分。
目前諸多產品相似性愈來愈高,底下的比較可供釐清思路。

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


唐鴻/DIGITIMES2007/10/24 前言:不少筆記型電腦廠商推出輕薄攜帶型機種,螢幕尺寸小於12吋,擠壓UMPC的定位。此類筆記型電腦與UMPC之間的差異,最難以比較,在此以技嘉科技的U60 UMPC與Sony的VAIO TZ17輕薄筆記型電腦做一番簡單的對比,讓讀者有較為實際的對照,而不只是抽象概念的說明。

每一種可攜式裝置各有其優缺點,在不同需求之下,根據前1篇所述的8項檢視重點,應該很容易釐清才是,只不過,隨著超輕薄筆記型電腦的體積愈來愈迷你,逐漸踩到UMPC固守的可攜式紅線,加上擁有與UMPC相同的作業系統、使用習慣,似乎也讓採購者開始感到混淆。如果只是抽象的說明兩者的不同,恐怕很難讓人釐清,因此本文將以實機進行細部比較與分析。

技嘉科技U60與Sony推出的TZ17,分別為目前市面上特色鮮明,且相當具有代表性的UMPC與超輕薄型筆記型電腦,以下將對這2台裝置的細部加以分析說明。當然,這樣的比較並沒有勝負之分,只是為了更進一步釐清兩者之間的不同定位與較適合的運作模式。

這2台裝置的基本性能諸元,請參考附表,接著就針對各項特色,直接比較說明。

1.重量與尺寸等攜帶性相關事項
體積上採用6.5吋螢幕的U60明顯略勝一籌,畢竟螢幕決定了體積;至於重量方面,U60的720g正好是TZ17的60%,雖然兩者都不算太重,但是對於可能已經攜帶一大堆文件資料、甚至行李的行動商務人士來說,U60少了40%的重量,應該還是比較討喜。

圖說:U60與TZ17的大小當然有所差別,但都屬於不能放入一般口袋的行動終端,這正是造成兩者定位逐漸模糊的主因,如果攜帶時都需要另外裝在提包裡,多那麼一點大小與重量,往往被許多使用者所忽略。

2.使用便利性

U60為第2代UMPC設計,除了具有可觸控式螢幕,將螢幕往上方滑動,即可看到其內建的QWERTY標準鍵盤,該設計讓使用者不但能在有桌面的情況下,採用較快速的鍵盤輸入模式,在沒有桌子的行動應用環境,亦可手持輸入,操作方式類似遊戲機,對於行動商務可能遇到的各種環境,使用起來都相當便利。只不過鍵盤較小,在適應之前,常會發生誤按或按錯鍵的狀況。

TZ17則為標準的筆記型電腦鍵盤,沒有螢幕觸控輸入模式,在將機器懸空拿取的情況下,幾乎沒有辦法輸入。但是在有桌面的環境,採用標準鍵盤的TZ17因為按鍵較大,排列方式也無須重新適應,打字速度較快。

因此就便利性來比較,可以發現UMPC的優勢在於極具彈性的環境適應能力,輕薄筆記型電腦則強在打字快速,且鍵盤排列無須重新適應,但這2點並沒有絕對的優劣之分,在旅途中,UMPC較佔優勢,但是到了固定場所,輕薄筆記型電腦的優點也頗為明顯。

如果以螢幕來說,TZ17的螢幕當然遠較U60大,對多數瀏覽任務來說,使用筆記型電腦會比較便利。

圖說:螢幕大小與機身成正比,不過,筆記型電腦的鍵盤無法以站立手持的方式使用,所以便利性與否,必須先確立應用環境,才能進一步下評斷。

3.發熱量

行動商務人士無論拿取或將這類行動終端放在大腿上使用,發熱量都會影響使用感覺與舒適性,因此有必要特別拿出來討論。

U60採用VIA C7M處理器,因此發熱量較小,整機最熱的部位,在長期使用後也不會超過攝氏30度,如果以人體感覺,大概是微溫的狀態。

TZ17的溫度則高得多,在長期運作後,處理器滿載時溫度可飆高至攝氏80度左右,當然,因為機身左側有排風扇,因此對於穩定性並沒有影響,且排風方向對於大部分使用者來說,廢熱也不會造成使用上的不便,手腕接觸區的溫度控制也相當良好,使用感覺不錯。

但此類輕薄型筆記型電腦溫度上最大的問題,在於底座長期使用後溫度超過攝氏50度,甚至在滿載的情況下還會飆高,因此,許多行動商務人士採用的權宜之計,是將筆記型電腦放置在大腿上使用,能忍受的時間會大打折扣。

圖說:常常看到許多行動使用者將筆記型電腦置於膝蓋上使用,作為沒有桌子的權宜之計,但以發熱量來說,恐怕並不適合稍長時間工作。

4.電池續航力

電池續航力與行動裝置的內部零件與設計、電池容量、電池狀態、甚至使用者運作模式都有相當的關連性,因此沒有辦法做出很明確的比較。不過一般來說,輕薄型筆記型電腦由於體積較大,因此能夠攜帶更大的電池,所以電池續航力會比UMPC強。

以U60來說,原廠公布電池使用時間約4小時,經過測試,實際以低背光模式運作,開啟無線網路上網,並且處理Office文件的狀況下,大約可運作3小時,已經比過去的UMPC續航力增加不少。
不過TZ17的電池續航力更為強大,原廠表示,電池續航力可達11小時,但以類似U60的運作模式來使用,並開啟內建的最佳化電力配置模式,運作時間約7.2小時,雖與原廠宣告時間有不小的差異,不過,已經具有相當的續航力,顯然也遠勝UMPC。

5.效能

雖然這類行動商務終端,通常不會將效能視為重要的參數,但是在定點處理高耗能的運算時,較高的效能,還是能夠提高不少效率、節省處理時間。

其實以硬體的規格就可以看出,TZ17的處理器效能勝過U60,記憶體配置容量也較大,顯示晶片功能稍高一點點,硬碟機的容量與效能也是TZ17勝出。其實,以前述的運作溫度來看,很明顯跟效能是成正比。

因此,對於需要大量高耗能運算的使用者來說,UMPC會較吃力,採用輕薄型筆記型電腦可能是比較好的選擇,當然,UMPC也有效能較強的產品,但是通常也會影響電池續航力與發熱量。再者,以一般行動用途而言,收發郵件、上網、處理文件,甚至多媒體播放的使用模式,U60的表現也相當流暢,效能已經符合行動商務的定位。

6.價格

UMPC搶攻Sub-NB市場,價格是相當重要的武器,畢竟如果是第2台行動終端,表示使用者已經投資建置了第1台筆記型電腦,對於第2台設備的預算可能更為吃緊,而第1代UMPC價位過高,也是公認的致命傷之一。

價位當然隨著市場脈動與廠商策略而有所不同,但是以U60來說,其新台幣28,900元(約800多美元)的價位,已經比初代UMPC遠超過1,000美元的售價好上許多,不過平心而論,許多專家都認為,UMPC要在市場殺出一條血路,500美元以下的售價,可能才是普及與否的關鍵。

不過,相對於輕薄型筆記型電腦,U60的售價還是遠較便宜。以TZ17來說,建議售價達新台幣69,800元,以實際市價來說,也超過U60的2倍以上,就行動商務終端的角度來看,價位明顯在高點。

7.互補性

由上述幾點比較可以大致看出第2代UMPC與輕薄型筆記型電腦的差異點,讓企業行動使用者作為評估參考。不過,有1點是比較這些性能諸元亦無法看出的,就是裝置的互補性。

輕薄型筆記型電腦與第1台筆記型電腦之間,在性能上很可能有許多重複之處,其使用困難點一樣無解,例如在沒有桌椅的地點使用,始終是個大問題;相對的,UMPC卻能與筆記型電腦形成良好的互補性,即任何1台筆記型電腦,目前都無法做到U60的輕便和多樣化使用模式,因此,U60與行動商務人士第1台筆記型電腦的互補角色演繹得比較完善。

圖說:如果已經擁有第1台筆記型電腦,UMPC則具有較好的互補性。

2007/10/22

web 2.0 的精神.....

底下這篇文章寫的很好,請與標題合著仔細品味

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

《國際產業》網路讓印度窮人翻身
2007/10/22 08:32 時報資訊

【時報-記者陳穎柔摘譯】馬諾哈‧拉克希米帕提沒有電腦。其實,在班加羅爾,像馬諾哈這樣的工人(房屋油漆工)通常不被允許碰客戶的公務電腦。

所以你能想像得到,當馬諾哈向一位秘書報出自己的生日、電話號碼和工作經歷,讓她輸入電腦,馬諾哈是有多麼驚奇。然後,有人幫馬諾哈拍照,再來,用滑鼠一點,馬諾哈的個人專屬社交網頁登上網際網路,成為Babajob.com的最新人物檔案。

Babajob是印度一家新創公司,旨在將Facebook與MySpace革命帶給世界上的窮人。Babajob不過是這波委外榮景造成的一個意外副產品:創業家和大型跨國企業正要將印度塑造成以窮人為目標的電腦運算創新中樞。

委外把數百家跨國企業和數十萬名科技人才帶到班加羅爾。現在,委外風潮興起已超過十年,前述企業有許多員工開始將其技術用於對抗貧窮上,技術不再只是用來開發軟體而已。

Babajob的創辦人席安‧巴拉格司維特表示,在Redmond,不會看到七歲的人在街上乞討。他指的是位於華盛頓州的微軟總部,他在那裡工作過。他說,在印度,你很難沒有自己真是幸運的感覺,所以你會問:對於周遭事物能做些什麼?要如何運用所有這些技術?

企業的理由或許沒那麼利他,但通常對窮人產生正面效應,企業已使印度變成一座將現代科技便利擴及長期匱乏者的實驗室。以諾基亞為例,它的超便宜手機有許多是在印度開發的;花旗是第一家在印度試驗能辨認指紋的特殊自動櫃員機(ATM)以幫助記不住個人身分辨識號碼的貧民窟居民;微軟已讓印度成為其全球研發團隊的主要中心之一,此一團隊為窮人研究科技,比如研究能把資訊念給不識字的電腦使用者聽的軟體。

最有名的是社交網站連結善用電腦的菁英份子們。反觀Babajob卻使印度菁英連結上其門外的窮人,後者需要工作但欠缺能找到工作的管道,透過Babajob,求職者刊登技能、雇主刊登徵才廣告,藉由「朋友的朋友」網絡撮合。

比如說,如果拉吉夫和三傑是朋友,而三傑需要一位司機,他可以上拉吉夫的網頁,再去拉吉夫的司機的網頁,然後看看這個司機是否有朋友剛好在找類似的工作。

三十一歲的巴拉格司維特在一九九九年進微軟總部服務,三年後,他被派去印度協助「微軟研發(微軟體制內機構)」設立印度辦公室。

但在班加羅爾工作的微軟員工過的生活與當地的印度人有極大差異,前者有佣人和勞工,他們看的報紙則刊載著關於營養不良和不識字的新聞。微軟的印度員工是第一次眼見這種情況,但其中多數覺得有了對抗這些的新使命。

許多人覺得有著要做些事來幫助其社會的衝勁,他們擁有世界級的電腦技能。與此同時,微軟在印度遭遇軟體盜版使其營收受限,已開始將低收入消費者視為極大的商機,因此,微軟工程師的利他衝勁受到了鼓勵。

在巴拉格司維特的研發辦公室,貧窮成為主要關注點之一,人類學家和社會學家被聘來解釋階級制度對鄉間電腦使用之影響。某日,在此一過程中,杜克大學一位經濟學家讓巴拉格司維特突然有了些洞察,這位經濟學家先讓他們喪氣,然後激勵了他們。

經濟學家阿尼盧德‧克利許納發現,許多做沒有前景之工作的窮印度人走不出貧窮不是因為沒有更好的工作選擇,而是因為欠缺發覺這類工作的管道。任一位班加羅爾人能證實如下觀察:這個城市充斥著渴望有工作的勞工,但富裕的軟體大亨不停抱怨說找不到女傭和廚師。

巴拉格司維特的靈光乍現為何?他當時想到要建置一個專業的社交網站。他就此辭去微軟的工作,然後和他繼父以及以前在微軟的一位同事架了一個社交網站,用以連結班加羅爾的雅痞和當地的工資勞動者。

建置一個旨在連結一天賺二至三美分的勞工之網站意味著要面臨特殊挑戰。這些工人普遍而言不熟悉電腦操作,對於Babajob尤其不熟悉。而且,富裕的雇主不會想讓隨機選取的應徵者照料他們的花園或新生兒。

為了解決此一連結性問題,Babajob付錢給任何上網登記求才的雇主(無論慈善機構或網咖老闆)。此外,Babajob不營造一個匿名的工作市集,反而將印度人在真實生活中聘僱的過程複製到網路上,即運用一連串的私人關係。

在印度,要找司機的生意人可能去問他的朋友,這個朋友可能去問他的司機。這樣的私人關係提供某種品質控制,比如這位朋友的司機不會推薦一個無賴,因為恐怕自己丟了飯碗。(原文刊於國際先驅論壇報)

2007/10/18

image-creator secret for MID

提供一個密辛:當你使用 image-creator 時,卻老是為著它一律從 http://archive.ubuntu.com 下載套件所苦嗎?

其實若從預設地方下載套件,可以保證是最新的,可是速度通常不夠快,若要夠快,可以從當地下載,請修改 /usr/share/pdk/default_config/defaults.cfg, 應該不難理解,我改了兩個地方,一個是 target_mirror = http://debian.linux.org.tw/ubuntu/, 另一個是 buildroot_mirror = http://debian.linux.org.tw/ubuntu/,這樣下載速度變得超快,僅供參考

不過,你會發現這樣做只有前面建立 platform 時比較快,到後面建立 target 時就又回到原來的 http://archive.ubuntu.com 下載,此時可以修改 /usr/share/pdk/platforms/*/sources/gutsy-*.list, 請類推修改。這樣建立整個系統的速度絕對比原先快很多。

======= 20071031 ========
後來才發現,上面那樣修改並沒有多大幫助,真正要改的還是得修改 /etc/apt/sources.list 及 /etc/apt/sources.list.d/*
這邊所指的,都是在 image-creator 裡面的 terminal 所進行的,事實上有興趣的人也可以試試自己 chroot 來做。

2007/10/15

linux 的契機

下面這篇文章說的好,但是我還沒找到來源網站,就先貼著看。不管是 EeePC, OLPC 或其他的超低價新潮流 NB, MID 等等,Linux 都占有一席之地,而這才是 Linux 的最大契機。這一論點我在多年前曾經跟當時的總經理提過,只是限於當時的環境未被重視。

=====

郭長祐/DIGITIMES2007/10/15 前言:如果純以降價來增取新興國家的PC市場,那麼將與1997年興起的低價PC風潮沒有不同,真正的新興國家型PC需要的是更適合當地的功效設計,而根據各項觀察與歸納整理,針對新興國家的因應設計至少有9點需要評估、考慮……

誠如眾人所言,各資訊業者對新興國家型PC市場都還處於「瞎子摸象」的探索階段,因此對此市場的需求設計各有各的主觀設想,這些設想有些確實具有巧思與創意、有些則期望在現有歐美日先進市場與新興市場間求取折衷或接軌之道。

事實上這也是最大的不同點,若單純只是追求PC的低價化發展,那麼早在10年前的1997年就已經啟動,如今的發展決非僅以更低價的方式打入市場,否則將只會成為原有低價PC的戰局延伸,資訊業者也極力避免此種發展,因此在設計上也就格外用心。

到底新興國家型電腦在功效設計上與過往的PC有何差別?以下我們將對此進行統整、歸納性的討論。

1.因應消費預算不足

雖然極力避免,但不可諱言的:新興國家型電腦的第1課必然是價格,如何降低成本也成了設計上的重要課題。舉例而言,MIT Media Lab的OLPC(更具體而言為XO-1型學童用電腦)為了力求整體筆記型電腦的低廉,然其中液晶顯示器部分佔極高的成本比重,因此必須格外花心力去找尋合乎目標成本的顯示器,最終才找尋到僅35美元價位的特有顯示器,且MIT Media Lab期望新款的機種,其顯示器的成本還能再減50%,並在功耗用電上能再減少66.66%。

而Intel方面,Intel不希望陷入PC低價戰,因此提出公用電腦的Community PC理念,依然是以一般PC的價格銷往新興國家市場,但改以社區的公用來均攤開銷,不過如何公用卻沒有更多的技術細節透露。

至於Microsoft,也傾向不打壞PC行情,但作法上又比Community PC具體,Microsoft提出的方案稱為FlexGo,FlexGo電腦需要插入儲值卡才能運作,儲值卡的點數代表使用者能使用電腦的時間(以分鐘計算),如此FlexGo電腦如同公共電話亭,電腦使用者必須購買電話卡才能撥打電話。FlexGo作法不僅可做為公用電腦,就商業模式(Business Model)的運用而言也可做為個人的分期付款電腦,消費者先支付頭款帶回FlexGo電腦,之後依據約定買多少額度的儲值卡,或買包月制的儲值卡達多少月份後,該電腦就不再需要儲值卡才能運作,而與一般傳統電腦無異。

這樣的1套新機制需要額外的軟硬體設計,硬體方面需要用上可信任平台模組(Trusted Platform Module;TPM)的晶片,以及安全辨識用的韌體程式,以及中央處理器等的配合,在TPM晶片方面Microsoft與德國英飛凌(Infineon)合作,在韌體方面與美國鳳凰科技(Phoenix)合作,處理器方面則與Intel、AMD、全美達(Transmeta)等合作。而FlexGo電腦的組裝則與台灣華碩、緯創合作,當然純軟體方面的技術則由Microsoft自行研發。FlexGo的額外設計必然會墊高電腦整體成本,但透過公用均攤與分期付款可以降低此一影響,FlexGo不僅有Windows XP版,也有Windows Vista的版本。

此外,大陸四川國芯科技(Sinomanic)提出的國芯天恩GX-2桌上型(新興國家型)電腦,該電腦提供TV Output功效,能運用一般電視機來充當電腦顯示器,且軟體方面已經配合此一運用,如此就可以省去顯示器的成本開銷。

值得一提的是,2006年大陸貴州省凱裏市大風洞鄉都蓬村都蓬小學就有以黑白電視機做為電腦顯示器,並搭配學習用電腦,如此建構成擁有20多台電腦的學童電腦教室。

2.因應維修據點不足

新興國家型PC的成本、價格已經很低,如果售出後經常壞損,而必須後送維修或到府維修,那麼必然會侵蝕原售業者的利潤,特別是新興國家的交通基礎建設尚待發展,也使維修據點網很難建立。

關於此其實在1997年的低價PC潮就有所因應,低價PC已經低廉,若還經常要動用到維修服務將無利潤可言,所以低價電腦(當時僅以桌上型為低價目標)在設計時不是儘量減少機內擴充槽數目,就是完全棄捨擴充槽設計。過往一般的桌上型電腦多會有3、4個擴充槽,然低價電腦減至1、2個,或甚至降至零。

省擴充槽設計不僅可以省成本,另一方面可以避免使用者插置來歷不明的介面卡,電腦的硬體故障很大的來源是來自拆殼加裝介面卡,因此低價PC盡可能讓使用者以USB外接方式來擴充功效,至少在硬體不相容時可輕易解除狀況,減少後送到原售業者據點或到府的機會。

如今新興國家型PC也承襲此一理念,但除此之外新興國家型PC也開始注重筆記型的設計,如MIT Media Lab的XO-1,以及Intel的Classmate PC等,由於都設計給學童攜帶使用,頻繁外攜與孩童活潑個性,使PC受外力撞擊的機會大增,為了減少撞擊造成故障的機率,所以在機構(外殼)設計上都比過去更強調外力抗受性,以此減少後送維修、到府維修的機率。

3.因應運作環境不佳

「新興國家型PC」有時也稱「鄉用PC」,因為訴求的是縮短城鄉落差、數位落差,然而偏鄉的環境可能無法給PC夠理想的運作環境,對此必須在設計時多加考慮。關於此,目前以Intel的Community PC最具備此方面的設計,Community PC的設定是運用在印度的偏鄉地區,該地區可能沒有冷氣機之類的空調系統,所以PC必須在高溫下還能工作,Community PC是以攝氏40度仍可正常工作為設計目標。

此外,設想中印度偏鄉可能只在一般的搭棚內使用PC,所以風沙會很大,且蚊蟲較多,為了防止風沙、蚊蟲進入PC機內,所以Community PC在散熱風扇的出口加裝濾網。除Intel提出「抗高溫、抗沙塵」的設計外,其餘尚無其他業者對PC運作環境有更多的設計考量,至多是OLPC的鍵盤具有防水、防風沙的效果。不過,即便是Community PC也僅是以印度偏鄉一地為考慮,如果把俄羅斯的低溫、巴西的高濕度等環境也一併考慮,則可能還需要推出其他的因應設計機種,但目前似乎還未有業者提出更具體的方案。

慶幸的是,這些因應環境性的設計要求與工業電腦(Industry PC,簡稱:IPC,或稱:產業用電腦)相近,而台灣電子業者在IPC方面已有深厚著墨,未來在新興國家市場與偏鄉市場上也有較大的機會。

4.因應電力供應不穩

新興國家不僅交通基礎建設尚未完善,在電力供應的公用事業上也是類似,有時容易發生不預期的停電或電力品質不佳等問題。對此新興國家型PC在設計時也必須考慮這點,最先對此提出因應之道的是OLPC(XO-1),為了避免電力不足XO-1考慮過多種作法,甚至考慮過在PC鍵盤按下後也把部分的機械動能轉成發電,不過之後認為比較可行的作法是手搖式發電。

但是,在MIT Media Lab持續研發後找尋到手搖式發電更理想的作法,即手拉式發電,也有人稱為「溜溜球發電」,OLPC用的手拉式發電機是由美國SQUID Labs所研發,發電機的名稱為Potenco,據稱手拉1分鐘即可讓XO-1運作達10分鐘,即1:10的發電效益。相對的,XO-1過往的手搖設計要搖上10分鐘才能產生5瓦的電力,如此在XO-1以彩色模式下運作只能使用20分鐘,約為1:2的發現效益,由此可知「手拉」比「手搖」更理想,因而被MIT Media Lab換替。

另外Intel也在Community PC上提出因應,針對電力品質不佳、不穩的問題提出用不斷電系統(UPS)來改善,這是Community PC最初的主張,然而之後再仔細審視則會發現UPS將墊高PC的整體購置成本,因此退而求其次,有關電力品質不佳的問題暫且跳略,只單純就電力不穩的情形來因應,提出直接使用汽車電瓶來運作的方案,一旦遭遇到停電,可改用汽車電瓶來接手運作。

當然,汽車電瓶是直流電,與家用插座的交流電不同,如此PC的供電器、電源相關的連接器等都必須進行修改,才能使用電瓶式供電。類似的,VIA提出的pc-1計畫中,其桌上型機種也有改接電瓶運作的設計示範。

要補充的是,除了因應電力不佳、不穩外,PC本體的省電性也愈來愈重要,PC本體夠省電就可以減少手拉發電的時間、增長UPS或電瓶的使用時間,以省電性而言目前OLPC最為理想,全機僅在數瓦用電,相對的傳統PC單就處理器就超過10瓦電力,即便電力能穩定、源源不絕地供應,在溫室效應愈來愈烈的情況下,新興國家使用愈多台傳統耗電型PC,只會對全球生態更不利。

5.因應通訊服務不穩

每個國家的交通建設必然比電力建設健全,同時電力建設也必然比通訊建設健全,試想:

沒有道路該如何讓工程車到附近架設電線?沒有電能又怎能建立電信機房、申裝電話?既然新興國家的交通、電力建設都有其不足處,那麼通訊建設自然也不在話下。然而,新興國家型PC的訴求既然在縮短城鄉落差、數位落差,若PC不能連上Internet則功效大打折扣,所以是否在通訊服務不佳、不穩的因應設計也是個重點。關於此Intel在其Community PC中提及使用WiMAX通訊,但是這依然需要當地業者願意佈建WiMAX基地臺、開通WiMAX上網服務才有用,因此不禁令人懷疑有趁機推銷WiMAX技術的嫌疑。

不過,公眾上網的建設、服務不完備,確實難以從PC端進行彌補。但是通訊建設不佳的並非只在公眾端,用戶端也有類似情形,OLPC設想其使用地區並沒有Wi-Fi基地台(或稱無線接取點、無線存取點,Wireless Access Point,簡稱Wireless AP或AP),也可能缺乏工作群組(Workgroup)規模以上的有線網路及伺服器等建設,但每個學童間卻有透過電腦相互交換學習心得與討論的需求。

因此,OLPC在無線通訊上有特別的設計,OLPC與一般PC一樣具有Wi-Fi無線區域網路的通訊功效,但除了透過AP進行資訊收發外,也可不倚賴AP而達到OLPC間的相互通訊,此被稱為Mesh Network功效,可以讓OLPC間進行一對一、一對多的資訊傳遞。

若以更技術層面來論,此即是率先運用尚在草版階段的IEEE 802.11s標準,該標準是以IEEE 802.11的MAC層標準為基礎,以此建立出ad-hoc性質的網路,並定義1個架構及協定來支援廣播(Broadcast)、多播(Multicast)、單播(Unicast)的無線通訊。

附帶一提的,為了縮短知識落差,OLPC在機內預放了離線版的維基百科(Wikipedia)內容,此也有助於提升通訊離線時的PC運用價值。

6.因應資訊基礎不足

如前所述,只是把PC賣到新興國家,PC將遭遇到維修據點不足、電力供應不穩、通訊服務不穩、運作環境不佳等可能,但除此之外相關的資訊基礎建設也是不足的,除了PC之外可能沒有印表機,或印表機不能分享,或缺乏網路、缺乏伺服器等。

關於此也是以OLPC提供最佳的配套方案,MIT Media Lab正積極研發與OLPC搭配的學童用伺服器(或稱:校用伺服器,School Server),稱為XS Server,XS Server用來服務前端多個OLPC,且XS Server可能採行比OLPC更開放的作法,OLPC主要是要求台灣廣達電腦組裝、出貨,但XS Server除了由MIT Media Lab研發外,可能會直接在網路上公開其發展,並交由各國度的當地業者自行依據公佈的規格來建構出自己的XS Server。

除OLPC有配套建設的想法與行動外,目前沒有第2家業者有類似的作法,沒有針對新興國家設計的網路、網路設備、伺服器等,這些必須等到新興國家型PC達一定的銷量後才會有後續行動。若要勉強來說,前面提及的:四川國芯科技的GX-2桌上型PC,該款PC可直接運用電視充當PC顯示器,勉強可算是對資訊基礎建設更快速完整化有所助益。

7.因應操作親和不足

由於OLPC鎖定學童用,所以操作親和性有更多的額外設計,例如具備觸控螢幕、具備顯示器旁的方向鍵等,這些屬硬體性設計,軟體性設計方面也採行更親和的Sugar圖形使用者介面。有關這些目前其他業者的方案多少有顧及,Intel的學童用電腦:Classmate PC並沒有觸控螢幕,也沒有在軟體層面多下功夫,而是直接沿用各軟體業者的既有技術方案,事實上其他業者也多將設計心力專注於硬體上,軟體方面的因應改變並不多。

8.因應知識內容不足

如前項所述,OLPC預裝了離線版的維基百科內容,這也是目前多數新興國家型PC所缺乏的,AMD的PIC雖強調與當地ISP業者合作,但此為「PC硬體與Internet服務」的合作,如果能再加上「Wikipedia內容」可能會更加理想。附帶一提的是,華碩電腦的Eee PC 701預設有連至維基百科的捷徑圖示,但並未預裝其內容。

9.因應拆竊轉賣疑慮

最後,其實還有1項設計可以討論,即是安全防竊性設計,由於新興國家型PC多半低廉,因此銷售到新興國家後,有可能被有心人士轉賣而從中獲利,或直接拆拔機內的組件來銷往黑市,關於此OLPC與Microsoft的FlexGo都宣稱機內組件完全採行焊死作法,防止他人拆竊機內組件。

另外是防止機內資料遭竊,或被取得權限而被駭客利用,關於這些都需要有安全防護機制來因應,關於此Intel的Classmate PC內建TPM晶片,可進行各種安全辨識及驗證,Microsoft的FlexGo因為採儲值卡辨識的作法,因此預設就有安全防護。

此外OLPC也有自屬的Bitfrost技術,可以管控每1個應用程式能存取的硬體權限,例如A應用程式不能使用攝影機,B應用程式可以使用麥克風或觸控等,且在遭竊後只要申報該機序號停用,如此竊走OLPC的人在使用OLPC時,會定期偵測網路、連接網路進行確認,一旦確認為失竊機就會停止使用。

圖說:Intel提出的Community PC是針對印度偏鄉而設計的公用電腦,為了能防止沙塵、蚊蟲等從風扇口進入電腦機內,所以特別加裝了濾網於風扇口。(www.Intel.com)

圖說:大陸四川國芯科技(Sinomanic)推出的「天恩GX-2A電腦」,其本機售價僅人民幣998元,且可用一般電視機充當電腦顯示器,很適合偏鄉與消費力有限的地區。(www.Sinomanic.com)

圖說:OLPC(XO-1)最初提議以手搖方式提供充電,然之後改成以手拉方式提供充電,圖為最初揭露時的產品想像圖。(www.wiki.laptop.org)

圖說:OLPC(XO-1)顯示器中正以彩色模式在顯示維基百科(Wikpedia)的內容頁面。(www.wiki.laptop.org)

2007/10/12

你有發現 ubuntu 無法更改檔名嗎 nautilus scim

這問題網路上很多人在談,有人直接建議改用 gcin, 但是綜觀 gcin 與 scim 的設定會發現,其實現在的環境設定輸入法跟我以前了解的不一樣,請參考 /etc/X11/xinit/xinput.d/ 下的檔。我是更改 zh_TW 後重新登入即可。檔案可以參考下面的修改:


XIM=SCIM
XIM_PROGRAM=/usr/bin/scim
XIM_ARGS="-d"
GTK_IM_MODULE=scim
QT_IM_MODULE=scim
DEPENDS="scim,scim-gtk2-immodule|scim-chewing|scim-tables-zh|scim-qtimm"


另外,有人說 scim 的效率不好,建議以 scim-bridge 取代,您可以自行判斷是否需要如此做,若有安裝 scim-bridge, 可以將上面 XIM_PROGRAM 改以 /usr/bin/scim-bridge 取代即可。上面設定檔有用到 scim-qtimm,若您的程式有用到 qt 的輸入法有問題的話,可以安裝這個套件。

2007/10/09

桌面 Desktop

/usr/share/applications 定義編碼、顯示名稱、Comment(提示)、命令 path、Mime、icon 等屬性, 所以包括 /usr/share/applications/hildon-* 都需要注意。最後你會發現都與 /usr/lib/hildon-* 相關
這個目錄底下如 /usr/share/applications/hildon-marquee /usr/share/applications/inputmethods /usr/share/applications/kde /usr/share/applications/hildon-home /usr/share/applications/hildon-navigator /usr/share/applications/hildon-status-bar /usr/share/applications/hildon-control-panel /usr/share/applications/screensavers 等等都會影響「開始」功能表

/usr/share/desktop-directories/ 定義在「開始功能表」看到的目錄,例如 附屬應用程式 美工繪圖 辦公 遊戲 等等

$HOME/.osso 定義上面兩個,其中 hildon-desktop/home-layout.conf 定義 /usr/share/applications/hildon-home/mobile-basic-home.desktop

而 menus/applications.menu 定義 Hildon 的開始功能表項目(目錄),發現它不會捲動,因此項目太多就看不到。

$HOME/.osso/hildon-desktop/home-background.conf 如下:

[Hildon Home]
BackgroundImage=/usr/share/themes/plankton/images/qgn_plat_home_background.png
Red=0
Green=0
Blue=0
Mode=stretched

2007/10/03

Hildon for MID/ubuntu 2

Ubuntu 對 MID 的支援正加快腳步中,今天又有不同的做法啦!

首先,當我的系統升級後,其實已有內建 start-hildon, 不過這個檔要稍微修正,參考底下是我在用的內容,如此一來您就不必管我前一篇文章的作法,直接叫用下面的命令,Ubuntu 是放在 /usr/bin/start-hildon:


#!/bin/bash

Xephyr :1 -host-cursor -screen 800x480x16 -dpi 96 -ac &
sleep 1

PREFIX=/usr

THEME=${PREFIX}/share/themes/plankton
if [ -d ${PREFIX}/share/themes/mobilebasic ]; then
THEME=${PREFIX}/share/themes/mobilebasic
fi

export DISPLAY=:1

export GTK2_RC_FILES=${THEME}/gtk-2.0/gtkrc:${THEME}/gtk-2.0/gtkrc.maemo_af_desktop
export LANG=zh_TW.UTF-8

export $(dbus-launch --exit-with-session)

/usr/lib/libgconf2-4/gconfd-2 &

${PREFIX}/bin/matchbox-window-manager -display ${DISPLAY} \
-theme ${THEME}/matchbox/theme.xml \
-use_titlebar no \
-use_desktop_mode plain \
-use_lowlight no \
-use_cursor yes \
-use_super_modal yes &

${PREFIX}/lib/sapwood/sapwood-server &
${PREFIX}/bin/mas &

exec ${PREFIX}/bin/hildon-desktop



若跟 ubuntu 的比,主要修正的是語系 export LANG=zh_TW.UTF-8 及 mas 是放在 /usr/bin 而非 /usr/sbin

因為每個人的系統可能不一樣,我必須加裝某些套件才比較正常,底下供您參考:
galculator mousepad mobile-player empathy libmas0c2 mas-server mas-utils hildon-theme-layout-4 hildon-theme-plankton hildon-theme-tools

2007/09/28

Hildon for MID/ubuntu




這幾天在看 MID 的東西,相信有興趣的人找一找就會有不少相關的文章,我原本想照著 Hildon 教學做,後來不怎麼順,甘脆就把系統從 ubuntu 7.04 升級成 7.10, 做法很簡單:

  • 假設你的系統是 ubuntu
  • 修改 /etc/apt/sources.list, 將 feisty 改成 gutsy,底下是我在用的內容,僅供參考:
    deb http://debian.linux.org.tw/ubuntu/ gutsy main universe multiverse restricted
    deb-src http://debian.linux.org.tw/ubuntu/ gutsy restricted main multiverse universe

    deb http://debian.linux.org.tw/ubuntu/ gutsy-updates main restricted
    deb-src http://debian.linux.org.tw/ubuntu/ gutsy-updates main restricted

    deb http://debian.linux.org.tw/ubuntu/ gutsy-security main restricted
    deb-src http://debian.linux.org.tw/ubuntu/ gutsy-security restricted main multiverse universe #Added by software-properties
    deb http://debian.linux.org.tw/ubuntu/ gutsy-security universe
    deb http://debian.linux.org.tw/ubuntu/ gutsy-security multiverse

    確保檔案裡至少有那份教學文件裡的 deb http://archive.ubuntu.com/ubuntu/ gutsy main restricted universe
  • 以 root 或 sudo 執行 apt-get update; apt-get dist-upgrade
    這一步要做很久很久,尤其你的網路若不夠快的話
  • 安裝 ubuntu-mobile, xserver-xephyr
  • 以 root 或 sudo 執行 printf '#!/bin/sh\nexit 101' > /usr/sbin/policy-rc.d ; chmod 755 /usr/sbin/policy-rc.d
  • 切換使用者成 ume 或以 ume 登入 sudo adduser ume
  • 接下來要兩個視窗,一個執行 X(就是你的工作帳號即可), 一個以 ume 的身份執行 hildon,先說說前者:
    Xephyr :1 -host-cursor -screen 800x480x16 -dpi 96 -ac

  • 開另一視窗執行 su - ume
  • 以該身份建立一個檔 start-hildon 並執行它,如此一來會看到前一視窗開啟的 X 出現 Hildon 畫面, 可以 chmod +x start-hildon:

    #!/bin/bash

    PREFIX=/usr
    THEME=${PREFIX}/share/themes/plankton

    export DISPLAY=:1

    export GTK2_RC_FILES=${THEME}/gtk-2.0/gtkrc:${THEME}/gtk-2.0/gtkrc.maemo_af_desktop
    export LANG=en_GB.UTF-8
    export LC_ALL=en_GB.UTF-8
    export LANGUAGE=en_GB.UTF-8

    exec /usr/lib/libgconf2-4/gconfd-2 &

    exec ${PREFIX}/bin/matchbox-window-manager -display ${DISPLAY} \
    -theme ${THEME}/matchbox/theme.xml \
    -use_titlebar yes \
    -use_desktop_mode plain \
    -use_lowlight no \
    -use_cursor yes \
    -use_super_modal yes &

    exec ${PREFIX}/lib/sapwood/sapwood-server &

    exec ${PREFIX}/bin/hildon-desktop
  • 2007/09/07

    Install STLinux in Ubuntu 7.0.4

    這篇純粹寫給我自己看的,還在驗證當中:

    首先當然是下載 STLinux, 下載 http://ftp.stlinux.com/pub/stlinux/2.2/iso/STLinux-2.2-sh4.iso, 或下載 source packages http://ftp.stlinux.com/pub/stlinux/2.2/iso/STLinux-2.2-source.iso

    接下來要安裝 rpm, 然後要匯入 gpg_key(註:也可以先下載):
    rpm --import http://ftp.stlinux.com/pub/stlinux/2.2/STLinux/gpg_key

    rpm -Uhv --ignorearch --nodeps --force `/bin/ls *.rpm | sed -e /busybox-links/d`

    2007/08/30

    try new ubuntu 試試新的ubuntu

    Ubuntu 確實頗受歡迎,因此這邊介紹一下怎麼把玩 ubuntu

    首先,你必須先去下載 image file, 直接從這兒下載的話會有每日最新的,若從 ubuntu 首頁ubuntu taiwan 下載的話,會是正式釋出版,通常較穩定。

    接下來想當然爾,可以將之燒錄在光碟片中,這一點我不多說,燒完直接開機試用。
    還有一種方法,就是用qemu(還有 kvm 等虛擬技術,不在此討論)來模擬光碟開機,但是這並非本文要談的。

    另外一種方法是,將 iso 檔掛起來: mkdir -p iso; mount xxxx.iso iso -o loop,將 kernel, initrd, filesystem 複製到硬碟: cp -a iso/casper /,最後就是修改 /boot/grub/menu.lst, 底下僅供參考:


    title Ubuntu, cdrom gutsy
    root (hd0,3)
    kernel /casper/vmlinuz boot=casper root=UUID=0627a896-4ecc-43b6-8b15-f36221aa11c6 resume=/dev/sda3 ro quiet splash
    initrd /casper/initrd.gz
    quiet
    savedefault


    上面 root (hd0,3) 是因為我的硬碟分割是第四塊,最好請參考你現有 /boot/menu.lst 來修改,可以複製目前開機(通常是第一個title)的來用。而 kernel 選項中有幾點要說:
    1. root=UUID 那個每個人都會不一樣,不能照抄,以我的例子來說,也可以改成 root=/dev/sda4。這一點前面有說,我的硬碟使用的是第四個分割區,若您是第一個分割區的話,那就是 root=/dev/sda1
    2. boot=casper 這一個是不可或缺的,它會設定 /casper/initrd.gz 裡的init 讀進/casper/filesystem.squashfs 當 root filesystem,否則你將會又用回原來的分割區當 root filesystem
    3. resume=/dev/sda3 那項純粹是用來讓系統可以「休眠」用的,你可以省略,若你想休眠的話可以參考著用,/dev/sda3 必須是 swap 分割區,其實也可以指定檔案,不過不在此討論。

    這邊討論的方式其實可以讓你有機會自己修改這個 squashfs 檔,直到滿意再來燒成光碟或其他後續處理,請參考 KNOPPIX remaster

    2007/08/08

    雙方合作多版本 如何更新軟體 how to update your software version in multi partners

    我們在與 chip 廠商合作開發產品時,有個軟體更新流程提供參考:

    現狀:
    1. Chip 開發其 demo board 的軟體,使其接近 turn key。軟體版本以 Vo 代表
    2. 敝公司將修改 GUI 後的軟體 porting 上去,軟體版本以 Vo' 代表,也就是我們新增部份是 (Vo'-Vo)
    3. 當我們測試產品有非 GUI 相關 bug 時,會請 chip 商修改,其軟體版本以 Vn 代表,回到 步驟 1. 2. 以便產生 Vn'

    這邊提兩個 porting 的方式,其中 Vn 是 Chip 商提供的新版,Vo 是 Chip 商提供的舊版,而 Vn' 是我們 porting 欲Porting 至 Vn 後的新版,Vo' 是我們 Porting 至 Vo 後的舊版

    1. Vn' = Vn + (Vo' - Vo) : 將兩個舊版比對差異後 porting 到 Vn

    2. Vn' = (Vn - Vo) + Vo' : 將 Chip 商新舊版比對差異後 Porting 到 Vo'
    以上兩個作法乍看之下效果是相同的,但是我這邊得花點時間來檢視其間的差異:

    1. 當初期自行修改的 code 較少時,Vo'-Vo 的值會較小,看起來前者較優。相反的,初期 Vn - Vo 的值應該較大,不利於 Porting 到 Vo'。因此可以判定說:當 Chip 提供的 code 變異性很大時或我們新創的 GUI 方面的 code 較少時,採用前者較有利

    2. 但是通常上面的情形比較不會發生,原因是 Chip 商提供的 code 通常一開始就已經相對龐大,或者說在後期通常只是針對 bug 在修正。在此情形下,若我們發現 (Vo' - Vo) > (Vn - Vo) 時,應該採後面的作法。

    3. 另外一種考量其實無關兩個差值,我只想說,只有採行第二種作法才是正確的方式。
      1. 讓我們看看前者,當採用 (Vo'-Vo) 時,會給我們一種錯覺,認為這樣的差值我們最熟,最容易控制,加上當初就是這樣開發自己的 code for GUI,採用前者的作法似乎較受歡迎。

      2. 但是正如我說這是錯覺,其原因是你把假設建立在 Vn 一定是對的上面。若 Vo --> Vn 的發行是因為要修正 bug, 那很顯然 Vo 已經不對,而且也不保證 Vn - Vo 真的只修改到 bug 的部份。會不會有邊際效應?或者說會不會因為團隊開發使得 Vn 跟 Vo 做的變動你根本無法預期?

      3. 這邊要說的其實是,Vo' 是我們最熟的部份,也是我們知道 bug 在哪的狀態,那麼為何不是透過 (Vn-Vo) 來挑出 Chip 商到底做了哪些修正?再將這些修正挑選適合的移植到 Vo' 上?也就是說,其實我們得修正上面後者的公式為:

        Vn' = (Vn - Vo)' + Vo'

        值得注意的是,第一種作法是無法這樣修正的。


    2007/08/03

    Iso639 language codes


    ISO 639-2 CodeISO 639-1 Code English name of Language  ISO 639-2 Code ISO 639-1 Code English name of Language   ISO 639-2 Code ISO 639-1 Code English name of Language
    aar aa Afar
    arp   Arapaho
    ber   Berber (Other)
    abk ab Abkhazian
    art   Artificial (Other)
    bho   Bhojpuri
    ace   Achinese
    arw   Arawak
    bih bh Bihari
    ach   Acoli
    asm as Assamese
    bik   Bikol
    ada   Adangme
    ast   Asturian; Bable
    bin   Bini; Edo
    ady   Adyghe; Adygei
    ath   Athapascan languages
    bis bi Bislama
    afa   Afro-Asiatic (Other)
    aus   Australian languages
    bla   Siksika
    afh   Afrihili
    ava av Avaric
    bnt   Bantu (Other)
    afr af Afrikaans
    ave ae Avestan
    tib/bod bo Tibetan
    ain   Ainu
    awa   Awadhi
    bos bs Bosnian
    aka ak Akan
    aym ay Aymara
    bra   Braj
    akk   Akkadian
    aze az Azerbaijani
    bre br Breton
    alb/sqi sq Albanian
    bad   Banda languages
    btk   Batak languages
    ale   Aleut
    bai   Bamileke languages
    bua   Buriat
    alg   Algonquian languages
    bak ba Bashkir
    bug   Buginese
    alt   Southern Altai
    bal   Baluchi
    bul bg Bulgarian
    amh am Amharic
    bam bm Bambara
    bur/mya my Burmese
    ang   English, Old (ca.450-1100)
    ban   Balinese
    byn   Blin; Bilin
    anp   Angika
    baq/eus eu Basque
    cad   Caddo
    apa   Apache languages
    bas   Basa
    cai   Central American Indian (Other)
    ara ar Arabic
    bat   Baltic (Other)
    car   Galibi Carib
    arc   Official Aramaic (700-300 BCE); Imperial Aramaic (700-300 BCE)
    bej   Beja
    cat ca Catalan; Valencian
    arg an Aragonese
    bel be Belarusian
    cau   Caucasian (Other)
    arm/hye hy Armenian
    bem   Bemba
    ceb   Cebuano
    arn   Mapudungun; Mapuche   ben bn Bengali   cel   Celtic (Other)
    cze/ces cs Czech
    csb   Kashubian
    gre/ell el Greek, Modern (1453-)
    cha ch Chamorro
    cus   Cushitic (Other)
    elx   Elamite
    chb   Chibcha
    wel/cym cy Welsh
    eng en English
    che ce Chechen
    cze/ces cs Czech
    enm   English, Middle (1100-1500)
    chg   Chagatai
    dak   Dakota
    epo eo Esperanto
    chi/zho zh Chinese
    dan da Danish
    est et Estonian
    chk   Chuukese
    dar   Dargwa
    baq/eus eu Basque
    chm   Mari
    day   Land Dayak languages
    ewe ee Ewe
    chn   Chinook jargon
    del   Delaware
    ewo   Ewondo
    cho   Choctaw
    den   Slave (Athapascan)
    fan   Fang
    chp   Chipewyan
    ger/deu de German
    fao fo Faroese
    chr   Cherokee
    dgr   Dogrib
    per/fas fa Persian
    chu cu Church Slavic; Old Slavonic; Church Slavonic; Old Bulgarian; Old Church Slavonic
    din   Dinka
    fat   Fanti
    chv cv Chuvash
    div dv Divehi; Dhivehi; Maldivian
    fij fj Fijian
    chy   Cheyenne
    doi   Dogri
    fil   Filipino; Pilipino
    cmc   Chamic languages
    dra   Dravidian (Other)
    fin fi Finnish
    cop   Coptic
    dsb   Lower Sorbian
    fiu   Finno-Ugrian (Other)
    cor kw Cornish
    dua   Duala
    fon   Fon
    cos co Corsican
    dum   Dutch, Middle (ca.1050-1350)
    fre/fra fr French
    cpe   Creoles and pidgins, English based (Other)
    dut/nld nl Dutch; Flemish
    fre/fra fr French
    cpf   Creoles and pidgins, French-based (Other)
    dyu   Dyula
    frm   French, Middle (ca.1400-1600)
    cpp   Creoles and pidgins, Portuguese-based (Other)
    dzo dz Dzongkha
    fro   French, Old (842-ca.1400)
    cre cr Cree
    efi   Efik
    frr   Northern Frisian
    crh   Crimean Tatar; Crimean Turkish
    egy   Egyptian (Ancient)
    frs   Eastern Frisian
    crp   Creoles and pidgins (Other)   eka   Ekajuk   fry fy Western Frisian
    ful ff Fulah
    gwi   Gwich'in
    ile ie Interlingue
    fur   Friulian
    hai   Haida
    ilo   Iloko
    gaa   Ga
    hat ht Haitian; Haitian Creole
    ina ia Interlingua (International Auxiliary Language Association)
    gay   Gayo
    hau ha Hausa
    inc   Indic (Other)
    gba   Gbaya
    haw   Hawaiian
    ind id Indonesian
    gem   Germanic (Other)
    heb he Hebrew
    ine   Indo-European (Other)
    geo/kat ka Georgian
    her hz Herero
    inh   Ingush
    ger/deu de German
    hil   Hiligaynon
    ipk ik Inupiaq
    gez   Geez
    him   Himachali
    ira   Iranian (Other)
    gil   Gilbertese
    hin hi Hindi
    iro   Iroquoian languages
    gla gd Gaelic; Scottish Gaelic
    hit   Hittite
    ice/isl is Icelandic
    gle ga Irish
    hmn   Hmong
    ita it Italian
    glg gl Galician
    hmo ho Hiri Motu
    jav jv Javanese
    glv gv Manx
    scr/hrv hr Croatian
    jbo   Lojban
    gmh   German, Middle High (ca.1050-1500)
    hsb   Upper Sorbian
    jpn ja Japanese
    goh   German, Old High (ca.750-1050)
    hun hu Hungarian
    jpr   Judeo-Persian
    gon   Gondi
    hup   Hupa
    jrb   Judeo-Arabic
    gor   Gorontalo
    arm/hye hy Armenian
    kaa   Kara-Kalpak
    got   Gothic
    iba   Iban
    kab   Kabyle
    grb   Grebo
    ibo ig Igbo
    kac   Kachin; Jingpho
    grc   Greek, Ancient (to 1453)
    ice/isl is Icelandic
    kal kl Kalaallisut; Greenlandic
    gre/ell el Greek, Modern (1453-)
    ido io Ido
    kam   Kamba
    grn gn Guarani
    iii ii Sichuan Yi
    kan kn Kannada
    gsw   Swiss German; Alemannic
    ijo   Ijo languages
    kar   Karen languages
    guj gu Gujarati
    iku iu Inuktitut
    kas ks Kashmiri
    geo/kat ka Georgian
    kur ku Kurdish
    mah mh Marshallese
    kau kr Kanuri
    kut   Kutenai
    mai   Maithili
    kaw   Kawi
    lad   Ladino
    mak   Makasar
    kaz kk Kazakh
    lah   Lahnda
    mal ml Malayalam
    kbd   Kabardian
    lam   Lamba
    man   Mandingo
    kha   Khasi
    lao lo Lao
    mao/mri mi Maori
    khi   Khoisan (Other)
    lat la Latin
    map   Austronesian (Other)
    khm km Central Khmer
    lav lv Latvian
    mar mr Marathi
    kho   Khotanese
    lez   Lezghian
    mas   Masai
    kik ki Kikuyu; Gikuyu
    lim li Limburgan; Limburger; Limburgish
    may/msa ms Malay
    kin rw Kinyarwanda
    lin ln Lingala
    mdf   Moksha
    kir ky Kirghiz; Kyrgyz
    lit lt Lithuanian
    mdr   Mandar
    kmb   Kimbundu
    lol   Mongo
    men   Mende
    kok   Konkani
    loz   Lozi
    mga   Irish, Middle (900-1200)
    kom kv Komi
    ltz lb Luxembourgish; Letzeburgesch
    mic   Mi'kmaq; Micmac
    kon kg Kongo
    lua   Luba-Lulua
    min   Minangkabau
    kor ko Korean
    lub lu Luba-Katanga
    mis   Uncoded languages
    kos   Kosraean
    lug lg Ganda
    mac/mkd mk Macedonian
    kpe   Kpelle
    lui   Luiseno
    mkh   Mon-Khmer (Other)
    krc   Karachay-Balkar
    lun   Lunda
    mlg mg Malagasy
    krl   Karelian
    luo   Luo (Kenya and Tanzania)
    mlt mt Maltese
    kro   Kru languages
    lus   Lushai
    mnc   Manchu
    kru   Kurukh
    mac/mkd mk Macedonian
    mni   Manipuri
    kua kj Kuanyama; Kwanyama
    mad   Madurese
    mno   Manobo languages
    kum   Kumyk   mag   Magahi   moh   Mohawk
    mol mo Moldavian
    nic   Niger-Kordofanian (Other)
    paa   Papuan (Other)
    mon mn Mongolian
    niu   Niuean
    pag   Pangasinan
    mos   Mossi
    dut/nld nl Dutch; Flemish
    pal   Pahlavi
    mao/mri mi Maori
    nno nn Norwegian Nynorsk; Nynorsk, Norwegian
    pam   Pampanga
    may/msa ms Malay
    nob nb Bokmål, Norwegian; Norwegian Bokmål
    pan pa Panjabi; Punjabi
    mul   Multiple languages
    nog   Nogai
    pap   Papiamento
    mun   Munda languages
    non   Norse, Old
    pau   Palauan
    mus   Creek
    nor no Norwegian
    peo   Persian, Old (ca.600-400 B.C.)
    mwl   Mirandese
    nqo   N'Ko
    per/fas fa Persian
    mwr   Marwari
    nso   Pedi; Sepedi; Northern Sotho
    phi   Philippine (Other)
    bur/mya my Burmese
    nub   Nubian languages
    phn   Phoenician
    myn   Mayan languages
    nwc   Classical Newari; Old Newari; Classical Nepal Bhasa
    pli pi Pali
    myv   Erzya
    nya ny Chichewa; Chewa; Nyanja
    pol pl Polish
    nah   Nahuatl languages
    nym   Nyamwezi
    pon   Pohnpeian
    nai   North American Indian
    nyn   Nyankole
    por pt Portuguese
    nap   Neapolitan
    nyo   Nyoro
    pra   Prakrit languages
    nau na Nauru
    nzi   Nzima
    pro   Provençal, Old (to 1500)
    nav nv Navajo; Navaho
    oci oc Occitan (post 1500); Provençal
    pus ps Pushto
    nbl nr Ndebele, South; South Ndebele
    oji oj Ojibwa
    qaa-qtz   Reserved for local use
    nde nd Ndebele, North; North Ndebele
    ori or Oriya
    que qu Quechua
    ndo ng Ndonga
    orm om Oromo
    raj   Rajasthani
    nds   Low German; Low Saxon; German, Low; Saxon, Low
    osa   Osage
    rap   Rapanui
    nep ne Nepali
    oss os Ossetian; Ossetic
    rar   Rarotongan; Cook Islands Maori
    new   Nepal Bhasa; Newari
    ota   Turkish, Ottoman (1500-1928)
    roa   Romance (Other)
    nia   Nias   oto   Otomian languages   roh rm Romansh
    rom   Romany
    sin si Sinhala; Sinhalese
    scc/srp sr Serbian
    rum/ron ro Romanian
    sio   Siouan languages
    srr   Serer
    rum/ron ro Romanian
    sit   Sino-Tibetan (Other)
    ssa   Nilo-Saharan (Other)
    run rn Rundi
    sla   Slavic (Other)
    ssw ss Swati
    rup   Aromanian; Arumanian; Macedo-Romanian
    slo/slk sk Slovak
    suk   Sukuma
    rus ru Russian
    slo/slk sk Slovak
    sun su Sundanese
    sad   Sandawe
    slv sl Slovenian
    sus   Susu
    sag sg Sango
    sma   Southern Sami
    sux   Sumerian
    sah   Yakut
    sme se Northern Sami
    swa sw Swahili
    sai   South American Indian (Other)
    smi   Sami languages (Other)
    swe sv Swedish
    sal   Salishan languages
    smj   Lule Sami
    syc   Classical Syriac
    sam   Samaritan Aramaic
    smn   Inari Sami
    syr   Syriac
    san sa Sanskrit
    smo sm Samoan
    tah ty Tahitian
    sas   Sasak
    sms   Skolt Sami
    tai   Tai (Other)
    sat   Santali
    sna sn Shona
    tam ta Tamil
    scc/srp sr Serbian
    snd sd Sindhi
    tat tt Tatar
    scn   Sicilian
    snk   Soninke
    tel te Telugu
    sco   Scots
    sog   Sogdian
    tem   Timne
    scr/hrv hr Croatian
    som so Somali
    ter   Tereno
    sel   Selkup
    son   Songhai languages
    tet   Tetum
    sem   Semitic (Other)
    sot st Sotho, Southern
    tgk tg Tajik
    sga   Irish, Old (to 900)
    spa es Spanish; Castilian
    tgl tl Tagalog
    sgn   Sign Languages
    alb/sqi sq Albanian
    tha th Thai
    shn   Shan
    srd sc Sardinian
    tib/bod bo Tibetan
    sid   Sidamo   srn   Sranan Tongo   tig   Tigre
    tir ti Tigrinya
    tyv   Tuvinian
    wen   Sorbian languages
    tiv   Tiv
    udm   Udmurt
    wln wa Walloon
    tkl   Tokelau
    uga   Ugaritic
    wol wo Wolof
    tlh   Klingon; tlhIngan-Hol
    uig ug Uighur; Uyghur
    xal   Kalmyk; Oirat
    tli   Tlingit
    ukr uk Ukrainian
    xho xh Xhosa
    tmh   Tamashek
    umb   Umbundu
    yao   Yao
    tog   Tonga (Nyasa)
    und   Undetermined
    yap   Yapese
    ton to Tonga (Tonga Islands)
    urd ur Urdu
    yid yi Yiddish
    tpi   Tok Pisin
    uzb uz Uzbek
    yor yo Yoruba
    tsi   Tsimshian
    vai   Vai
    ypk   Yupik languages
    tsn tn Tswana
    ven ve Venda
    zap   Zapotec
    tso ts Tsonga
    vie vi Vietnamese
    zen   Zenaga
    tuk tk Turkmen
    vol vo Volapük
    zha za Zhuang; Chuang
    tum   Tumbuka
    vot   Votic
    chi/zho zh Chinese
    tup   Tupi languages
    wak   Wakashan languages
    znd   Zande languages
    tur tr Turkish
    wal   Walamo
    zul zu Zulu
    tut   Altaic (Other)
    war   Waray
    zun   Zuni
    tvl   Tuvalu
    was   Washo
    zxx   No linguistic content
    twi tw Twi   wel/cym cy Welsh   zza   Zaza; Dimili; Dimli; Kirdki; Kirmanjki; Zazaki