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