2007年5月31日

CF 磁碟上線

這個標題這樣下,想必會看的人很少很少很少~~~

不過不重要,這本來就是寫給自己自high的~

計畫了兩~三年,一直以來CF的價格和速度始終無法讓人接受,現在終於實現了~

多說無益,直接看系統紀錄,如下:
ad2: FAILURE - SETFEATURES ENABLE RCACHE status=51 error=4
ad2: FAILURE - SETFEATURES ENABLE WCACHE status=51 error=4
ad2: FAILURE - SET_MULTI status=51 error=4
ad2: 1943MB [3949/16/63] at ata1-master PIO4
Mounting root from ufs:/dev/ad2s1a

前面幾行 FAILURE 就自動略過吧,簡單的說,目前這張CF卡的DMA,FreeBSD在辨識上有問題,因此我把DMA關了。
後面一行才是關鍵:
ad2: 1943MB [3949/16/63] at ata1-master PIO4

我買的是Transcend 266X 2G CF記憶體,搭配之前買的CF-IDE轉接卡,還算順利的讓它上線了。

這張CF還不錯,有直接提供DMA,雖然FreeBSD還有問題,但我會嘗試解決看看,用DMA速度真的快不少,整體感覺還不錯,少了硬碟聲音,感覺很棒~
目前先觀望看看,看看使用上會不會有壞軌的情況,如果一切順利,到8G價格下來時,應該會考慮用8G來替換Media Center上的系統碟,然後將磁碟全部移到File Server上,看看散熱會不會有所改善~

2007年5月30日

中華電信FTTx之我見

最近線上詢問中華電信,發現我家可以牽FTTx,因此二話不說,趕在6月前申請(5/1~5/31有優惠,6月後會改為NCC的公定價1300)。

申請時就覺得納悶,明明是FTTx了,為啥需要電話呢?
又,我同學申請後說,他實際上是會提供VDSL的分享器,因此好奇到底是什麼情況,經過Google之後,我終於了解中華電信所謂的FTTx了。

FTTx,又可以稱之為光纖網路,速度非常優,以中華電信經濟型方案來說,有10M/2M(上傳/下載),可以說是相當快的速度,而且人人都知道光纖是未來趨勢,日本已經有許多光纖到府的服務了,速度也都非常快。

中華電信的FTTx其實不能算是光纖到府,他的架構實際上還是xDSL(ADSL是xDSL的一種)系列的一種。

中華電信的電話,實際上就我們關心的,就是機房和機箱,可以這樣說:

中華電信有網路中心,網路中心很多個,骨幹牽到網路中心,這段目前來說,應該會是光纖、海底電纜、衛星通訊...等。
網路中心再和各地機房以網路相連,以目前來說,這段幾乎都是光纖了。
而機房到你家,則是先連到機箱,也就是外面看得到大大的立在地上的鐵盒子,上面用油漆彩繪中華電信的東東,這段,以電話線(銅線)為主。
機箱到你家,則是電話線(銅線)拉進大樓,大樓的配線拉進家裏,大樓的配線,則是在蓋大樓時,建設公司配好的,當時(舊大樓)請中華電信拉的。

因此目前要推光纖網路,之前很多ISP要推無法推,主要問題在於機房到機箱以及機箱到你家這段,早期都是中華電信拉好了,現在ISP要拉,除非自己另外申請挖馬路,否則不可能建設出來,但是現在民意高漲,大家都不喜歡看到馬路被亂挖,台北市還規定挖馬路要有流程,要事先申請,時間多長、距離多遠、挖的時間一堆規定,甚至新鋪設的馬路,幾個月內還不準挖,因此問題很大,最後結果是,只能找中華電信借電話線,然後賣ADSL.........

現在呢?中華電信要推的FTTx和所謂的光化大樓是啥?

中華電信的FTTx其實不是光纖到府,實際上走的還是電話線,差別在於:
中華電信現在將機房到機箱這一段,由電話線改拉光纖,如此一來,從骨幹到機箱都走光纖,可以算是光纖網路,而機箱到大樓這段呢?因為牽涉到大樓的配線,因此還是傳統電話線,不過因為到機箱都是光纖了,因此這段的距離很短,可以改使用VDSL。

VDSL的特色是,他的速度範圍很大,最快可以到50M/50M,最慢則可以到1M,速度一樣由距離決定,和ADSL相比,VDSL的距離影響更大,距離越長,速度掉得越兇,以中華電信網頁的解說,他的距離限制大約是500M~600M左右,和ADSL上到KM,是有很大的差別的。

因此,中華電信的FTTx,實際上還是電話線,但是電話線的距離更短了。

至於光化大樓,就真正是全光纖網路了,所謂光化大樓是說,現在新的大樓,在蓋大樓時,裡面就已經請中華電信、台灣固網...等ISP,在配線時直接配光纖,因此到大樓裡面都是走光纖,前段的機箱就都不用說了。

結論,中華電信的FTTx,不用懷疑,他還是電話,如果你家本來就是ADSL,他說不定只是去幫你把ADSL的機器換成VDSL的機器,其他完全沒變,也都還是使用PPPoE的撥接。
要完全光纖到府,看來是還要等等了~

2007年4月28日

壓力很大阿~

話說最近情緒很不穩,我終於很深刻的體會到,在我壓力很大時候會有的現象了~
原來我在壓力很大的時候阿,是會焦慮的,發這個blog時正是,想找個地方po,哪裡都不合適,就發來這了~

話說論文沒題目,週一要繳第一次口試的申請了,現在還在磨題目,很囧阿~

不過這篇重點不在這.... = =||

話說我因為同學看XEN,看他的Roadmap,赫然看到xenfs的發展,今天去之後發現,對方並不是一個term,而是一個可憐的博士生,今年做到第三年~

我在想阿,是否可以跟他一起玩下去,我看看有沒有辦法在XEN上搞分散式檔案系統。

就降~以上~

2007年4月14日

FOXY(P2P)與VMWare

話說VMWare這類的虛擬機器軟體免費了,VMWare Server在單機單一VM的情況下,效率很不錯(這是我同學說,稍後解釋),因此VMWare有個不錯的應用.....。

VMWare Server目前是免費的,我同學的論文題目是研究Xen,Linux上一套效能非常好的虛擬機器軟體,他經過測試後,證明了Xen的效能比VMWare Server好非常多,主要是在多虛擬機器的狀況下,特別明顯,因此我們可以大膽的認定,VMWare Server果然是VMWare Workstation和VMWare enterprise的縮減版,將最佳化都拿掉了(最近發現,不會解釋時,就可以用最佳化來帶過... :p)(這邊的最佳化指的是,可能有將多虛擬機器時的排程之類的演算法去除了)。
不管如何,在單機單一虛擬機器的前提下,VMWare算是相當好用的。 :p

話說FOXY這類P2P,最近有安全上的問題,而我在學校,針對IP有流量和連接數的限制,VMWare在這時候就很方便了。
VMWare可以簡單的安裝在Linux上,而且不需要開在前景,只需要背景執行,透過client程式就可以連進去了,而且client設計非常好,跟在本機端一模一樣,所有本機的功能幾乎都可以透過client來動作。
Linux一般來說,還是大部分人不會想碰的系統,長期以來,很少有人看到Linux之後,會想去碰碰他的,當然.....我或是一些Linux的常客例外..... :p
加上沒有畫面,根本不用擔心看到在幹嘛~

而VMWare安裝好後,直接就幫你設定好bridge的能力,只需要簡單的點選,就具有bridge的功能了。
因此,我們只需要切割2G的空間裝win2k,安裝上我們常見或喜歡的P2P軟體,搭配上Samba或網芳其他資源分享,就可以輕易的做到VMWare跑BT,檔案放在其他電腦上或Linux磁碟中。
這樣的好處在哪裡?
1.可以在只有Linux的環境下,按照正常的操作需求去使用BT...等P2P軟體,不用搞個WINE什麼的鬼東西,我搞了這麼久,也只能透過WINE執行uTorrent,而aMule和Azureus還是我的次要選擇(這兩個,都不讓我太滿意,Azureus資源吃得很兇,aMule實在沒有標準的eMule或帶Mod的eMule好用)哩~
2.VMWare內的磁碟,是透過模擬的方式讀取本機磁碟的一個Image或一個磁區,效率差很多,網卡則相對單純,效率應該會高不少(自己認為的,目前沒依據,但我覺得寫網卡的虛擬驅動程式比磁碟分享或Image操作,他的效率要高很多)。
3.VMWare內的電腦,只有單純的P2P,沒有太多額外程式,根本沒有其他服務,被破的機會小,就算破了,還要透過網芳才能得到資料,網芳,是有獨立設置權限的。
4.以學校來說,會鎖IP,沒關係,因為是bridge,所以可以連進去改設定、改IP,而且說句搞笑的,VMWare可以另外設定網路卡卡號,當然,這僅是針對沒有使用高階Switch的環境,如果是port對應網卡卡號,而且開學時要用申請來開放,是有困難的。
5.換機器動作簡單,當電腦要重灌,或有不可抗力的因素要改變執行環境時,只需要把虛擬機器關機,把檔案複製到其他地方,執行VMWare並套用進去,設定完全不用動,一模一樣跑給你看,很適合擺地攤的夥伴們。 :p

此外阿~VMWare我也曾經拿他來當做測試機台,之前要try Trace32,當時已經是要做說明文件了,Trace32已經摸很熟了,為了有乾淨的環境,我直接用VMWare,搭配他的USB功能(這很多人不知道唷... :p),可以很方便的將環境在虛擬機器中實做,這樣最方便的好處在哪?
當你今天的工作,是Embedded System上的操作,那個環境的建立可能不是很簡單,至少也要搞個幾周的時間才生得出來,今天你透過VMWare,可以輕鬆將完整的環境重現,不會有重灌的困擾。
更有甚者,可以將建制完成的環境,將他的檔案備份下來,接著就是複製給別人用即可,省去了每次都要建構環境的麻煩,最讚的是,不論你是用Windows,或是Linux,只要VMWare設置得宜,都可以跑出最適合的操作環境供開發。

2007年4月1日

耳擴真的需要嗎?

最近學校的學弟在研究耳擴(耳機用擴大機),十分專業的在看USB的音效盒(不好意思,請容我用這麼膚淺的名詞,我不知道他們專業的名詞是啥... = =||)以及耳機用的擴大機,甚至隔壁實驗室學弟的USB音效盒還是買套件自己焊接的(更換上面的零件)。

對此我實在有點無言,我認為砸錢買喇叭是有必要的,我個人在數年前是買Abit的SP50,至少在當時,SP50的評價相當優秀,也花了我8000大洋,可是對於耳機,我就不認為有需要買這麼好的了。

耳機會傷耳朵,這個大家都知道,儘管耳機能夠聽到聲音細微的部份,但是就是會傷耳朵,耳機怎麼找都只有2聲道,而且耳機的性能是型錄上直接看得到的,為了一個耳機,去買USB音效盒和耳擴,我不能理解,要好好聽音樂,就買多聲道的好喇叭阿,為何要這麼辛苦的買耳機加上一堆配件,耳機要做小,對於音質本來就很受限,還去搞這些實在很怪。

還有重要的幾點,我以往買過的耳機,沒有一個能夠安然的撐過數年的,到了最後都給我斷線,對於耳機,我認為它根本是耗材,而且耳機用久了音質會變差,這也不是什麼新聞,加上耳機的使用環境多半是在外面,什麼時候用?
騎車時你會希望耳機聲音不要過大,能夠聽到外面的情況;和朋友出去時,你會希望和朋友聊天、打屁、打牌,一個人聽耳機根本是孤僻;一個人在車上聽音樂,也許有點說得過去,但是在車上要等這麼久,為什麼不乾脆睡覺,要睡覺,戴耳機聽音樂也大有問題。
結果搞了半天,聽音樂的最佳時機竟然是工作時或一個人當宅男時,但是這時候,如果許可,我會希望聽喇叭,而不是耳機,而且的確有需要注意外面情況,不論是同事(同學)或其他事情。
另外,耳機使用時間多半是方便,為此還要搞個耳擴,這很奇怪,難道走到哪裡都要用耳擴嗎?像在車上,有插頭讓你插耳擴嗎?
USB音效盒也許說得過去,畢竟每台NB情況不同,遇到像我這台AT23,它用的音效晶片很破爛時,就很有需要用USB音效盒了,可是對音效盒,我不認為買台製或套件的會比較好,我比較傾向考慮創新未來(創具)這類的廠牌,我不知道上面的電容、電阻、電感對聲音影響有多大,不小我是不否認,但是既然是「USB音效盒」,它的問題就不只有電容、電阻、電感,問題更大是來自於它用的音效晶片,裡面DSP是否做得好,晶片好,用料好(電容、電阻、電感用的好),那麼這個「USB音效盒」才叫做好,這樣的東西不是沒有,當然有,創新未來就有推出這樣的產品,而且號稱24K鍍金材質,一個要價6xxx。
而且它能夠直接支援5.1甚至現在新的7.1聲道,我認為這樣的音效盒才是好的,因為它的整體設計,就是為了有較好的品質而做的。
如果是傳統的擴大機,我相信用料和音質是大有關系的,畢竟材料好壞的影響是不容小看的,但是當牽涉到「電腦元件」時,像是DSP IC、USB IC,我認為這時候用料不再是唯一的考量或問題,整體設計才是關鍵,當你買套件自己焊接時,你能保證它的元件非常好嗎?你又沒辦法換其他DSP IC,你又能保證你焊接技術優異,比機器焊得效果好嗎?當影響因素很多的時候,我相信一分錢還是一分貨,真的有決心要讓NB的音效飛上天,砸個6xxx買個USB音效盒吧,至少它能保證你未來的所有NB都能使用,音質也頗為優異,沒有這麼多小朋友,又或者認為僅僅針對NB沒這個必要,那還是乖乖的投資在多聲道喇叭,和中等價位「耐用」的耳機吧~

夏天到~家庭計劃開始

夏天即將要來了,雖然說下週二又要轉冷,可是夏天的例行計畫又要開始了。

每到夏天,就有兩項計畫要開始:
一個是蟑螂計畫
一個是散熱計畫

先說散熱吧,因為今年對散熱沒什麼大計畫,去年換了機殼,給file server加了風扇,問題看起來是改善了些,現在問題最大的,就是客廳的Media Center了.... :~~~

Media Center在去年給我熱爆了一顆160G硬碟後,我將硬碟從Media Center「裡面」移出來了,現在算是外接的狀態,沒想到昨天看個錄影的Discovery,看到一半硬碟就給我熱當了.... = =||
現在搞得我也不知道怎麼辦才好,因為它是外接式IDE,根本找不到這樣的外接盒,加上目前用的硬碟也是IDE的,更是難搞,我是不想因為這樣硬是讓它用USB,USB當開機磁碟,有沒有搞錯阿,穩定性行不行阿~
目前的計畫很詭異,而且滿花錢的,還要從長計議,目前是打算用IDE2SATA轉接頭(600)加上SATA外接盒(至少要內建8cm風扇)+SATA硬碟,但是這樣的配法,三樣都要買,連硬碟都要換,這反而讓160G無處用了,整個問題看起來麻煩了些,還在計畫中,先畢業再說吧~

至於蟑螂計畫,是我目前主要要考慮的,家裡的蟑螂,已經搞到我老妹都受不了了,你能想像在客廳看電視,有蟑螂陪你看的感覺嗎~
你能想像廚房裡,蟑螂在炒菜鍋裡對你微笑嗎?
這實在是很可怕的事情,我本來是打算畢業後再說的,但是~它已經讓我沒辦法迴避了~

每年夏天,都會施行蟑螂作戰,幾乎是從前年開始的吧~
每次都買誘餌,好像有些些效果,還是心理作用,不瞭解~但是還是這麼做。

今年打算朝幾個方面下手,首先,我家是大樓,我在奇摩知識看到有人說蟑螂會從排水孔爬出來,我是頗相信的,雖然我沒看過有蟑螂從排水孔爬出來,但是有看過爬進去的,而且大樓排水孔大都是相連的,會爬出東西我一點都不意外。
剛好看到了這個,看看後就給它買下去了,不管蟑螂會不會從裡面出來,用上它至少能保證一個來源是安全的,而且要不是有看到,我還不知道有這樣的好東西哩。

另一個就是垃圾桶,因為家裡的垃圾多半是食物,多半直接丟廚房,多半廚房的垃圾桶裡外蟑螂都不少,這次決定把廚房的垃圾桶換成腳踏式的,強制加蓋,這樣應該可以解決垃圾桶的蟑螂問題。

接著我打算嘗試在家裡做廚餘分類,之前一直都沒做,直接丟垃圾桶交給大樓收垃圾的,但是這讓蟑螂橫行,考慮弄出(買或找出來)廚餘桶,並嘗試能否成功用有機土堆肥。

這幾個方案加上蟑螂藥餌,應該能夠多少解決蟑螂的問題吧~

2007年3月28日

電腦與軍事武器(IDF翔昇機)

最近一個跟軍事有關的主要新聞,就是我們的IDF升級計畫,翔昇計畫完成,儘管看起來還需要一段不短的時間進行驗證,但出廠的樣式看來不錯。

身為男性,往往都會對強悍、高科技的裝置有興趣,而軍事武器往往是其中之一,不過在大家熱烈討論的時候,往往都會非常自動的將它的用途(殺人)略過,儘管如此,大家還是樂此不疲的討論。

我個人覺得,近40年來,歐美最成功的東西就是電腦,單單靠電腦,就不知道讓歐美(尤其是美國)擁有多少不可數的優勢,美國是一個非常幸福的國家,它的國土面積是全世界第三大的,但是人口只有3億人,中國比它大,但是人口有12億,而且西半部一大塊都是荒地、高山,根本不能開發,不過因為美國的這種特性,他們有更多自動化的需求,也比其他國家更講人權,人少當然人命寶貴,換做中國,死一票又如何,人這麼多~

因為如此,電腦對美國有特別重要的需求,能夠利用電腦節省一個人力,就是非常不錯的投資,能節省許多人力,成本上升一倍也值得,同樣的話在中國顯然不這麼適用,一件事情一個人做不完,那就10個吧~

而電腦,這真是強大的工具阿~舉個有趣的例子,之前看過忘了是Discovery還是網路的消息,東西德統一後,他們第一件事情就是拿米格29和F-16進行纏鬥,看看誰強~

有趣的事情出現了,米格29的氣動力表現和引擎能量沒話說,就是比F-16強大,我相信這裡指的是,當需要瞬間能量時,米格29可以做出非常優異的動作,引擎能提供瞬間強大的力量,而飛機氣動力優良,能讓動作做出來~
相比之下,F-16的迴轉力不錯,靈活度也不錯,但是對於大角度的動作,它沒辦法像米格29這麼強悍,結論是,就整個機構來說,米格29是很強的。
然而有趣的事情出現了,米格29的駕駛艙,搖桿的正後方有個大大的時鐘,其他部份則很多都是開關,這時候飛行員解釋說,米格29在飛彈的發射,非常需要看時鐘,因為米格29的電腦僅僅只會幫你瞄準,不會告訴你多久後會命中,也不會告訴你是不是在射程之內,而如果是紅外線導引或半主動雷達導引的飛彈,需要戰鬥機提供鎖定的資訊,那麼這時候飛行員只能看著時鐘自己倒數,雖然這看起來不這麼重要,但是在戰鬥時分秒必爭的環節,對於「人的多工」就有了決定性的差異。
至於F-16,在它一推出之時,就是以優異的電線傳導取代油壓,搭配優秀的射控、電控電腦著稱的,它的電腦會主動瞄準,並顯示距離和預計的命中時間,飛行員只要看看時間,評估一下就可以決定要攻擊的目標了,兩相比較,誰強誰弱很清楚。

我們的IDF,很多人說它很破爛,可是事實上,和其他國家的戰機相比,並不遜色,IDF最讓人詬病的就是引擎,因為拿不到大引擎,因此用了小引擎,但是如果去漢祥網站看,我們的引擎可是全數位化的,而且是全自製的,我們有完整的設計圖,要提昇性能,在一定的性能提昇上(10%上下)並不會困難到需要很大的代價。
相比來看看其他國家,日本的沒話說,他們本身就有F-1戰機的設計能力,F-2戰機對他們來說,他們要的是F-15的能力(重型戰機,也就是掛彈量大,Power強),美國一樣限制他們,強迫他們只能參考F-16來設計(F-16是輕型戰機),結果它們搞了個F-16的威力加強版。
至於韓國呢?韓國的K-50,改名後叫做黃金鷹,可以去維基百科看看,它的引擎只用一顆,推力並不如我們兩顆的推力,意思是,IDF還比黃金鷹強些些。

而雷達,大家都說我們的GD-53是垃圾,可是我們的GD-53和韓國一樣,是APG-67雷達改的(至少我們還有改良,韓國直接套用,未來可否更新也許是問題),至於日本,人家的三菱重工自己就有能力做出強力雷達,當然不屑美國的幫助,美國也沒理由強迫他們用顆搜尋能力差的雷達。

看看IDF之前的開發,當時的電腦系統(電控、射控系統)是由英國航太系統公司(BAE Systems)直接提供的,說起來也合理,當時又沒有相關的技術。
雷達系統則是拿APG-67改的,看起來應該是把對地攻擊的部份拿掉了。
加上給顆性能不夠好的引擎,因此飛機就做不大,油箱也不能放多,設計就受限了。

這次的翔昇計畫,主要是修改電腦系統,但是也加了油箱,而且一開始我以為是掛在下面,發現不是,是整合進飛機裡面,增加了「飛機內部」的油箱空間,這很直覺就可以聯想,下一步就是提昇引擎性能了,不然加個油箱在「飛機裡面」幹嘛~
而電腦系統就更炫了,從原本BAE使用的16位元1750 CPU改成32位元的,這個16位元處理器,八成是顆DSP處理器,就一些看到的討論,有人說到「不過就是16位元CPU加上40位元的浮點運算器」,這八九不離十就是DSP處理器了,雖然不差,可是的確不能適用在新一代的應用場合。
這次找BAE換CPU,直接換成了32位元的PowerPC處理器,也換了顯示器,換成全彩的,而且以現在這個時間點來看,八成是全彩觸控式液晶螢幕。
這樣的修改,讓IDF變成全數位化的戰機,而32位元的電腦系統,最直接的影響就是可以使用OS(16位元不是沒有OS,但OS主流還是在32位元上),這讓程式開發容易許多,要在上面開發個MP3播放程式我都不意外,而且將開發簡化後,我們能夠進一步開發許多應用程式,像是飛機間通訊,情報交換,甚至上面有TCP/IP可以上網我都不意外。
這樣的改變是很棒的,這讓IDF成為我們的主力戰機,至少不會被美國綁著,賣個爛F-16 A/B,F-16 A/B還是類比系統耶,而且程式設計、系統整合都要看別人臉色,花錢做到,明明就只是protocol的問題罷了,不賣就是沒辦法開發。

整體來看,我個人是覺得做得很不錯的說,尤其自己又是玩電腦的,加強電腦很直覺可以想得到有非常多的好處,而且未來的開發無可限量,一個搞不好,說不定上面跑的還是WinCE勒~

不過近日注意新聞,發現官員對它似乎不特別有興趣,頂多只想靠它買到F-16 C/D。
想一想,如果靠漢翔讓軍購變便宜,也許整體算起來,合算當然是買軍購,可是,軍購的背後每次都靠他們開發,也沒有因為軍購後補助他們,這擺明就是美國不讓台灣有自主國防,然後說些沒決心之類的風涼話。
所以是否應該想想升級的必要性,還是其實大家打的主意是兩者並進,嫌錢太多,我相信大家都不會有意見的~

最後提一下,避免造成誤會,竊取國防機密之類的,資料來源全部都是網路:
維基百科(http://en.wikipedia.org/wiki/AIDC_F-CK_Indigenous_Defence_Fighter)及其外部連結
近日新聞
戰國時代討論區(ArtOfWar)-漢翔改良IDF 雙十節首飛~(http://artofwar.homeip.net/bboard/viewtopic.php?t=6125&postdays=0&postorder=asc&start=0&sid=c77c8303a543bb4779668ddd0a75ec27)及其外部連結
google

2007年3月26日

台灣首位本土圍棋王與教育

很早前就說過,台灣教育實在失敗~

我不在意教改,那種把小學生課本改來改去的教改,在這點是,唯一有意見的,大概是政治涉入吧~

可是這次的圍棋王、棋靈王,我卻很有意見了~

台灣號稱自由、民主,可是什麼都沒有,政府沒為人做過什麼,我是個學生,至少目前還是,其實沒資格說什麼政府為人民做什麼的大話,畢竟連稅金、健保金都要我爸繳的人,沒資格說這種話。

但是有一點我非常的感同身受,那就是教育的缺失。

我不瞭解什麼叫做成功的教育,可是一直以來,我一直一直認為台灣的學校和業界脫勾嚴重,十幾年前,台灣PC GAME遊戲興盛,還記得軟體世界雜誌每次都介紹著國內外遊戲軟體公司,也不斷的說國內遊戲軟體公司缺人,十幾年後,儘管許多遊戲軟體公司倒的倒,轉型的轉型,但是缺人風依舊,讓我們想想,遊戲軟體的產生,需要多少人,需要哪些技能的專業?只是簡單的程式設計師嗎?
一套遊戲軟體,從規劃、設計、寫遊戲、包裝、行銷,每個程序都需要專業人員,規劃需要企劃人員,設計故事需要作家、美工、美術設計,寫遊戲需要程式設計師、包裝和行銷需要企管,中間還有專案管理員之類的人,而現在線上遊戲熱門,線上遊戲公司甚至還需要日文、韓文的翻譯。
這些每個環節都是專業,這些專業的人員從哪裡來?難道從石頭蹦出來嗎?當然是學校阿~
可是看看,現在的學校都是些什麼科系?有跟遊戲軟體相關的嗎?
再看看這次的世界棋王,我們姑且叫他棋靈王吧~
他念的是什麼班級?什麼學校?是體育專班耶~
請問他下圍棋,跟跳高、跳遠、100公尺短跑、馬拉松長跑、游泳有什麼關係?
卻因為一般學校的課程跟不上轉念體育專班,而在台灣,這樣的例子比比皆是。
大陸落後,可是他們在上海成立了棋藝學校,也廣設軟體學院,這些學校的建設,持續發展下去,任何人看起來,至少未來20年開花結果了,可以帶出多少這些專業領域的人才?
我們號稱自由、民主,結果只是在搞三隻小豬是不是成語,在搞小學歷史課本,真正有用的是教育改革是什麼?
台灣普遍存在升學是唯一的路,一直以來根深蒂固,但是在這同時,我們經常看到許多專業的人在特定學校的特定班級努力發光,像調酒、跳水、這次的圍棋、電玩比賽、漫畫、歌唱。

這些有些是在特定班級,由「某位」專業老師努力的培育著,希望學生能成為所謂的「台灣之光」。
有許多是平常上課所學,和自己努力的專業毫無關係,每天去上學不知道為了什麼,成績不好,還會聯絡家長,說著你小孩如何不讀書、不努力,但是,讀書跟成功是劃上等號的嗎?
我們號稱的自由,是這樣的自由嗎?是限制發展的自由嗎?
為什麼不能為這些特殊項目成立特殊的學院或學校呢?
什麼叫做專業?當某個事物,不斷不斷的鑽研,不斷不斷的研究,當經驗累積到了某個程度,它就是專業,這一點,日本比我們成功很多很多~
在我們看來,看著日本人贏了某某獎項,一群人抱著痛哭,一群人喊著萬歲,就算只是微不足道的獎項,還是跟瘋子一樣的拼命,這看來很愚蠢。
但一堆人拼了命的研究,努力把它用各種莫名其妙的歸類法、經驗法則把它專業化,最後打敗了全世界的人,而且立於不敗之地之後,這些愚蠢會變成可怕的實力。
試問,我們在哪裡?我們只會在出現王建民時,稱讚的台灣之光,出現棋靈王時,稱讚台灣之光,但是政府有正視這些不斷挑戰自己的人嗎?只有和他們照照相、沾沾光、送個獎章,可是真正要做的,應該是正視這些人,在給予鼓勵的同時,創辦學校、學院、給予補助,或者僅僅只要新增法令,新增規範,這些做不到嗎?
看著記者問行政院長,說到棋靈王沒有接受到任何政府補助和培訓,他的回答很妙「這可以用特例申請」,特例申請,有多少人申請過?看不看學校成績?評判標準?真是十足的官腔~

2007年3月23日

SSH Tunnel心得

剛打的,也就沒什麼前言了,直接看囉~

=============================================================
SSH Tunnel心得:

一直以來都知道SSH其實只是一個加密的Tunnel,本身不像telnet只有提供終端機服務,
但是對SSH的Tunnel並沒有很大的興趣去玩它,又或者說其實是不會玩~

前陣子原本因為PSPad不支援sftp,因此用了一套「Bitvise Tunnelier」的軟體,
它能提供SFTP-FTP的功能,讓PSPad可以透過它連上SFTP機器,
此外,它也有Socks Tunnel的功能,讓我覺得非常方便~

無奈Bitvise Tunnelier需要在右下角有個圖示,而且Linux上不能用,
要做壞事就因此受限了,因此在研究有沒有程式可以做到Socks Tunnel的功能,
又可以跑在背景的~

答案是PuTTY和所屬的plink(PuTTY Link),以下是使用法。

PuTTY作法:
首先從最基本的PuTTY使用法介紹起,要用PuTTY來幫你做SSH Tunnel很簡單,
如下面這篇的作法:
http://www.pumb.org/viewthread.php?tid=155&fpage=1&highlight=

簡單的說,就是按照一般PuTTY使用,填入「Host Name(or IP address)」和「Port」,
接著點選左邊「Connection」->「SSH」->「Tunnels」
接著在「Source port」填入「1080」(你喜歡的port),
點選「Dynamic」,之後按下「Add」

之後按正常方式連線,放著即可~~

PuTTY Link(plink)作法:
PuTTY雖然方便,可是它要開個討厭的視窗,可以不要嗎?
答案就是plink。

首先到PuTTY的網站下載plink.exe,網址如下:
http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html

下面先給個範例:
plink -D 1080 -N -pw ooxx user@xxx.xxx.xxx.xxx

plink其實就是PuTTY的指令版,沒有圖形化的選單,也沒有ANSI支援,但是它有PuTTY的連線能力。
我們會用到的幾個參數介紹如下:
-D Dynamic SOCKS-based port forwarding(其實就是PuTTY點選的「Dynamic」,後面填上喜歡的port
-N don't start a shell/command (SSH-2 only)(雖然僅支援SSH2,但這不是問題,它的功能是不要開啟討厭的SHELL)
-pw 你的SSH密碼
user@xxx.xxx.xxx.xxx 你SSH的帳號和SSH Server的IP

測試後可以連線了,但是依然要開一個命令提示字元的視窗,有辦法關掉它嗎?

這時候我們要靠M$提供的優秀程式「start.exe」了!

只需要執行
start /b plink -D 1080 -N -pw ooxx user@xxx.xxx.xxx.xxx

即可~

要關閉,需要按「Ctrl+Alt+Del」,接著把plink結束執行。

OpenSSH作法:
如果我們需要在Linux或FreeBSD這類機器上做類似的工作呢?我們需要什麼樣的程式?

完全不用,Linux內附的ssh就提供這樣的功能了,它的操作如下:
ssh -f -N -L 1080:: user@xxx.xxx.xxx.xxx

照例,列出它的參數說明:
-f 背景執行
-N 不要執行SHELL
-L 後面填入你要的port,「::」表示省略remote host和remote port
user@xxx.xxx.xxx.xxx 表示你SSH的帳號和SSH Server IP

2007年3月22日

Regular Expression對中文Unicode的支援

最近寫電視節目表擷取程式,發現最大問題在於中文擷取,對於如何框定中文,是一件很麻煩的事情,目前我常見的方法是利用「>(.*)」類似這樣的方法來做,可是效果很差,尤其遇到有些沒斷行的網頁,完全無法判斷(.*的判斷準則是斷行),因此在想要如何在RegEx上對中文進行判斷。
聽說有學校有學長會RegEx,當然先去問他,可是很不幸的,他並沒有相關的經驗,一提到就覺得很難搞得樣子,最後他說透過ASCII的方式,用16進位的範圍來判斷,方法很基本,可是我在想,應該不能適用在Unicode或UTF-8吧... :(
上網找之後,發現還是可以的,但是要使用Unicode的作法,最後很不幸的,在php上的作法和學長提的類似,不過能夠達成任務,就相當不錯。
以下是打的心得:
==========================================================
Regular Expression對中文Unicode的支援:

目前Unicode已經是主流,看ASCII的反而不實用了~

regex目前我會用到的,大概就是 Java 和 php,
要在 Java 上用 regex 抓出中文,如下:
Matcher matcher = Pattern.compile("\\p{InCJKUnifiedIdeographs}").matcher(字串);
while( matcher.find() )
{
String 一個中文字 = matcher.group();
}

這邊要解釋「\\p{InCJKUnifiedIdeographs}」:
在 Unicode 中,有針對各個編碼區塊做分類,它的列表可以參照下面的檔名:

Unicode 3.2 的列表:
http://www.unicode.org/Public/3.2-Update/Blocks-3.2.0.txt

Unicode 4.1.0 的列表:
http://www.unicode.org/Public/4.1.0/ucd/Blocks.txt

Unicode 5.0 的列表
http://www.unicode.org/Public/5.0.0/ucd/Blocks.txt

這個表裡面列出了統一碼區塊名和相對應的 Unicode 區段,
而其中的「CJK Unified Ideographs」就是我們的中文字區段(看名稱,應該包含日文、簡體、韓文),
而在 RegEx 中,可以透過「\p」來指定這個統一碼區塊名,
透過指定它,找出相對應的文字範圍,Java 就是這樣做的。

至於細節,可以參考:
http://www.javaworld.com.tw/confluence/display/J2SE/Regular+Expression's+Unicode+support
http://java.sun.com/j2se/1.4.2/docs/api/java/util/regex/Pattern.html

至於 php,php 的 PCRE RegEx function,它使用 PCRE 套件(原本用於 perl,移植到 php),
PCRE 的 \p 並無法支援「CJK Unified Ideographs」,
而在 PCRE 的套件下,要能夠擷取出 Unicode,常見的作法有兩種:
1.
使用 \u 來指定 Unicode 的碼,可惜 php 的 PCRE 不支援

2.
使用 \x 來指定 Unicode 的碼,這個沒問題
參考網頁:
http://tw.php.net/manual/tw/reference.pcre.pattern.modifiers.php

原文:
=================================================================
Spent a few days, trying to understand how to create a pattern for Unicode chars, using the hex codes. Finally made it, after reading several manuals, that weren't giving any practical PHP-valid examples. So here's one of them:

For example we would like to search for Japanese-standard circled numbers 1-9 (Unicode codes are 0x2460-0x2468) in order to make it through the hex-codes the following call should be used:
preg_match('/[\x{2460}-\x{2468}]/u', $str);

Here $str is a haystack string
\x{hex} - is an UTF-8 hex char-code
and /u is used for identifying the class as a class of Unicode chars.

Hope, it'll be useful.
=================================================================

它使用「/xxx/u」,在最後加上「u」,以這方式支援 UTF-8,
而在「/xxx/」內部,使用「[\x{2460}-\x{2468}]」來框出 Unicode 的統一碼範圍,
而要使用類似方式來應用在中文,就非常容易了,
如前面所述,看看 Blocks 的內容,
CJK Unified Ideographs 的統一碼範圍在 4E00..9FFF

答案揭曉~~

下面來個 php 的範例:
=================================================================
#!/usr/bin/php -q
$a = "def:123:這是:AB=你好!";
$pattern = '/123:([\x{4e00}-\x{9fff}]+):[A-B]*/u';
preg_match($pattern, $a,$match);
echo $match[0];
?>
=================================================================

可以得出
=================================================================
123:這是:AB
=================================================================

2007年2月26日

台灣高鐵很糟嗎?

剛剛看了Discovery介紹韓國的KTX高速鐵路,接著就上網查了查關於台灣高鐵的消息。

說到台灣高鐵,大家都知道這是日本第一次輸出新幹線,全世界都非常關注,而日本方面也非常謹慎,可以說是只許成功不許失敗的大事。

關於新幹線,我們可以看Wiki新幹線的介紹,而且我們可以從最早的新幹線0系開始看每個系列的介紹。

近年新幹線的主流是700系列,日本自己目前用的最新車款,是700改良型N700,輸出台灣的是700改良型700T,因此說起來,700T的確是目前最新的款式,並不存在「賣舊貨」的道理。

而且事實上,日本的新幹線列車使用時間都很長,經典的新幹線0系從1964年開始服役,直到1999年才全線退出,其他新幹線系列有不少也都在服役中,並不是N700出來了,就全日本新幹線都換N700,因此這次出口的700T,並不遜色於日本自己在用的車子。

再提一次,車子相關介紹可以看Wiki新幹線。

再來我們可以看chinshen在MyAV視聽商情報網的發文。

chinshen本身在台灣高鐵工作,他的發文中有對台灣高鐵被質疑的幾個部份給予回應。

一般對高鐵的質疑,
第一點屬官商勾結,廠商得利,我對這點實在沒太大興趣,不過chinshen有對這部份進行篇幅不少的說明,主要是說,台灣高鐵屬BOT,政府並沒有大手筆的出資救急,政府有做的,只有「借貸」和「投資」,另外他也提到有趣的一點,全世界的高速鐵路,除了自設計、自產的原始國德、法、日之外,沒有一國是不追加款項、不工程延宕的,台灣高鐵已經是追加款最少,工程延宕最少的了。
第二點屬日、歐混血,chinshen也提出了說明,台灣的新幹線,機電系統都是日本新幹線興建的,沒有所謂日、歐混血,會引起爭議的原因在於,日本的新幹線並沒有使用太多的自動化系統,主要是靠駕駛和車長來負責,歐美則用自動化系統來協助管理,像是有防止駕駛睡著等自動化的措施,在台灣高鐵訂立合約時,就要求要使用這樣的系統,在台灣,是日規系統和歐規自動化系統都有的,有雙層的防護措施,而對於自動化系統,合約中就定好日本新幹線必須要將機電整合做好。
第三點屬換系統,很多人質疑原本用法國的系統,為什麼後來改用日本的,也是因為這樣造成日、歐混血的嗎?chinshen提出了簡單的說明,在一開始的時候,日本新幹線和法國TGV提出的金額都是1500億元,而且日本新幹線提供500型的車子。
後來日本重提金額,日本提出金額改為1000億元,而且日本新幹線提供新型的700型車子。
正常人當然都會改選日本新幹線,因此台灣高鐵後來改使用日本新幹線也是合情合理的,現省500億,誰不幹阿?而後來法國TGV要求求償50億,當然付阿,省的錢是求償的10倍耶。

而且目前參與興建的廠商,這些公司、這樣的組合,事實上是台灣工程建設的第一首選了,事實上要換其他營造商,可能也沒什麼選擇,畢竟台灣有能力的營造商,屬得出來的就是他們幾家了。

看到最後,還會認為台灣高鐵差嗎?
我個人對高鐵,唯一有點意見是價格,畢竟沒有人會對價格沒有意見的,不過話說回來,我沒有經常南下的需要,事實上放假時,連家門都很少外出,但看了chinshen的解釋,我對台灣高鐵是非常有信心的。

2007年2月25日

沒啥好說,一個煩字~

隨著放假日快結束,論文又非常懶得進行,到現在都找不到題目卻煩得沒心思,就知道問題不小了~
剛剛在google和Flickr申請了相簿,以後大頭照改放到google(又或者Flickr目前不確定),如此一來,在寫些心得文之類的時候,也可以放圖片上去(夠有心的時候)。

這幾天,硬要說工作,在很懶的同時,對MythTV進行調配,目前狀況已經很不錯了,算是基本功能齊備,在延伸功能了,目前幾個主要的問題是:
1.電視卡的電視,畫質實在爛,目前我是懷疑家裡線分得太兇,線材不好訊號太差,目前打算加個強波器試試看,因為畫質很糟,這是沒人用它看電視的最大問題,老爸說過「電腦的電視畫面感覺比較差的樣子」,一句話道盡我的無言。
2.電視卡的電視,音質爛阿~
這跟前面那點很相似,電視卡的音質不好,我目前還無力解決它,先看看用強波器畫質有沒有改善再說吧。
3.節目表問題,目前節目表的問題是,我可以得到節目表的訊息,可是我不知道哪裡可以設定它是重播或首播?

2007年2月20日

Java與Debian

以往在Linux或FreeBSD上安裝Java,簡直就是自找麻煩,尤其是在Debian上~~~

話說Debian有嚴重的License情節,相關訊息可以參考Debian 和 Mozilla® 在 Firefox 的 LOGO 和 名稱 上的爭議。

而在FreeBSD上,情況有些類似,但是更可憐,因為FreeBSD不是Linux,Sun沒有提供FreeBSD版的Java,雖然Sun的Java有提供Source Code,但必須同意不同的License規範,其中一點,就是「不能散佈」。
所以FreeBSD從Java 2(Java 1.2)開始,就無法使用了,終於有一小群人看不下去了,他們維護FreeBSD Java的patch,一開始提供patch,後來將patch過的Java送Sun審查,在Java 2(Java 1.3.1)終於過了,也因此有了自Java 1.1後的第一個FreeBSD Java公開套件。
爾後陸續提供新版patch,也陸續提供較新版本的套件,目前FreeBSD提供的最新版本是Java 5(Java 1.5.06),而Sun的最新版Java則是Java 5(Java 1.5.11),測試版則有Java 6(Java 1.6)了......... :(

前面說到Debian有嚴重的License情節,也因為License的問題,因此Debian始終沒有把Java做成套件放入APT tree當中。

現在Java的授權改了,因此我們終於可以在Debian裡面,直接用套件安裝Java了~~

至於寫這篇的原因,除了解釋前面一大堆之外,最重要的是,網路上很多關於Debian安裝Java的資訊都舊了,但是FAQ還是非常多,多到淹沒了新的消息。
如果你想在Debian上安裝Java,到google一查,你很容易看到下面這個步驟:
1.安裝java-package
2.執行fakeroot make-jpkg jre-xxxxxxx.bin

*警告*
~這個方法是舊的~

現在方便、快速、無負擔的方法是:
1.修改/etc/apt/sources.list,在原本的deb ooxxooxx testing main最後面加上non-free,類似如下:
deb http://ftp.tw.debian.org/debian/ etch main non-free
deb-src http://ftp.tw.debian.org/debian/ etch main non-free

2.更新APT,執行apt-get update

3.進aptitude,搜尋sun並安裝,套件有sun-java5-fonts、sun-java5-jdk(或sun-java5-jre)、sun-java5-plugin,其他讓它自己相依安裝即可。

詳細的訊息可以參閱:
https://jdk-distros.dev.java.net/debian-dev.html

中樂透與捐錢

在去年年底的最後一期大樂透,獎金上看8億,大家都在買,我也就很入境隨俗的買了兩組號碼。

開獎後,我在生日的當天對獎了,也許是因為生日手氣特別旺吧,很有中獎的感覺,結果真的給我中了4個號碼~~

儘管在對的過程告訴自己,4個已經不得了了,都沒中過這麼多號碼,但是在查獎金時,還是一直在難過為何不多1,2個號碼,獎金可是差了10倍、百倍、千倍的耶~~

4個號碼有多少錢呢?這次中的人特別多,均分下,只有不到3500元。
領錢時更發現,扣完稅金,只剩下29xx元..... :(

不過不論如何,當時就許下,這錢是多少該捐一點出來,然後買電腦機殼,捐多少?那就捐個1/10吧~~因此我就想,捐個300左右吧~~

說到捐錢,在很早很早以前就寫過,我對慈濟這種捐錢的單位實在很不以為然,希望大家捐錢,可是可以蓋金舍、蓋醫院、蓋學校,出發點也許不非常壞,但也沒有好到什麼程度,況且我對他們「做善事」的認知實在不非常喜歡,為什麼到醫院做義工或者捐大錢才是做「做善事」?
我今天寫個軟體,把它OpenSoruce出去,這不是「做善事」嗎?
結論是,「做善事」在乎一心,心裡認為是做善事,那就是善心的表現。

有了這樣的想法之後,我就在想,要捐給誰?雖然只有300元.....
後來想想,捐給一些寫軟體的團體好了,而這件事,就這樣擱著了~~

到了剛剛,看到Java,想到FreeBSD上的Java,剛好給我看到捐款的按鈕,我想到了這件事,就給它按下去了,因此最後這300元(US10$),就用信用卡給了FreeBSD Foundation。

許多人在中獎之後,都會捐錢,然後都會捐給社福團體或宗教。
許多人在做善事時,也都會找社福團體或宗教當義工。
並不是說這些團體不好,但是我覺得,身為資訊人,很多電腦社團也很可憐,沒電腦、沒設備、沒人力,也許我們可以試著將錢捐給他們,讓他們能夠寫出更好的軟體讓大家用。
而且說起來,身為資訊人、網路一族,去做義工太吃力,扛東西扛不動、揹老伯伯揹不動、跑個腿說不定還中暑,與其做這些和自身優勢相異的「善事」,不如發揮所長,盡情的寫程式,把程式貢獻給大家,這.....也是善心的表現吧~

2007年2月9日

boot from floppy image and CD iso

經過了長久的探尋,它出現了~~
長久以來,我一直希望把軟碟機從桌上型PC移除,可是始終無法如願,就是因為找不到一個很好的解決方案來解決當機後重灌和還原的問題,現在,這個問題終於解決了~~

不過因為晚了,之後再整理整理po出,可以先說的是,關鍵在grub和isoemu。

FON bridge mode GoGoGo(簡易&細節詳細說明)

原文po在Taiwan FON社群,直接轉啦~~

因為有回覆說看不大懂,因此另外發個簡易說明的版本。

首先回應幾個回覆時問的:
1.
它並沒有修改任何的Firmware,而且,直接給Firmware看似簡單,但其實更危險,一個不小心就是車毀人亡。
如果是直接把Firmware刷掉的話,能做的事情,就不僅僅只是bridge了,可以直接裝一些人家編譯好的套件,像是ftp、nfs、samba....等,我個人是對BT和eMule比較有興趣的,不過還沒有仔細查有沒有人有放。

2.
我個人是覺得,傳輸效率應該沒有差別的,因為硬體相同,也沒有額外加上參數,因此我不認為傳輸效率會有差別。

3.
我目前對FON的wpa設定還有FON的FON_AP(開放的那個連線)的設定並不熟悉,因此目前提供的檔案,並沒有支援wpa設定,FON_AP雖然看得到,但是並不能使用。
如果您是一個「極度有善心」,或者您覺得「沒有wpa認證,這樣的無線網路安全性不夠」,完全不能接受的話,請先不要用。

下面,我就把一堆廢話拿掉,僅把修改加入bridge mode的部份寫出來:

1.
先把FON的SSH功能打開。
為了簡化說明,作法就不詳述了,earlreco大大有po了,網路上用La Fonera和ssh來搜尋,也可以找到一堆

2.
登入FON,並執行下面指令來編輯script檔案。
vi /tmp/test.sh

3.
將script內容寫入(可以用貼的,或自己用手打)後存檔離開。
先按i或a,讓vi進入(變成)編輯模式
貼上(key入)下列內容(「=」請自動略過,「xxx」請自己改成自己要的wep key)
===================================================
#!/bin/ash
echo "Setting up LAN bridge"
# 將 DHCP server 和 DHCP client 停止
/usr/bin/killall dnsmasq
/usr/bin/killall -9 udhcpc

# 建立 bridge interface
/usr/sbin/brctl addbr br0
/usr/sbin/brctl stp br0 off
/usr/sbin/brctl setfd br0 0

# 將 eth0 和 ath1(有線 / 無線) 設定清除
/sbin/ifconfig eth0:1 down
/sbin/ifconfig eth0 0.0.0.0
/sbin/ifconfig ath1 0.0.0.0

# 啟動 bridge interface
/sbin/ifconfig br0 up

# 將 eth0 和 ath1(有線 / 無線) 加入到 bridge interface
/usr/sbin/brctl addif br0 ath1
/usr/sbin/brctl addif br0 eth0

# 設定 bridge interface 的 IP(udhcpc為DHCP / ifconfig為手動)
/sbin/udhcpc -i br0 -R # get new IP via dhcp
#/sbin/ifconfig br0 192.168.0.103 # static IP

# 設定防火牆, 允許 bridge interface 的 Input / Output
iptables -A INPUT -i br0 -j ACCEPT
iptables -A OUTPUT -o br0 -j ACCEPT

# add bridge to hostapd.conf and restart hostapd (allows to use WPA)
# 原指令為執行 hostapd 來啟動 ath1 的 AP
# 改為直接用 iwconfig 來啟動
# 因為 hostapd 不熟不清楚設定,hostapd 能支援 wpa...等認證
[ `grep -c bridge=br0 /tmp/hostapd.conf` = "0" ] && echo bridge=br0 >> /tmp/hostapd.conf
/usr/bin/killall killall hostapd
#/usr/sbin/hostapd -B /tmp/hostapd.conf
/usr/sbin/iwconfig ath1 essid HOME mode Master key xxxxxxxxxxxxxxxxxxxxxxxxxx(麻煩請自己取,共26位)

# restart public SSID (doesn't work!)
# 重新啟用 FON 的開放連線, 不確定能否使用, 看起來是不能
/sbin/ifdown hotspot
/sbin/ifup hotspot
===================================================

4.存檔離開並修改權限並執行看看
先按幾下「ESC」鍵,然後按「Shift+:」切換vi成指令模式
輸入「wq」存檔離開
chmod 755 /tmp/test.sh
/tmp/test.sh

5.用無線網路連看看(連HOME),然後自行判斷是否是bridge模式。
判斷方式,
如果你的FON是接在IP分享器上面,應該會拿到一個IP分享器的IP。
如果你的FON是接在ADSL上面,應該會拿到一個真實IP。
如果你的FON是接在區域網路,需要自己設IP,將會發現FON不會分配任何IP(出現這是有限能力的網路)。

6.確定已經成為bridge模式了,執行下面指令讓FON開機時能自動執行。
mv /tmp/test.sh /etc/init.d/N15bridge

7.重新開機,確定它已經能開機自動動作。
reboot

2007年2月4日

MythTV EPG GoGoGo

最近這幾週,MythTV的EPG終於搞定了,我也有po文在摩托學園的share版了,這邊將原文直接轉貼啦~ :p

而目前發現,晚上12:00的節目表,可能會出現問題,看起來12:00的節目經常會空白的~~

.....................

發現到因為它有HTML的關係,會造成格式錯亂,我就不貼了,直接連結到摩托學園那邊去啦~~
Linux Media Center設置心得(MythTV)-MythTV EPG

FON bridge mode GoGoGo

話說前鎮子有FON的優惠活動,我在一開始時對FON並沒有太大的興趣,
有一天,我想到宿舍如果放一台FON AP,好像還不錯。
反正是學校的網路,要用就用吧,我又不痛不癢~

因此開始詢問FON的情況,等了許久,在前鎮子開始了FON台灣的促銷,
統一價165,當時我還覺得有些貴,這麼小一顆,
只有一個網路孔,沒有內建HUB,硬體應該是不怎麼樣吧~

不過當時在朋友的慫恿下,買了2顆,一顆按計畫放宿舍,
另一顆考慮放家裏或學校實驗室~~

FON陸續到貨了,第一顆我很乖的放宿舍,很乖的按照設定設定它。

但是第二顆呢.....嘿嘿嘿.........

因為本來家裏使用FreeBSD當NAT和AP,
不過因為主機板很舊的關係(P2-350),對PCI和wireeless PCI支援不很好,
插三張網路卡,經常發生device timeout或watchdog timeout,
尤其是插上wireeless PCI之後,情況尤其嚴重~~
加上PCI的wireeless card訊號實在不大強,還掏錢幫它加天線,還滿囧的~

這次第二顆,就打算放家裏用用看,也玩玩看,
因為我始終相信,機器在手上,怎麼可能沒有人在惡搞它~~

因為在宿舍使用的經驗,發現它的穩定度很不錯,速度也很好,
在家裏相信也會有不錯的表現,可惜的是,沒有bridge mode..... :(

上網路一查,赫然發現,人人都在惡搞它,透過CGI的bug,
很簡單就能把SSH打開,一進去,發現是Linux 2.4,
再仔細查找後,發現它硬體還不錯,看看下面這篇:
http://www.dd-wrt.com/wiki/index.php/La_Fonera_Hardware_Specifications

它用的是Atheros的MIPS SoC Processor,
直接內建ath的802.11b/g和10/100M的網卡,
難怪它的穩定性和效率都相當好~
而顆Processor的時脈也不低,
還內建了8MB Flash和16MB RAM,這相當不錯~
就165而言非常划算~~

在這裡,我僅把我的心得po出來,
先聲明一點,我只是「正常的使用它內建的功能」,「並沒有惡意的破壞它」,
不過,這裡指的「惡意破壞」,指的是把Flash ROM刷掉........ = =||
套個不文雅的說法,就是蓋棉被純聊天,頂多摸一摸罷了(真低級的比喻)....... = =||

我的需求很簡單,和芸芸眾生一樣,我只想要讓FON有bridge的功能,
一個NAT已經很發瘋了,還NAT中的NAT勒..... = =||

要做到這點,第一步驟是把FON的SSH功能「打開」(我絕對沒有破壞它,只是打開而已),
看了些說明之後,發現
這裡的解說

搭配
這裡的程式

是安全性最高的,基本上不需要太擔心把它搞壞,我們只是不小心設個IP,
不小心點了兩個.xml網頁罷了~~

這邊要注意的是,在將SSH功能打開之後,按照前面解說的網頁,
它會在重新開機或下載更新之後還原,
解決的方法在這裡
Always Open~FON SSH

從網頁我們可以得到一個重要資訊,
/etc/config在自動更新之後,是不會蓋掉的~~

因此,我們除了可以讓FON像7-11一樣,FON SSH天天營業,
我們也可以做些其他事情,像是幫我們把「更新程式」在FON更新後自動放回去~

而第二步驟,就是把FON的bridge功能「打開」,
我在這邊要嚴正的正名一下,FON的bridge功能,是本來就有的,
並沒有額外增加patch或module,因此談不上「破壞機器」~

在Linux上要把bridge功能弄起來很麻煩,
不像FreeBSD改改sysctl就搞定了.... :(

基本上我們可以參考
Mini HOWTO:Ethernet Bridge + netfilter

這邊會解釋Linux上bridge的設定方式。

而簡單的說,步驟如下:
1.建立 beidge interface(br0)
2.把要bridge的幾張網路介面加入br0(eth0,eth1,ath0...etc)
3.如果需要讓bridge有IP可以讓人連線,幫br0設個IP
4.把br0啟動

大功告成~~

在FON上也是一樣的,參考網頁:
http://mrmuh.blogspot.com/2006/11/updates-explained-and-bridging-mode.html

裡面有提供N15bridge的設定用script檔案

瀏覽後會發現,它的流程和上面說得有些類似,但加了些東西,大流程如下:
1.關閉DHCP(Server和Client)
2.如上設定Bridge
3.設定內部無線網路的ath1介面
4.設定外部無線網路的ath0介面

我在使用時,hostapd一直沒有成功跑起來,因此改使用
iwconfig直接設定,直接用WEP的認證,而不使用wpa了~~

我的script如下:
#!/bin/ash
echo "Setting up LAN bridge"
# 將 DHCP server 和 DHCP client 停止
/usr/bin/killall dnsmasq
/usr/bin/killall -9 udhcpc

# 建立 bridge interface
/usr/sbin/brctl addbr br0
/usr/sbin/brctl stp br0 off
/usr/sbin/brctl setfd br0 0

# 將 eth0 和 ath1(有線 / 無線) 設定清除
/sbin/ifconfig eth0:1 down
/sbin/ifconfig eth0 0.0.0.0
/sbin/ifconfig ath1 0.0.0.0

# 啟動 bridge interface
/sbin/ifconfig br0 up

# 將 eth0 和 ath1(有線 / 無線) 加入到 bridge interface
/usr/sbin/brctl addif br0 ath1
/usr/sbin/brctl addif br0 eth0

# 設定 bridge interface 的 IP(udhcpc為DHCP / ifconfig為手動)
/sbin/udhcpc -i br0 -R # get new IP via dhcp
#/sbin/ifconfig br0 192.168.0.103 # static IP

# 設定防火牆, 允許 bridge interface 的 Input / Output
iptables -A INPUT -i br0 -j ACCEPT
iptables -A OUTPUT -o br0 -j ACCEPT

# add bridge to hostapd.conf and restart hostapd (allows to use WPA)
# 原指令為執行 hostapd 來啟動 ath1 的 AP
# 改為直接用 iwconfig 來啟動
# 因為 hostapd 不熟不清楚設定,hostapd 能支援 wpa...等認證
[ `grep -c bridge=br0 /tmp/hostapd.conf` = "0" ] && echo bridge=br0 >> /tmp/hostapd.conf
/usr/bin/killall killall hostapd
#/usr/sbin/hostapd -B /tmp/hostapd.conf
/usr/sbin/iwconfig ath1 essid HOME mode Master key xxxxxxxxxxxxxxxxxxxxxxxxxx(麻煩請自己取)

# restart public SSID (doesn't work!)
# 重新啟用 FON 的開放連線, 不確定能否使用, 看起來是不能
/sbin/ifdown hotspot
/sbin/ifup hotspot


我們先把它存成/tmp/test.sh,執行看看能不能跑。

確定是ok的,我們把它移到/etc/init.d/讓它在開機時能自動執行,步驟如下:
chmod 755 /tmp/test.sh
mv /tmp/test.sh /etc/init.d/N15bridge


重開機之後,等一陣子,得到了相同的效果,表示我們成功了~~ :D

2007年1月2日

自走車計畫展開

2007年的新計畫是什麼?

我個人來說,我打算開始做8051自走車了。
說起來有些給它丟臉,一直以來都覺得8051自走車很過時,之前還嚴厲批判過8051自走車早該進垃圾桶了,但是,我的新計畫竟然是要做它。

說起來,在高職時,我就去參加過自走車比賽,不過很可惜的,當時的軟硬體都是老師做好的,我們算是掛掛人頭罷了。
話說回來,很多人也許在想,都幾歲了,都什麼年紀了,還要搞8051自走車,也太遜了吧,甚至會有人開始說,那東西簡單了,我都做過了........麻煩這種人來封信吧,給點意見... :D

我的目標很大,我真正希望做的,是把ARM開發板放上去的自走車,而且我希望作坦克車,打算用遙控坦克車來改,在加入了ARM之後,我要有Webcam和Wireless的能力,進一步做出智慧型的車子來玩........
完成了,接著把遙控船抓來改,都放在那邊發霉很久了,對它很不好意思~~
因此我打算分三階段來做:
第一階段先完成8051部份的東西,像是重要的電源電路和感測電路,電源電路完成後,更換更大的元件,用在ARM開發板上,感測元件則和8051的相同,要接上ARM開發板。
第二階段,依據遙控車來做馬達控制,也就是可能會直接跳過達靈頓電路為主的電流放大馬達驅動電路。
能夠完成到這裡,車子大概也差不多了,接著才會開始動船的主意,畢竟船和車子不同,出去了,會回不來低...... :p

以上是我的新年新希望。 :D

新NX 使用心得

2007年到了,在2007年的開始第一天,我做了什麼?

我把我的MythTV重新裝了幾次,因為之前的160G硬碟損毀(過熱),雖然上面沒有影片、沒有MP3,但是上面有之前的所有過程設定檔,一切都要重新來過..... :(

另一方面,也很幸運的把NX的遠端聲音播放弄出來了,加上之前網路分享測試過的,NX的幾個重要機能都try出來了,下面是加入聲音播放的使用心得。

====================================================
NX 使用心得:

NX 是由 NoMachine 這家公司推出的技術,
NoMachine 很大方的將它們的核心技術 NX 以 GPL 的方式開放,
而 FreeNX 則是網路上 OpenSource 社群以 NX 技術為基礎開發的 OpenSource 程式,
目前來說,NoMachine 和 RealVNC 類似,有提供一個免費的版本供人使用,
而 FreeNX 和這個版本相比,目前差異性並不大,
而且網路上的教學,大部分的說明在安裝 FreeNX 的同時,
也是要裝這版免費版,以取得其中的核心 NX 技術來用。

而我自己的使用上,FreeNX 是不會動的,
而 NX Free Editor 則運作順利,且異常容易安裝,
讓我還以為是不是有什麼陷阱.... :p

NX 在 Debian 上得安裝十分容易,
我這邊簡單列出步驟,詳細就不說了~~

1.下載 NX Free Editor 的 NX Server
下載 NX Node
下載 NX Client
上述的 Linux Debian deb 版本

2.依序安裝 NX Client -> NX Node -> NX Server,
在安裝時,會說有相依套件沒裝,此時不用擔心,直接進 aptitude,
接著按「g」,它就會自動把相依套件裝上去

3.設定 /usr/NX/etc/node.cfg,加入
AGENT_EXTRA_OPTIONS_X = "-fp /usr/share/fonts/X11/misc"

原因是,現在的 Debian 在 testing 或 unstable 都已經是 X11R7 了,
對字型的目錄已經改過了,這邊需要指定字型目錄,我是隨便找個字型目錄,
可以用了我就沒在意差異性了~~~

4.按照網頁
http://www.lxnaydesign.net/index.php?option=com_content&task=view&id=92&Itemid=2

解說來進行修改,不然會造成在 X-win 當中,鍵盤完全沒反應(本機、NX 均是),這是 NX 的 bug~~

5.輸入法問題設定
輸入法問題,還是得用 script 的老方法來解決,解法和 VNC 極為雷同,
在 /usr/NX/bin/ 編寫兩個 script 檔,用來對應到 KDE 和 GNOME 的啟動,分別如下:

/usr/NX/bin/KDE.sh
=============================================================
#!/bin/tcsh

setenv LANG zh_TW.UTF-8
setenv XMODIFIERS "@im=SCIM"
setenv GTK_IM_MODULE "xim"
/usr/bin/scim -d
/usr/bin/dbus-launch --exit-with-session startkde
=============================================================

/usr/NX/bin/GNOME.sh
=============================================================
#!/bin/tcsh

setenv LANG zh_TW.UTF-8
setenv XMODIFIERS "@im=SCIM"
setenv GTK_IM_MODULE "xim"
/usr/bin/scim -d
/usr/bin/dbus-launch --exit-with-session gnome-session
=============================================================

寫好之後,變更 script 檔權限,如下:
chmod 755 /usr/NX/bin/*.sh

再來修改設定檔 /usr/NX/etc/node.cfg,如下:

將
COMMAND_START_GNOME="/usr/bin/dbus-launch --exit-with-session gnome-session"

改為
COMMAND_START_GNOME="/usr/NX/bin/GNOME.sh"

將
COMMAND_START_KDE="/usr/bin/dbus-launch --exit-with-session startkde"

改為
COMMAND_START_KDE="/usr/NX/bin/KDE.sh"

即可。

PS:
/usr/bin/dbus-launch 的作用是,它類似 WindowsXP 的登入管理員,讓你下次登入時,恢復上次執行的 session。

==================================================================
(2006-09-02)
因為之前用 VNC,把 Port Map 對應到 5901,
在不希望變更設定的前提下,
打算變更 NX 的連接埠設定,
要怎麼改呢?

基本上,NX 使用 SSH 來進行連接,
因此 NX 只會使用「1個」連接埠,
而預設,這個連接埠是 22,
要變更設定,有一點要注意,
那就是 OpenSSH 也要更改,因為 NX 的 SSH 是相依在 OpenSSH 上的。

下面是設定:

1.新增 SSH連接埠 5901
/etc/ssh/sshd_config
=============================================
# What ports, IPs and protocols we listen for
Port 22
# Use these options to restrict which interfaces/protocols sshd will bind to
...

改為
# What ports, IPs and protocols we listen for
Port 22
Port 5901
# Use these options to restrict which interfaces/protocols sshd will bind to
...

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

2.修改 NX 的 連接埠 的相關設定,
原則上就是改
/usr/NX/etc/server.cfg
/usr/NX/etc/node.cfg

裡面所有的 22,並把它改為 5901,
這邊要注意的是,改完之後,有註解的要把它拿掉。

改成如下:
/usr/NX/etc/server.cfg
=============================================
....
#
# Specify the TCP port where the NX server SSHD daemon is running.
#
SSHD_PORT = "5901"
....
#
# Specify the TCP port where the SSHD daemon is running on the NX SSH
# authentication server.
#
SSHD_AUTH_PORT = "5901"
....
=============================================

/usr/NX/etc/node.cfg
=============================================
# Specify the TCP port where the NX node SSHD daemon is running.
#
SSHD_PORT = "5901"
=============================================

3.重新執行 OpenSSH 和 NX
/etc/init.d/ssh restart
/etc/init.d/nxserver restart

或者心情不好,重新開機也可以~~

即可~~

2007-01-01
==================================================================
新的一年有新的趣味~~


NX 的媒體播放終於測試出來了~~

NX 的影像一開就會放了,但是聲音始終出不來,NX 的聲音怎麼設定?

NX 的聲音部份是使用 esd,也就是 ESounD 這套混音系統,
ESounD 的主要功能是讓 Linux 上多個應用程式能夠同時使用音效卡裝置,
所有的作業系統,通常都只會有一個音效裝置,
要讓一個音效裝置同時給多個程式使用,就需要一個音效系統(混音系統),
因此 Linux/FreeBSD 在幾年前,同時只能有一個程式播放音樂或音效,
這樣的問題和早期 DOS 時代一樣,當進入 KDE/GNOME 後,
因為桌面環境的需要,開始了幾個音效系統的開發,
ESounD(簡稱 ESD 或 esd) 和 aRts 就是兩套當時開始的音效系統,
這類音效系統主要的工作是將所有要播放的聲音進行混音後播放,
因此稱作混音系統~~~

而目前較有名的音效驅動程式有 ALSA 和 OSS,
OSS 是商業的驅動程式,早期提供的很多音效驅動程式都只能試用,
後來逐步開放使用,
ALSA 則是因應 OSS 的發展,開發的 OpenSource 的音效驅動程式,
ALSA/OSS 和 ESounD/aRts 的關係是,ALSA/OSS 提供驅動程式驅動音效卡裝置,
而 ESounD/aRts 則負責讓多個應用程式同時使用 ALSA/OSS。

不過目前的 ALSA 已經很強了,ALSA 本身也內建了混音系統,
儘管說 ALSA 的混音系統聽說不是很好,不過不知道這新聞是多久前的,
一般來說使用上是還ok.......

NX 的多媒體功能,是以 ESounD 為基礎,也就是說,
只要 Linux 能支援 ESounD,NX 就可以遠端聽到聲音,
在現在的 GNOME 上,要開啟 ESounD,
只需要在「桌面->偏好設定->音效」,
在「啟用軟體混音[ESD]」和「播放系統音效」上打勾即可。

而要注意的是,在使用播放軟體時,要注意播放軟體是否支援 ESD,
通常是在安裝套件時會發現,有特別分出 -esd、-alsa、-oss、-arts,
以 vlc 為例,vlc 就有 vlc-plugin-esd、vlc-plugin-arts....等。
================================================