2008年6月8日 星期日

欠扁的IP分享器

老哥的一個朋友打電話來請我幫忙,要把一台他們工廠裡面的IP分享器,改裝到他台北辦公室的電腦上。跟我提了一個多月,趁著最近放假,想說這種小事情花不了多少時間,就過去幫忙處理。
到他辦公室之前,我已經請他把撥接的帳號密碼準備好,所以我到了之後,把網路線接好,設定修改了一下,應該OK了吧?拿台機器來測看看能不能上網... 我打開瀏覽器,沒問題,雅虎的首頁很迅速的跑出來,速度還不賴!前後花不到十分鐘。
我正準備離開,老哥的那個朋友問到:「我可以用FTP去把我工廠的資料給抓到這台電腦上嗎?」上網都沒問題了,抓檔案這種基本功能會有什麼問題,馬上弄給你看!我把FTP的軟體安裝上去,把他們工廠的FTP server資料打上去,按下[Connect]... 咦?怎麼停住了?訊息顯示「正在嘗試連線」... 過了一會兒,失敗!?
「會不會是你們FTP server沒開啊?好像連不到ㄟ」我懷疑他們工廠今天放假,機器也跟著關了。「不太可能咧... 我打電話去問問!」襏了電話過去,工廠回覆那台機器開著。那就詭異了... 我改用家裡的電腦試試看好了,我用Terminal Client連線到家裡的電腦,從家裡連進去工廠的FTP server... 成功了!.. 咦?那?什麼從這台電腦就連不到呢?農曆七月已經過了,怎麼會這麼邪門?
會不會是這台電腦本身有防火牆擋住了?試試看別的FTP server好了... 我想起來一個朋友的FTP server網址,把資料設定好之後,一樣按下 [Connect] ... 啊?成功了!那就不是這台電腦的問題啦... IP分享器應該也沒問題啊... 要不然應該每一台FTP server都進不去才對...
可能剛剛手氣不好,再試一次好了!應該是我昨天沒睡飽,IP位址打錯了... 我仔細核對了資料... 沒錯,就是這樣,應該可以吧... 我滿懷著信心按下了 [Connect] .... 怎麼又停住了... 哇咧... 還是失敗!真是不可思議...
我左思右想,後來又測試了幾個網站,奇怪的是,就是他們工廠的電腦連不進去。更精確地說,就是從這台電腦連不到他們工廠的FTP server(因為我請朋友從他們家裡去連也沒有問題)。真是見鬼了!後來實在沒辦法,我先把IP分享器移除,直接把他們的電腦接上ADSL。測試結果,成功!然後把IP分享器接上,果然又不行!那我百分之一百確定就是這個IP分享器在搞鬼了,可是到底有什麼地方搞錯了呢?
我把這個IP分享器裡面所有的設定都掃描了一遍,甚至把這台電腦放到DMZ去了,不行就是不行... 天啊!搞什麼鬼啊... 你們這間辦公室被詛咒了嗎?
老哥的朋友見我忙了一個多小時還沒搞定,又不敢出聲影響我,他自己就從另外一台電腦上網,看雅虎上面的新聞。我坐在後面看著他,心裡還自嘀咕著:「他的電腦也是透過同一個IP分享器出去的,都可以看雅虎新聞,那就是網路沒問題啊... 到底哪個環節出錯了呢?」後來他嘗試連進去他們工廠的監視系統,突然他愣了一下... 「奇怪,這個是什麼?怎麼突然要我輸入帳號密碼呢?」我好奇探頭過去看了看,我也愣住了... 那個是IP分享器的管理畫面所跳出來的密碼輸入畫面啊...
「你們監視系統的IP是什麼?」我好奇的問了一下「就是60.xxx.xxx.40啊!以前都不會問咧,怎麼突然問我帳號密碼呢?」
啊... 原來如此... 我突然覺得自己找到問題了... 我馬上登入IP分享器的管理畫面,查了一下IP設定... 果然... 這個爛東西... 害我找半天,只差沒有請神了...
這台IP分享器原本是在工廠裡面用,就是裝在監視系統上面,對外的IP是固定IP,也就是60.xxx.xxx.40,我雖然把他改成透過撥接上網的PPPoE模式,但是看起來這個IP分享器裡面已經把60.xxx.xxx.40相關的routing table給儲存起來了,所以只要是連到這些個IP位址的都不會出去Internet,而是在IP分享器所管理的這個區域裡面繞圈圈,難怪其他的FTP server都可以連得到,就是工廠裡的機器連不上...
後來把IP分享器回歸出廠設定之後(到現在才覺得這個功能還真的很需要),重新設定好,再測試一下... 終於搞定了!這時候已經過了兩個多小時了... 天啊!
提醒各位,記得... 拿到不是全新的IP分享器,最好做一次「回歸出廠設定」... 免得撞邪!

2008年6月6日 星期五

注音輸入法當掉的意外收穫 - Yahoo! 注音輸入法

今天電腦不知道發什麼神經,突然之間中文打不出來了,後來是重新下載注音輸入法來安裝之後才解決的。

不過意外的發現Yahoo也出了一個很酷的注音輸入法,認字的精確程度很高(不過沒有到Yahoo自己宣稱的百分之百就是了,但是真的是夠高了,我幾乎很少需要選字),據說他的選字規則是依據網頁的內容跟搜尋字所整理出來的,不管如何,真的值得一試,執行程式可以從奇摩雅虎的下載專區裡面找到。

在 Google 的部落格系統上推薦 Yahoo 的東西會不會怪怪的...

使用 showModalDialog 的問題 (續集)

真想不到使用 showModalDialog 這個功能的問題還沒有結束...

之前才很高興的發現解決 showModalDialog 在 Postback 時會建立另外一個視窗的方法,沒想到測試的時候遇到的問題完全把這兩天花的功夫給毀了...

Firefox 居然不支援 showModalDialog!

這還真是有夠傷腦筋的,網路上爬文,發現很多人建議在 feature 這個參數裡面加上 modal=yes 這個字串,不過試驗的結果跟很多人的回應一樣。加上這個修飾字其實並沒有真的讓視窗變成 modal 模式,這只是個假象!

鑑於 Firefox 使用者的數量與日俱增,我們做網站的時候又不能不考量這一些使用者,還是得想個辦法解決才行。找了半天,發現了一個還不錯的方法,就是純粹用 DHTML 去模擬 modal dialog window,有人建議我用 AJAX 套件裡面的那個 Modal Dialog,這個方法其實也不錯,只是說... 先前以為很簡單的事情,已經因為產生新視窗的問題浪費了一天,如果又要在把AJAX套件裝進去,我看又有得摸了!

另外一方面,AJAX套件雖然好用,不過我們發現整個套件的規模實在有夠大,光下載他的 client side JavaScript 就超過了 200KB,為了使用這麼一個 Modal Dialog 的功能,然後要花這種成本,從使用者端來看,好像又有點太誇張了。

後來我們用的東西是在 http://www.dynamicdrive.com/dynamicindex8/dhtmlwindow/dhtmlmodal.htm 所找到的,使用的方式跟 window.open 這個 method 類似,裡面也提供了母視窗與子視窗做資料交換的方法。重點是,網頁主要只需 reference 兩個 .js 檔案就好了,大小約莫 20+ KB,這可比 AJAX 套件要感覺經濟、輕巧得多了。

不知道是該 complain Firefox 還是微軟,因為還沒時間去查 showModalDialog 是不是所謂的標準,不過 ... 好像也不重要了,哈!

2008年6月5日 星期四

使用 showModalDialog 的問題

最近在實做一個網頁上功能,主要是得在 Web browser 上彈出一個視窗來顯示另外一個網頁的內容,然後使用者在這個網頁上面可以進行一些操作。本來以為很簡單,花不了多少時間就可以解決,結果遇到一個很詭異的現象:

我使用 JavaScript 中的 window.showModalDialog 來顯示這個讓使用者操作的網頁,本來以為使用者按下網頁中的按鈕之後,我 Postback 的程式處理完,就可以把結果還是出現在這個 web dialog 的視窗裡面,沒有想到瀏覽器居然另外開了一個視窗出來顯示結果。

問了一個朋友,他說曾經在論壇上面看到有人提到 ASP.NET 1.1 有這個問題,於是乎我就啟動萬能的谷歌進行搜索,果然發現有人建議在網頁的 <head> section 裡面加上下面這一段來解決這個問題:

<base target="_self">

加入之後,果然一切正常。這個問題也花了我們家工程師兩天的時間,真是 $%^&# 的微軟,藏這麼多眉角在裡面做什麼,鼓勵大家使用谷歌嗎?