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

 


























2007/07/03

如何冷卻你的 CPU? CONFIG_NO_HZ

今天試著採用 kernel 2.6.21 新的選項 CONFIG_NO_HZ, 這個選項定義在 Processor Type 中,它的說明如下:
CONFIG_NO_HZ:
This option enables a tickless system: timer interrupts will
only trigger on an as-needed basis both when the system is
busy and when the system is idle.

CNET 這篇文章說的好,請自行參閱。

用了之後,我的 NB 風扇馬上停止,CPU 也確實冷下來,目前沒量測其差異有多大,等一下來測我的 NB 看電池是否可以待機更久點?有興趣的人不防試試。目前我是用 2.6.21.5

2007/07/02

電視數位化認知 Digital TV in home 2

.電腦與家電結合
.更快速與方便地獲取所需資訊
.全數位化家居生活
.透過指間輕鬆指揮家電
.輕鬆傳輸分享數位內容
.更自由的溝通

2007/06/14

電視數位化重要變革 Digital TV in home


  • 網路因素-高重要性

    • 網路連線品質
    • 上網方便性
    • 網路連線頻寬
    • 網路連線費率
    • 維修服務



  • 網路因素 - 普通重要性

    • 寬頻網路服務業者
    • 促銷方案



  • 應用情境 - 高重要性

    • 在外面監看家中各角落
    • 在家中監看家中各角落
    • 在家中任何角落均可取得所需資訊
    • 在電視上播放/編輯電腦中的多媒體檔案


  • 應用情境 - 普通

    • 使用電視與好友傳即時通
    • 在外面看家中電視節目
    • 在電視上玩網路連線遊戲



2007/06/13

如何正確使用 chroot? with mount --bind

在開發嵌入式系統時,難免會用 chroot 命令,有時會遇到些莫名其妙的問題,我也不多說,總之,若你覺得你的 chroot 怪怪的,或者很想讓 chroot 過的環境跟原來的一致,一般直覺作法是進 chroot 後看是要用 mount 的還是要 cp 的,或者是在 chroot 之前先 cp 或 link 好。

但是上面的作法常常也會產生問題,比較好的作法是用 mount --bind 的方式讓你要的兩個環境使用相同的檔案,請見 mount bind 或 使用 mount bind 的注意事項,或 mount bind 心得分享

2007/06/05

如何面對口試? Face to your boss

底下是給朋友考研究所口試的建議,當您面對老闆時也可以參考

面試時,通常要留給來賓多點時間發問
因此關於你自己,主題在於工作經歷上。
簡單,甚至條列式,列出工作經歷,每個工作經歷「學到」的東西
若能把每個工作經歷編成一個故事,一個促使你想繼續讀研究所的故事最好
我的意思是,譬如,你的研究計畫寫的是嵌入式的東西,那為何你會對它感興趣?
我說的故事並非真正的故事,是要讓你的工作經歷串起你的人生的畫面,也就是讓職涯人生的畫面是連續的
並提出一個研究計畫,讓人覺得,若沒有讀研究所,將無法繼續你的工作生涯
若是這樣著想,或許你可以用抽象的畫面來表述你的工作經歷
儘量簡短,讓主考官有時間問問題
然後.....若主考官把時間又留給你,你就可以把主題導入你的研究計畫裡
這非常重要,不要讓場面冷下來,讓研究計畫停格
要讓人覺得你是有準備的,整個口試是連續性的進行
個人介紹則可以完全省略,譬如什麼我的家庭、學歷什麼的
最後,也最重要的,自信。自信不止是口氣、態度,或者是笑容,而是真的要相信自己就是對的那個人。

2007/06/04

有線無線共舞 Work with LAN and WLAN under WinXP

以我的網路環境為例,有線是公司線路,無線是 ADSL 線路。要有線無線共舞,則必須修改 routing table, 底下您只需要做最後一步,也就是第四步即可,前三步僅提供您驗證環境與我的差異性。若您有看到最後的話,第三步通常是在開機時已經同時啟動有線無線,那麼也可以透過改變 default gateway 的方式來達到目的,請看到最後面即可知道作法。

一、只有 LAN 的狀態

C:\>ipconfig

Windows IP Configuration


Ethernet adapter 區域連線:

Connection-specific DNS Suffix . : liteon.com
IP Address. . . . . . . . . . . . : 10.1.198.242
Subnet Mask . . . . . . . . . . . : 255.255.254.0
Default Gateway . . . . . . . . . : 10.1.199.254

C:\>route print
===========================================================================
Interface List
0x1 ........................... MS TCP Loopback interface
0x40002 ...00 15 c5 0b 66 fd ...... Broadcom NetXtreme 57xx Gigabit Controller -
Packet Scheduler Miniport
===========================================================================
Active Routes:
Network Destination Netmask Gateway Interface Metric
0.0.0.0 0.0.0.0 10.1.199.254 10.1.198.242 20
10.1.198.0 255.255.254.0 10.1.198.242 10.1.198.242 20
10.1.198.242 255.255.255.255 127.0.0.1 127.0.0.1 20
10.255.255.255 255.255.255.255 10.1.198.242 10.1.198.242 20
127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1
224.0.0.0 240.0.0.0 10.1.198.242 10.1.198.242 20
255.255.255.255 255.255.255.255 10.1.198.242 10.1.198.242 1
Default Gateway: 10.1.199.254
===========================================================================

二、只有無線網路的狀態

C:\>ipconfig

Windows IP Configuration


Ethernet adapter 無線網路:

Connection-specific DNS Suffix . : lan
IP Address. . . . . . . . . . . . : 192.168.123.139
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . : 192.168.123.1

C:\>route print
===========================================================================
Interface List
0x1 ........................... MS TCP Loopback interface
0x50002 ...00 16 6f 5f c2 99 ...... Intel(R) PRO/Wireless 2915ABG Network Connec
tion - Packet Scheduler Miniport
===========================================================================
Active Routes:
Network Destination Netmask Gateway Interface Metric
0.0.0.0 0.0.0.0 192.168.123.1 192.168.123.139 25
127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1
192.168.123.0 255.255.255.0 192.168.123.139 192.168.123.139 25
192.168.123.139 255.255.255.255 127.0.0.1 127.0.0.1 25
192.168.123.255 255.255.255.255 192.168.123.139 192.168.123.139 25
224.0.0.0 240.0.0.0 192.168.123.139 192.168.123.139 25
255.255.255.255 255.255.255.255 192.168.123.139 192.168.123.139 1
Default Gateway: 192.168.123.1
===========================================================================

三、同時有線與無線並存的狀態

C:\>ipconfig

Windows IP Configuration


Ethernet adapter 區域連線:

Connection-specific DNS Suffix . : liteon.com
IP Address. . . . . . . . . . . . : 10.1.198.28
Subnet Mask . . . . . . . . . . . : 255.255.254.0
Default Gateway . . . . . . . . . : 10.1.199.254

Ethernet adapter 無線網路:

Connection-specific DNS Suffix . : lan
IP Address. . . . . . . . . . . . : 192.168.123.139
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . : 192.168.123.1

C:\>route print
===========================================================================
Interface List
0x1 ........................... MS TCP Loopback interface
0x60002 ...00 15 c5 0b 66 fd ...... Broadcom NetXtreme 57xx Gigabit Controller -
Packet Scheduler Miniport
0x60003 ...00 16 6f 5f c2 99 ...... Intel(R) PRO/Wireless 2915ABG Network Connec
tion - Packet Scheduler Miniport
===========================================================================
Active Routes:
Network Destination Netmask Gateway Interface Metric
0.0.0.0 0.0.0.0 10.1.199.254 10.1.198.28 20
0.0.0.0 0.0.0.0 192.168.123.1 192.168.123.139 25
10.1.198.0 255.255.254.0 10.1.198.28 10.1.198.28 20
10.1.198.28 255.255.255.255 127.0.0.1 127.0.0.1 20
10.255.255.255 255.255.255.255 10.1.198.28 10.1.198.28 20
127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1
192.168.123.0 255.255.255.0 192.168.123.139 192.168.123.139 25
192.168.123.139 255.255.255.255 127.0.0.1 127.0.0.1 25
192.168.123.255 255.255.255.255 192.168.123.139 192.168.123.139 25
224.0.0.0 240.0.0.0 10.1.198.28 10.1.198.28 20
224.0.0.0 240.0.0.0 192.168.123.139 192.168.123.139 25
255.255.255.255 255.255.255.255 10.1.198.28 10.1.198.28 1
255.255.255.255 255.255.255.255 192.168.123.139 192.168.123.139 1
Default Gateway: 10.1.199.254
===========================================================================

四、先啟動有線,同時命令如下:

route delete 0.0.0.0
route add 10.1.0.0 mask 255.255.0.0 10.1.198.254

(註:上面 ipconfig 有線部份有提到 gateway)

之後再啟動無線後,狀態如下:

C:\>route print
===========================================================================
Interface List
0x1 ........................... MS TCP Loopback interface
0xa0002 ...00 15 c5 0b 66 fd ...... Broadcom NetXtreme 57xx Gigabit Controller -
Packet Scheduler Miniport
0xa0003 ...00 16 6f 5f c2 99 ...... Intel(R) PRO/Wireless 2915ABG Network Connec
tion - Packet Scheduler Miniport
===========================================================================
Active Routes:
Network Destination Netmask Gateway Interface Metric
0.0.0.0 0.0.0.0 192.168.123.1 192.168.123.139 25
10.1.0.0 255.255.0.0 10.1.199.254 10.1.198.28 1
10.1.198.0 255.255.254.0 10.1.198.28 10.1.198.28 20
10.1.198.28 255.255.255.255 127.0.0.1 127.0.0.1 20
10.255.255.255 255.255.255.255 10.1.198.28 10.1.198.28 20
127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1
192.168.123.0 255.255.255.0 192.168.123.139 192.168.123.139 25
192.168.123.139 255.255.255.255 127.0.0.1 127.0.0.1 25
192.168.123.255 255.255.255.255 192.168.123.139 192.168.123.139 25
224.0.0.0 240.0.0.0 10.1.198.28 10.1.198.28 20
224.0.0.0 240.0.0.0 192.168.123.139 192.168.123.139 25
255.255.255.255 255.255.255.255 10.1.198.28 10.1.198.28 1
255.255.255.255 255.255.255.255 192.168.123.139 192.168.123.139 1
Default Gateway: 192.168.123.1
===========================================================================

注意到上面的 default gateway 已經改變成無線出去,而公司網路則透過 10.1.199.254 出去。

若要在開機時,已經同時啟動有線無線的情況下,也就是在第三點的狀況下,可以透過移除 0.0.0.0 之後再加入 0.0.0.0 的方式,也就是說,M$ 作業系統的 routing table 裡的 default gateway 就是指這個,因此如下語法可以加在第三點後面,就等於第四點:

route delete 0.0.0.0
route add 0.0.0.0 mask 0.0.0.0 192.168.123.1

2007/05/30

Aspect ratio

最近搞得比較清楚的是 aspect ratio, 幾個相關名詞理解如下:

  • Fill, Zoom: 會把 video stream 擴展至填滿全螢幕,會失去原比例
  • Letter box: 按比例,16:9 stream 調整至的符合 4:3 螢幕的寬,因此會出現上下黑矩形,與此相反的是 Pillar boxing,將 4:3 stream 調整至符合 16:9 的高
  • Pan & Scan: 會把畫面調整至「較重要」的部份,不調整比例,也就是不放大或縮小,而是調整輸出畫面的位置於畫面較重要的部份,有時簡單實作的話會跟「Center cut」相同。與此相反的叫 tilt and scan。
  • Center Cut:簡單的將 16:9 stream 調整高度至符合 4:3 螢幕,並將畫面置中,以致於將左右切掉。

還有其他很多種名詞,等有進一步了解再來註記

2007/05/23

GeeXboX 與 X geexbox-xorg howto

GeeXboX 有個 Xorg 的分支,主要是用來支援 HDTV 的,wiki 上沒說明,這邊先補充。底下請照做,看不懂就留言發問:


  • hg clone http://hg.geexbox.org/geexbox-xorg geexbox-xorg
  • cd geexbox-xorg
  • make


將來若想同步 source code, 請下


  • cd geexbox-xorg
  • hg pull
  • hg update


上面後兩個命令可以合併成 hg pull -u -v。至於 hg 是哪個套件?是 mercurial,請自行至 GeeXboX 的 wiki 上查。

另外,也可以直接下載 20070519 發行的 generator 來用。

2007/05/16

產品遙控器操作邏輯之我見 remote controller hotkey

有個爭議點是,在設計產品的 GUI 時,假設有個相同的選項畫面有二個方式讓它出現,一個是直接從遙控器按鍵來,也就是所謂的熱鍵, hotkey。另一個是從選單來的,這二個方式有人說應該讓 Hotkey 出現的跟選單出現時,操作方式一致,以前在實作 DVD 產品時就採用這種方式。當時我就提出我的看法,並不被客戶接受,我的看法是:

熱鍵產生的應該視為單獨的選單。也就是它並沒有「上一層」的概念在。

之所以我覺得不應該把兩個不同操作模式所造成的同一畫面看成同一件事,是因為這件事不應該從 RD 的角度來看待。當使用者拿 RD 做的產品來操作的時候會認為:Hotkey 按出來的畫面,它是沒有上一層的,因此會習慣於「回上一層」消失。而由 Menu 按出來的,在操作的感覺上會傾向於在操作的預期上「回上一層」就應該回到它來的地方,也就是它的上一層 menu....

也就是說,我的論點是這樣的議題起因於二類不同的操作習慣而產生的,有些人習慣用遙控器的 hotkey, 這些人或許是年輕一族,會期待他要的功能愈快出現愈好,甚至於要求「One click」;另一些人根本就懶得看遙控器,它只希望所有功能都在 Menu 上找得到,而對這類人的設計就是選單的層數要愈少愈好,功能愈齊全愈好。

我的意思是,按 Hotkey 與按 menu 原本就是針對不同的習慣設計的,所以要看成兩個不同的「東西」。不能以 RD 或測試者的眼光來看這件事。

另一個狀況是當使用者按 Menu 進入到 Hotkey 也有的畫面時,若它在該畫面又按一次該畫面所屬的 Hotkey, 在我看來應該畫面沒變,但是效果相當於使用者按 Hotkey 進入該畫面,也就是此時應該以 Hotkey 的效果來處理。

照片如何鏤空 using Gimp to alpha blend

要怎樣把圖檔的某部份鏤空?所謂的鏤空通常是為了在做 OSD 顯示或者在美工圖層加疊的時候有空。

通常我們會用繪圖軟體把圖先畫好,然後以 gimp 編輯,把要鏤空的部份圈起來按 Ctrl-X(剪掉)即可。

另外鏤空跟圖形格式有關,一般建議存成 .png 格式,或者以編輯軟體預設的格式來存也不錯。 請注意 BMP, JPG 似乎都不支援鏤空。

2007/05/15

一對多 client and server design

有朋友在問要怎麼寫 client/server 架構的程式。

其實這是基本功夫,參考資料與書目一堆我就不多此一舉再寫,底下稍微描述一下作法。大抵可以分成兩段來寫,一段是彼此建立信任機制,一段是控制。

建立信任機制可以參考 UPnP 的作法,可以讓你達到免設定,但是這邊講的信任機制您還得再加以思考一下,怎麼確認是受信者而非駭客?這牽涉眾多,UPnP 也有類似的機制。對 UPnP 請參考前面關於 GeeXboX 或 ushare,djmount 的文章。

一旦你收集了彼此的資訊,那就可以省略設定步驟,否則這一步也可以是提供設定畫面。第二段就是控制,所謂控制就要彼此都有共通的語言,也就是要先建立通訊協定,我建議較簡單的是透過 HTTP 的方式。例如你可以用 busybox 來架設 web server, 或是編進 lighttpd 進行加密通訊。其實若你已經會寫 TCP/IP 的程式,要寫 client/server 的話就容易了,這一段是可以自己寫,而我之所以建議採 HTTP 的方式也只是利用人家定義好的協定而已,本質上跟自己寫通訊協定是一樣的。若採用 http 的話就容易多了,不止已有現成的,連 source code 都有,而且 client/server 端都有很多參考資料。有了通訊協定(就算是自己寫程式也要先有它)之後,再在這層通訊協定上建立專屬的控制命令與傳回值,也就是所謂的協調方式,這一點若是用 HTTP 的話,可以想成是在寫 CGI 即可。

2007/05/14

diff 與 patch

使用 diff 來產生新舊兩個 source tree(source code directory tree) 的差異性列表有助於比較前後的差異(修改、增減),另外還可以提供較精簡的源碼更新,後者就需要 patch 這支工具配合。

我習慣用下面的命令來產生 diff 檔:
diff -ruN DirA DirB > xx.diff

上述產生的 xx.diff 若是由其他人拿到要更新(同步)源碼的話, 只需要切換到產生 diff 的同目錄(可以看到 DirA 的那一層)再下: patch -p0 < xx.diff 即可。或者像我的話比較喜歡切換到 DirA 目錄下 patch -p1 < ../xx.diff 這樣較不會有混淆的狀況。

至於 diff 與 patch 的選項請自行參考說明文件。若是在 M$ OS 下,建議安裝 cygwin,它可以說是讓你在 M$ OS 下具有眾多 Linux 工具的最佳解決方案。

2007/05/10

Google desktop

其實這東西我知道非常非常久了,可是一直沒在用,其原因是我根本很少用 M$ OS, 剛好它只支援 M$ OS。最近開發專案需要讓我長時間停留在 M$-OS 上,用了一下感覺非常棒,找資料超快的。

第一次用可能會覺得怎麼這麼久還沒建好索引,事實上建索引本來就需要大量 CPU, 而 Google 為了不造成系統太大負擔,因此降低 CPU 使用率,也就是讓你覺得系統不怎麼受影響,這樣的結果就是建索引的時間會拉長。總之,等建好索引之後你要找資料就非常快了,也就是你可以感受到一件 google 一直在宣傳的事:你不必再管資料怎麼分類。因為,不管放在哪,它在哪是你「立刻」可以找到的。

另外,google desktop 還有很多小工具,請自己玩玩看,寫這篇也只是希望還不知道的朋友可以有機會試試。我一直是 google 迷,另外說一下,gmail 已開放公開申請,若還沒有用 gmail 的人,我真的強烈建議您去申請。

若對 google 提供的軟體有興趣的,可以至 http://pack.google.com 申請。

2007/04/13

GeeXboX + Freevo 的好消息

the Freevo/GeeXboX project has been accepted as a mentoring organization for Google Summer of Code 2007
目前在 GeeXboX 團隊的努力下(個人看法 Ben 的用心非常值得學習),不但已經與 Freevo 達成協議,而且目前已經取得更多人的加入,請參考上述網址。底下是 Ben 發出來的 email 提到的:

For the record, the accepted projects are:
- "LiveCD boot and HDD installation process" by Adir Abraham
- "Controlling Freevo through a simple web interface" by Ky Phan
- "DVB CAM support" by Alessandro Decina
- "Gstreamer Integration" by Killian Faughnan

2007/04/11

亂數產生器 random generator in bash

亂數有時就會用到,bash 有一個亂數產生器,引用方法很簡單: echo $RANDOM , 這會產生 0-32767 的亂數。若要產生別的區間的亂數也很容易,譬如要產生 10-20 的話,只需要 echo $(($RANDOM % 10 + 10)) , 可以自行推演其他範圍怎麼產生,這邊用到 $(( 表示法 )) 是可以當成計算機用的表示法。