在雲林讀書或工作,最好的一項晨間、下班(課)休閒活動,就是到附近的鄉間小路跑步,不必花錢到健身房,也不必開車或騎車,大老遠找新鮮空氣。只要換上運動鞋、褲,就可以充分利用忙裡偷閒的半小時,享受流汗的有氧運動。
還記得以前在正心中學念書,學校就用「調步」活動鼓勵學生課後跑步健身;每年還有一次 25 公里健走(但為了拼速度,學長都叫你快快跑),平時是否有多練習跑步,在這個時候就會有明顯的體能差別。那時有許多功課很優秀的同學,都有一個共通點,就是很愛利用跑步鍛鍊體力和專注力;在寒冷的天氣,如果能晨起跑步,更是能磨練意志。
跑步的好處,相信有跑過的人都知道;沒跑過的人,只要多注意有跑步習慣的朋友,就會發現長期累積下來的差異。
剛開始練習跑步,要克服的問題不少,要練習調節呼吸,忍耐全身肌肉酸痛,但只要持續每天維持跑步半小時的習慣,通常只要兩個星期時間,就會發現身體的改變,不僅可以連續跑個幾公里,平時做事也會更有精神、效率更高。
曾有段時間我不喜歡跑步,平時的有氧運動改騎單車,因為我覺得跑步對雙腳、膝蓋是一種損耗的運動;但是工作之後能騎車的時間變少、變短,如果準時下班,通常也只會有半小時左右的空檔可用,半小時光準備及保養清潔單車的時間都不太夠;相對之下,跑步比較省時,而且連續跑半小時就會有不錯的運動效果。
在騎車之後我開始比較注重運動的裝備,也開始注意跑步時應該有哪些裝備。跑步是個不需要投資太多裝備的運動,還記得以前隨便換雙球鞋,甚至打赤腳就去跑,但是腳掌折騰一段時間後,就變得需要暫停、休息一段時間,因此跑步的習慣總是斷斷續續。
為養成跑步的習慣,減少運動的傷害,我相信跑步專用的運動鞋肯定會有效果;我最近新買的跑鞋是 Mizuno Inspire 7。
2011年11月29日
綠林新款電子書閱讀器 Greenbook EZRead Touch 測試
上個月曾介紹綠林推出的 EZRead Touch 新款閱讀器,我自己也訂購一台優惠預購版。今天終於收到廠商寄來的包裹,趕緊打開記錄一下。
包裝盒比一本賈伯斯傳還小一些;既然是電子書,包裝環保是應該的。
電子書當然不會附紙本的說明手冊,包裝盒裡面唯一的說明就是這張(使用手冊在書庫)。
Special Offer 版本多了「廣告」,所以價格比較便宜,但是廣告不會影響閱讀,只有在關機(待機)畫面出現。因為 EInk 顯示器本身只要沒有改變畫面,就不會耗電,利用這個特性,在關機後長時間顯示廣告是個好點子。
EZRead 和官方的線上書城有緊密的結合,因此主選單第一個選項就是「線上書城」。如果要閱讀自己蒐集的電子書,可以在主選單找到「書庫」,瀏覽儲存在 Micro SD 記憶卡的電子書檔案。這台閱讀器本身並沒有附記憶卡,必須自己添購。
電子紙(EInk)的顯示技術優點是效果很接近紙張印刷,相較背光式的螢幕比較不會傷眼,在大太陽底下也可以輕鬆閱讀(但是光線不足就看不清楚)。
電子紙有一項難以克服的缺點,就是畫面的更新速度不快,閱讀時換頁的動作,必須整個頁面重新顯示一次,如果要完整的刷新畫面,延遲問題將會相當嚴重。EZRead Touch 解決顯示延遲的做法,是換頁時先不完全清除舊畫面,只有在換到第六頁才完全清除。這個做法改善延遲問題,但是會讓螢幕殘留舊畫面,如下圖。
雖然有舊畫面殘留,但是在正常的閱讀距離(大於30公分),幾乎不會注意到這些殘留的文字,所以也就不成問題。
至於換頁是否流暢呢?這款閱讀器採用電容式觸控面板,滑動及點選的操作算是靈敏不太費力。手指左右滑過螢幕,通常約半秒左右就會開始做換頁動作,換頁顯示的時間接近一秒。但偶爾會發生卡住(Delay)的現象,需要多等幾秒機器才會回應。在以下影片中可以看到換頁效果。
我使用過 Android 手機、iPad 平板、Android 平板當閱讀器,這款 EZRead Touch 算是我的第四台閱讀裝置。實際試用的感想是,它能滿足部分閱讀需求,但僅限於部分。
例如,它很適合:
包裝盒比一本賈伯斯傳還小一些;既然是電子書,包裝環保是應該的。
Special Offer $2,880 算是比較不會痛的價格! |
電子書當然不會附紙本的說明手冊,包裝盒裡面唯一的說明就是這張(使用手冊在書庫)。
Special Offer 版本多了「廣告」,所以價格比較便宜,但是廣告不會影響閱讀,只有在關機(待機)畫面出現。因為 EInk 顯示器本身只要沒有改變畫面,就不會耗電,利用這個特性,在關機後長時間顯示廣告是個好點子。
EZRead 和官方的線上書城有緊密的結合,因此主選單第一個選項就是「線上書城」。如果要閱讀自己蒐集的電子書,可以在主選單找到「書庫」,瀏覽儲存在 Micro SD 記憶卡的電子書檔案。這台閱讀器本身並沒有附記憶卡,必須自己添購。
電子紙(EInk)的顯示技術優點是效果很接近紙張印刷,相較背光式的螢幕比較不會傷眼,在大太陽底下也可以輕鬆閱讀(但是光線不足就看不清楚)。
電子紙有一項難以克服的缺點,就是畫面的更新速度不快,閱讀時換頁的動作,必須整個頁面重新顯示一次,如果要完整的刷新畫面,延遲問題將會相當嚴重。EZRead Touch 解決顯示延遲的做法,是換頁時先不完全清除舊畫面,只有在換到第六頁才完全清除。這個做法改善延遲問題,但是會讓螢幕殘留舊畫面,如下圖。
雖然有舊畫面殘留,但是在正常的閱讀距離(大於30公分),幾乎不會注意到這些殘留的文字,所以也就不成問題。
至於換頁是否流暢呢?這款閱讀器採用電容式觸控面板,滑動及點選的操作算是靈敏不太費力。手指左右滑過螢幕,通常約半秒左右就會開始做換頁動作,換頁顯示的時間接近一秒。但偶爾會發生卡住(Delay)的現象,需要多等幾秒機器才會回應。在以下影片中可以看到換頁效果。
我使用過 Android 手機、iPad 平板、Android 平板當閱讀器,這款 EZRead Touch 算是我的第四台閱讀裝置。實際試用的感想是,它能滿足部分閱讀需求,但僅限於部分。
例如,它很適合:
- 以文字為主的文學作品、小說等。
- 以文字為主的英文電子書,搭配內建的電子辭典輔助閱讀。
但有些用途,就可以考慮使用別種裝置,例如:
- 很多照片、圖片內容的書,如雜誌、漫畫。除了螢幕只能顯示黑白外,它的軟體並不適合圖片的閱覽。
- 內容需要經常參照、檢索,必須一次閱讀多個段落才容易理解的電子書。除了螢幕尺寸小的問題,翻頁速度不夠快、軟體的設計本身也不易快速查閱。
對於國高中生來說,我認為它會是一個不錯的禮物,因為在這個求學階段,需要大量廣泛閱讀文字為主的書籍,包括很多可以免費取得的公版書;電子紙顯示器也可以避免近視度速加深太快。
七吋的螢幕並不大,但是以純文字的電子書閱讀來說,算是夠用,EZRead Touch 的體積、厚度很方便攜帶、也容易一手掌握,觸控面板也讓它更有翻頁的感覺(而不是一直咖咖咖地按按鈕);平時有文字閱讀習慣的朋友,EZRead Touch 算是價格便宜、功能也堪用(但電子書格式建議以 ePub 為主,PDF 的閱讀效果並不是很理想)。
七吋的螢幕並不大,但是以純文字的電子書閱讀來說,算是夠用,EZRead Touch 的體積、厚度很方便攜帶、也容易一手掌握,觸控面板也讓它更有翻頁的感覺(而不是一直咖咖咖地按按鈕);平時有文字閱讀習慣的朋友,EZRead Touch 算是價格便宜、功能也堪用(但電子書格式建議以 ePub 為主,PDF 的閱讀效果並不是很理想)。
2011年11月26日
DD-WRT Repeater Bridge Mode 讓無線訊號範圍更廣
舊的無線分享器在過保固之後,可以刷 DD-WRT 韌體,就可以讓分享器的功能大解放。(例如某些 2,000 元以下的機種刷機後,就可以擁有 6,000 元以上才會內建的功能。)
在公寓的不同房間,或透天厝的不同樓層,無線訊號只要距離遠就會變得很微弱。即使改裝 10dBi 以上的天線,或是改用指向型天線,也不一定能完全解決訊號衰弱的困擾。
同時用多部分享器是一種辦法;但是從路由器拉線到多部分享器,除了佈線的麻煩外,還需要佔去多組 IP 位址。
有些分享器支援 WDS 模式,可以讓多部分享器一起工作,但這種模式不容易設定。在 DD-WRT 可以發現 Repeater Bridge 模式,這個模式很簡單,通常也管用。
主分享器(連接路由器):TP-Link TL-WR1043ND
中繼分享器(連接主分享器):ASUS WL-520GPv2 (刷 DD-WRT 韌體)
主分享器的 SSID 為 TPLinkNetwork,採用 WPA2 + TKIP 加密模式。
以下的步驟可以將 DD-WRT 設定為中繼器。
1. 機器狀態 / 無線網路 / 存取點 & 用戶端設定 / 選址(Site Survey)
2. 選擇主分享器的 SSID (TPLinkNetwork),再按「加入」按鈕
3. 無線網路 / 基本設定 / 檢查無線網路名(SSID)是否已帶入
4. 將 無線模式 切換為「Repeater Bridge」,按儲存設定
5. Virtual 虛擬介面 / 新增一個虛擬介面,修改 SSID,再次儲存設定
6. 無線網路 / 無線安全 / 設定實體和虛擬介面的加密模式、演算法、金鑰,此兩組設定都必須跟主分享器一模一樣。再次儲存設定。
7. 系統安全 / 防火牆 / 將 SPI 防火牆關閉,儲存設定。
8. 再次確認步驟無誤,按「儲存重啟」,等候分享器重新啟動完成。
設定完成後,中繼分享器擁有自己的 SSID,但無線密碼和主分享器完全相同。在 PC / NB 連接中繼分享器,無線訊號會藉由這台分享器中繼,將訊號再傳送給主分享器。
因此,各樓層平面可以配置一部中繼分享器,接收來自主分享器的訊號,再將訊號分享給個樓層的電腦。由於網路傳輸過程會經過兩次無線網路,所以傳輸效能會耗損兩次,因此必須確保中繼器和主分享器之間的訊號品質良好。
在公寓的不同房間,或透天厝的不同樓層,無線訊號只要距離遠就會變得很微弱。即使改裝 10dBi 以上的天線,或是改用指向型天線,也不一定能完全解決訊號衰弱的困擾。
同時用多部分享器是一種辦法;但是從路由器拉線到多部分享器,除了佈線的麻煩外,還需要佔去多組 IP 位址。
有些分享器支援 WDS 模式,可以讓多部分享器一起工作,但這種模式不容易設定。在 DD-WRT 可以發現 Repeater Bridge 模式,這個模式很簡單,通常也管用。
主分享器(連接路由器):TP-Link TL-WR1043ND
中繼分享器(連接主分享器):ASUS WL-520GPv2 (刷 DD-WRT 韌體)
主分享器的 SSID 為 TPLinkNetwork,採用 WPA2 + TKIP 加密模式。
以下的步驟可以將 DD-WRT 設定為中繼器。
1. 機器狀態 / 無線網路 / 存取點 & 用戶端設定 / 選址(Site Survey)
2. 選擇主分享器的 SSID (TPLinkNetwork),再按「加入」按鈕
3. 無線網路 / 基本設定 / 檢查無線網路名(SSID)是否已帶入
4. 將 無線模式 切換為「Repeater Bridge」,按儲存設定
5. Virtual 虛擬介面 / 新增一個虛擬介面,修改 SSID,再次儲存設定
6. 無線網路 / 無線安全 / 設定實體和虛擬介面的加密模式、演算法、金鑰,此兩組設定都必須跟主分享器一模一樣。再次儲存設定。
7. 系統安全 / 防火牆 / 將 SPI 防火牆關閉,儲存設定。
8. 再次確認步驟無誤,按「儲存重啟」,等候分享器重新啟動完成。
設定完成後,中繼分享器擁有自己的 SSID,但無線密碼和主分享器完全相同。在 PC / NB 連接中繼分享器,無線訊號會藉由這台分享器中繼,將訊號再傳送給主分享器。
因此,各樓層平面可以配置一部中繼分享器,接收來自主分享器的訊號,再將訊號分享給個樓層的電腦。由於網路傳輸過程會經過兩次無線網路,所以傳輸效能會耗損兩次,因此必須確保中繼器和主分享器之間的訊號品質良好。
[試用] 台灣製造才是好襪!titan 全方位運動襪實測
大家平常是否有固定的運動習慣呢?
筆者平時自己較常騎單車或慢跑,利用下班後的半小時,或晚上擠出一、二個小時;週末有時也會揪伴打羽球、登山。
雖然運動只是當做休閒嗜好,目的只是保持身體健康,但為了減少運動傷害,需要的配備還是盡量準備齊全。
我覺得鞋子很重要;記得剛開始打羽球的時候,隨便穿一雙布鞋就上場,結果再跨出一個比較大的動作後,右腳就扭到痛了一個多星期。另一次慘痛經驗是在某次登山時,下山因天雨路滑,鞋子踩在溼淋淋的石頭上一點摩擦力都沒有,很驚險才平安抵達山下,但一路上摔了不少次。
所以每次接觸不同的運動,都會注意一下有沒有比較合適的鞋款,畢竟技不如人,總要在裝備上扳回一成。也因此在家裡裝修時,我特別要求鞋櫃要有兩公尺寬,這樣才方便收納買進來的新鞋。
以前我沒想過襪子有什麼重要,因為一直都是穿著自己去夜市買,或是媽媽從菜市場買回來的,那種三雙一百的便宜襪子,反正穿壞了就丟掉。直到在國軍 on-line 的那一年,發現劣質的襪子穿沒多久就被迷彩膠鞋磨破,消耗量大,算一算也沒便宜到,而且腳底常常冒水泡。這才買了幾雙品質好一點的襪子,感覺耐穿得多。
去年我買過單車襪和雪襪,但從來沒想過「幫襪子寫開箱文」這件事!
筆者平時自己較常騎單車或慢跑,利用下班後的半小時,或晚上擠出一、二個小時;週末有時也會揪伴打羽球、登山。
雖然運動只是當做休閒嗜好,目的只是保持身體健康,但為了減少運動傷害,需要的配備還是盡量準備齊全。
我覺得鞋子很重要;記得剛開始打羽球的時候,隨便穿一雙布鞋就上場,結果再跨出一個比較大的動作後,右腳就扭到痛了一個多星期。另一次慘痛經驗是在某次登山時,下山因天雨路滑,鞋子踩在溼淋淋的石頭上一點摩擦力都沒有,很驚險才平安抵達山下,但一路上摔了不少次。
所以每次接觸不同的運動,都會注意一下有沒有比較合適的鞋款,畢竟技不如人,總要在裝備上扳回一成。也因此在家裡裝修時,我特別要求鞋櫃要有兩公尺寬,這樣才方便收納買進來的新鞋。
以前我沒想過襪子有什麼重要,因為一直都是穿著自己去夜市買,或是媽媽從菜市場買回來的,那種三雙一百的便宜襪子,反正穿壞了就丟掉。直到在國軍 on-line 的那一年,發現劣質的襪子穿沒多久就被迷彩膠鞋磨破,消耗量大,算一算也沒便宜到,而且腳底常常冒水泡。這才買了幾雙品質好一點的襪子,感覺耐穿得多。
去年我買過單車襪和雪襪,但從來沒想過「幫襪子寫開箱文」這件事!
這些襪子從來沒機會被開箱 :-) |
2011年11月24日
很棒的 GitHub for Mac 發佈新版
由 GitHub 發行的「GitHub for Mac」,好軟體不用多介紹,趕快下載就對了。
mac.github.com
支援 Snow Leopard / Lion,免安裝,下載解壓縮後,拖曳到應用程式集,執行。
新版多了什麼功能?看這裡!
影片詳解,以下!
2011年11月23日
信仰需要仰賴閱讀與思辨尋找真理
馬來西亞的旅行,我看見許多不同國家的伊斯蘭教徒,有身著黑衣或白袍其他國家旅客,也有包著彩色頭巾搭配牛仔褲的當地人。這個地方包容許多宗教;但伊斯蘭教是很明確的國教,很多地方都有清真寺,下午會聽到空氣中瀰漫禱告樂聲。
如果信仰重要,那信仰從何而來就更加扮演關鍵角色。
我認為「閱讀」是一個很重要的信仰來源。
長年在台灣生活,對伊斯蘭教的刻板印象,從新聞、書刊或網路的片面報導而來。我想藉著一趟旅行,除了體驗自然風情,也到異地探訪不同的宗教及文化。
我感受到許多建築的不同,還有生活習慣的差異。例如在速食餐廳(如麥當X等),你會看到牆上貼著 HALAL 認證的標章;這是由阿拉許可的「清真認證食品」,如果少了認證就會讓許多人不願意買,但是產品只要通過阿拉認證,銷售到伊斯蘭國家就可以賣得很好。
伊斯蘭對環境保護的重視,也很容易感受到。例如在繁華的首都吉隆坡,最精華的市中心仍有大片公園綠地(KLCC Park),即使遊客人來人往,地面、角落仍維持異常的乾淨。
當信仰在社會文化中,被多數人相信、落實之後,會形成一股潛移默化的力量。可以讓城市展現獨特的風貌,也可以讓群眾的生活有道德的準則。許多法律不易規範的細節,信仰卻能夠鉅細靡遺囊括。
如果信仰重要,那信仰從何而來就更加扮演關鍵角色。
我認為「閱讀」是一個很重要的信仰來源。
我相信能夠流傳千古的經文,一定存有「道理」;可是如果從「讀經」變成「唸經」,只是口裡照著念,只是盡可能遵循別人告訴你的教條,那就很容易深陷一場立意良善的大騙局。
若要真正熟讀一篇文章,不僅要看每一字每一句,更要理解字裡行間的涵意,也要經過延伸閱讀,對文章的內容進行查證,讓自己累積足夠的知識,最後能夠對這篇文章提出批判、回應,才是真正的讀進去、吸收。
若只是按照每一字、每一句不斷重複唸出來,即使唸了一百次、一千次,也只能算是熟悉這篇文章的朗誦,只能看到表象。
如果只是唸,而不讀;只是信,而不查證,很容易陷入騙局。因為語言的隔閡與限制,我們多數人無法接觸經文的原文,只看他人詮釋過的譯本。翻譯本來是讓思想可以更廣為流傳,沒有什麼不好;但如果詮釋的版本如果被加料,而信仰的人本身又只是照著唸,查證不能形成這個信仰共有的風氣,就等於人在尋求信仰真諦的路上被放了永遠無法突破的屏障。
Lesley Hazleton 在 TED 的一場演說中,談論有關她閱讀阿拉伯文版「古蘭經」。也許這和你、我,和我們周遭多數人的信仰比較無關,但也因此更容易以旁觀的角度,看待信仰的來源如果缺少真正的閱讀,將會發生什麼問題。
Lesley Hazleton 在 TED 的一場演說中,談論有關她閱讀阿拉伯文版「古蘭經」。也許這和你、我,和我們周遭多數人的信仰比較無關,但也因此更容易以旁觀的角度,看待信仰的來源如果缺少真正的閱讀,將會發生什麼問題。
2011年11月22日
GitHub 也推短網址服務 git.io
GitHub 是目前最火紅的開放源碼專案代管服務,目前有超過百萬位註冊會員,並建立超過 300 萬個 Repository。學習 Git 版本控制、擁有一組 GitHub 帳號,就可以將自己開發的軟體原始碼與全世界分享,並透過參與、觀摩優秀的專案和源碼,精進自己的程式設計能力。
Git.io 是 GitHub 的縮短網址(URL Shortener)服務,它只適用 GitHub 提供的服務,包括 Gist(程式碼的剪貼簿)。
使用 curl 指令,就可以建立一組 git.io 的短網址。
curl -i http://git.io -F "url=https://gist.github.com/1372738" | grep Location
執行結果:
Location: http://git.io/iKe9wQ
Git.io 的檢查規則如下,目前僅適用 gist.github.com 及 github.com 兩個 hostname。
/^(gist\.)?github\.com$/
只要 hostname 符合這個規則,包括在 github.com 的個人或組織專頁(http://github.com/個人或組織名稱),或是一個 repository(http://github.com/個人或組織名稱/repository名稱),以及某個 repository 目錄或檔案,都可以建立短網址。
有趣的是,Git.io 允許自訂短網址,但是「先搶先贏」。例如想要將 github.com/lyhcode 縮短為 git.io/lyh ,只要再加上 code= 的參數。
curl -i http://git.io -F "url=https://github.com/lyhcode" -F "code=lyh" | grep Location
執行結果:
Location: http://git.io/lyh
每次都輸入 curl 指令有點麻煩,可以在 ~/.gitconfig 加入以下設定:
[alias]
shorten = "!sh -c 'curl -i http://git.io -F url=$1' -"
shorten2 = "!sh -c 'curl -i http://git.io -F url=$1 -F code=$2' -"
Git.io 是 GitHub 的縮短網址(URL Shortener)服務,它只適用 GitHub 提供的服務,包括 Gist(程式碼的剪貼簿)。
使用 curl 指令,就可以建立一組 git.io 的短網址。
curl -i http://git.io -F "url=https://gist.github.com/1372738" | grep Location
執行結果:
Location: http://git.io/iKe9wQ
Git.io 的檢查規則如下,目前僅適用 gist.github.com 及 github.com 兩個 hostname。
/^(gist\.)?github\.com$/
只要 hostname 符合這個規則,包括在 github.com 的個人或組織專頁(http://github.com/個人或組織名稱),或是一個 repository(http://github.com/個人或組織名稱/repository名稱),以及某個 repository 目錄或檔案,都可以建立短網址。
有趣的是,Git.io 允許自訂短網址,但是「先搶先贏」。例如想要將 github.com/lyhcode 縮短為 git.io/lyh ,只要再加上 code= 的參數。
curl -i http://git.io -F "url=https://github.com/lyhcode" -F "code=lyh" | grep Location
執行結果:
Location: http://git.io/lyh
每次都輸入 curl 指令有點麻煩,可以在 ~/.gitconfig 加入以下設定:
[alias]
shorten = "!sh -c 'curl -i http://git.io -F url=$1' -"
shorten2 = "!sh -c 'curl -i http://git.io -F url=$1 -F code=$2' -"
之後只要用 git shorten 指令即可縮短網址。
git shorten https://gist.github.com/1372738
git shorten2 https://lyhcode.com/lyhcode lyh
git shorten https://gist.github.com/1372738
git shorten2 https://lyhcode.com/lyhcode lyh
2011年11月21日
一分鐘認識 Chicken Scheme
Scheme 是 Lisp 程式語言家族的成員。
http://www.schemers.org/
Scheme 早在 1975 年就誕生,迄今仍被用於許多國外知名大學的程式語言課程。學好 Scheme 程式設計,能夠真正弄懂 functional programming。日後要使用 fashion 的現代程式語言,如 JavaScript、Scala 時,就可以更容易上手。在 structured、object-oriented、functional programming 等不同風格的程式設計之間游刃有餘。
Chicken 是 Scheme 的編譯器(Compiler)。
http://call-cc.org/
Chicken 支援常見的各種作業系統,如 *BSD, Linux, Mac OS X, Solaris, Windows 等。它支援 Scheme 的 R5RS 標準,並且能夠將 Scheme 程式碼轉成 C 語言的原始碼,或者編譯成作業系統原生的函式庫(如 Unix 的 .so 或 Windows 的 .dll)。
# covert to fact.c
csc fact.ss
# compile into fact.so
csc -dynamic fact.ss
Chicken 也可以用來開發 Web Application,它甚至內建支援 XML, JSON 的資料處理。
如果你有機會學 Scheme,可以試著用 Chicken 幫自己製造一個小玩具。
延伸閱讀
http://www.schemers.org/
Scheme 早在 1975 年就誕生,迄今仍被用於許多國外知名大學的程式語言課程。學好 Scheme 程式設計,能夠真正弄懂 functional programming。日後要使用 fashion 的現代程式語言,如 JavaScript、Scala 時,就可以更容易上手。在 structured、object-oriented、functional programming 等不同風格的程式設計之間游刃有餘。
Chicken 是 Scheme 的編譯器(Compiler)。
http://call-cc.org/
Chicken 支援常見的各種作業系統,如 *BSD, Linux, Mac OS X, Solaris, Windows 等。它支援 Scheme 的 R5RS 標準,並且能夠將 Scheme 程式碼轉成 C 語言的原始碼,或者編譯成作業系統原生的函式庫(如 Unix 的 .so 或 Windows 的 .dll)。
# covert to fact.c
csc fact.ss
# compile into fact.so
csc -dynamic fact.ss
Chicken 也可以用來開發 Web Application,它甚至內建支援 XML, JSON 的資料處理。
如果你有機會學 Scheme,可以試著用 Chicken 幫自己製造一個小玩具。
延伸閱讀
2011年11月17日
用 Groovy + SwingBuilder + JEditTextArea 快速打造輕量化程式碼編輯器
自己打造一個專屬的程式碼編輯器,要花多少時間?寫幾行代碼呢?
這個小小的範例,使用 Groovy(輕快零負擔的 Java 方言)、SwingBuilder(簡潔不油膩的 GUI 描述語言)、JEditTextArea(來自 jEdit 的程式碼編輯元件),不到 20 行程式碼,就可以完成一個支援 Syntax Highlight 的程式碼編輯器。
這個小小的範例,使用 Groovy(輕快零負擔的 Java 方言)、SwingBuilder(簡潔不油膩的 GUI 描述語言)、JEditTextArea(來自 jEdit 的程式碼編輯元件),不到 20 行程式碼,就可以完成一個支援 Syntax Highlight 的程式碼編輯器。
用 Readability 讓網頁更容易閱讀
Readability 是一個免費的服務,可以將網頁內容轉換為更好閱讀的格式。
http://www.readability.com/
Readability 支援的裝置種類非常多 : )
以 Google Chrome 瀏覽器為例,點一下 Download Now 就會開始下載安裝程式,安裝後在瀏覽器視窗會增加一顆沙發按鈕。看到需要更容易閱讀的網頁,使用 Read Now 就對了(還可以傳送到 Kindle ,這實在太酷了!)。
第一次使用 Readability,會要求填入註冊資料(只有三個欄位)。
以玩物尚誌的文章為例,本來充斥許多廣告。
使用 Readability 之後,即使在筆電上使用瀏覽器,看起來也會像電子書閱讀器一樣舒適。
轉換過的網頁,會保留記錄在 Readability 的個人區,登入後就能看到。
這些經過轉換、更好閱讀的文章,可以加註星星,也可以透過 Facebook / Twitter 分享給朋友。
http://www.readability.com/
Readability 是免費的服務 |
Readability 支援的裝置種類非常多 : )
以 Google Chrome 瀏覽器為例,點一下 Download Now 就會開始下載安裝程式,安裝後在瀏覽器視窗會增加一顆沙發按鈕。看到需要更容易閱讀的網頁,使用 Read Now 就對了(還可以傳送到 Kindle ,這實在太酷了!)。
第一次使用 Readability,會要求填入註冊資料(只有三個欄位)。
以玩物尚誌的文章為例,本來充斥許多廣告。
轉換過的網頁,會保留記錄在 Readability 的個人區,登入後就能看到。
Groovy + SwingBuilder 筆記 20111117
SwingBuilder 是 Groovy 開發視窗(GUI)程式的領域描述語言(DSL)。
文件
設定外觀(LookAndFell)
frame (...) {
lookAndFeel('system') //配合各種作業系統的原生介面(推薦)
}
很棒的 actionPerformed 事件實作(使用 Groovy Closure)
button (text: 'Click Me', actionPerformed: {
println "You hurt me."
})
很棒的表格布局(TableLayout)
tableLayout {
tr {
td {
label (text: 'colname')
}
td {
textField (text: 'something')
}
}
}
Ubuntu Unity 桌面會發生視窗標題列消失問題
frame (..., locationRelativeTo: null)
使用 Mac OS X 風格的選單(選單移到最上方)
System.setProperty("apple.laf.useScreenMenuBar", "true")
文件
- Swing Builder 這個官方的說明提供幾個簡單的範例。
- GUI Programming with Groovy 提供各種 Builder 的詳細說明(但範例相當不完整)。
設定外觀(LookAndFell)
frame (...) {
lookAndFeel('system') //配合各種作業系統的原生介面(推薦)
}
很棒的 actionPerformed 事件實作(使用 Groovy Closure)
button (text: 'Click Me', actionPerformed: {
println "You hurt me."
})
很棒的表格布局(TableLayout)
tableLayout {
tr {
td {
label (text: 'colname')
}
td {
textField (text: 'something')
}
}
}
Ubuntu Unity 桌面會發生視窗標題列消失問題
frame (..., locationRelativeTo: null)
使用 Mac OS X 風格的選單(選單移到最上方)
System.setProperty("apple.laf.useScreenMenuBar", "true")
2011年11月16日
MacVim 當蘋果遇見歷久彌新的老牌文字編輯器
Vim 是一套歷久彌新的文字編輯器,它也是程式設計師 Level Up 必學的工具之一!在學習 Vim 一段時間後,可以用它打造個人化的編輯器(或開發環境),讓工作效率 Up Up。
這篇文章的主題是介紹在 Mac 下的 Vim 軟體。
Mac OS X 作為一款廣受程式設計師喜愛的作業系統,當然是買來就已經內建 VIM 軟體。在終端機下執行「vim」指令,就可以打開這個編輯器。
雖然剛入門的門檻稍微高,但 Vim 相當值得學習,因為它不管在 Windows、Linux、FreeBSD、Mac 或其他 Unix 系統都同樣管用;對於經常需要登入遠端伺服器或工作站(透過 SSH 或 Telnet),通常系統上也會內建 Vim,若需要遠端編輯設定檔或程式碼,學會操作終端機下的 Vim 相當管用。
但是在講求華麗桌面環境的現今,我們可以尋求更時髦的 Vim,在 Windows 或 Linux 系統上,視窗版本的 Vim 稱為 gVim。Mac OS X 則是另一個名稱「MacVim」。
使用 MacPort 可以很簡單地把 MacVim 安裝完成,只需要一道指令:
sudo port install MacVim
安裝好 MacVim 後,在終端機下一道「mvim」指令,就可以啟動(如下圖)。
視窗的左邊,是一個瀏覽檔案的樹狀選單,使用 NERD tree 這個 Vim 擴充套件。
MacVim + NERD tree 切換檔案已經很方便,可以滿足不少文字編輯的需求,但是我希望左邊的選單,可以更像 GUI 程式原生(native)的介面。
有一個 MacVim 的 fork 版本,在 GitHub (alloy/macvim)可以找到。照著這一篇說明(需要編譯原始碼)安裝,或是從 GitHub 下載原作者編譯好的版本(解壓縮後將 MacVim.app 丟到應用程式集);執行的結果如下圖。
右邊的檔案瀏覽器,就是 alloy MacVim 提供的功能,它在預設狀態下就很容易使用,用滑鼠點選一個檔案,就會以 Vim 的 Tab 功能開啟新頁籤;這個檔案瀏覽器可以常駐著,在不同頁籤切換時,也會同步選取不同的檔案。
如果你正在尋找一個 Mac OS X 下好用的文字編輯器,使用 MacVim 並學習、熟悉 Vim 指令,將會是最好的投資。
這篇文章的主題是介紹在 Mac 下的 Vim 軟體。
Mac OS X 作為一款廣受程式設計師喜愛的作業系統,當然是買來就已經內建 VIM 軟體。在終端機下執行「vim」指令,就可以打開這個編輯器。
雖然剛入門的門檻稍微高,但 Vim 相當值得學習,因為它不管在 Windows、Linux、FreeBSD、Mac 或其他 Unix 系統都同樣管用;對於經常需要登入遠端伺服器或工作站(透過 SSH 或 Telnet),通常系統上也會內建 Vim,若需要遠端編輯設定檔或程式碼,學會操作終端機下的 Vim 相當管用。
但是在講求華麗桌面環境的現今,我們可以尋求更時髦的 Vim,在 Windows 或 Linux 系統上,視窗版本的 Vim 稱為 gVim。Mac OS X 則是另一個名稱「MacVim」。
使用 MacPort 可以很簡單地把 MacVim 安裝完成,只需要一道指令:
sudo port install MacVim
安裝好 MacVim 後,在終端機下一道「mvim」指令,就可以啟動(如下圖)。
視窗的左邊,是一個瀏覽檔案的樹狀選單,使用 NERD tree 這個 Vim 擴充套件。
MacVim + NERD tree 切換檔案已經很方便,可以滿足不少文字編輯的需求,但是我希望左邊的選單,可以更像 GUI 程式原生(native)的介面。
有一個 MacVim 的 fork 版本,在 GitHub (alloy/macvim)可以找到。照著這一篇說明(需要編譯原始碼)安裝,或是從 GitHub 下載原作者編譯好的版本(解壓縮後將 MacVim.app 丟到應用程式集);執行的結果如下圖。
右邊的檔案瀏覽器,就是 alloy MacVim 提供的功能,它在預設狀態下就很容易使用,用滑鼠點選一個檔案,就會以 Vim 的 Tab 功能開啟新頁籤;這個檔案瀏覽器可以常駐著,在不同頁籤切換時,也會同步選取不同的檔案。
如果你正在尋找一個 Mac OS X 下好用的文字編輯器,使用 MacVim 並學習、熟悉 Vim 指令,將會是最好的投資。
2011年11月14日
體驗新版的 Blogger 後台介面與動態佈景
我從 2006 年開始使用 Blogger 平台寫網誌,就一直用到現在。但這過程中也不是沒想過要跳槽,我試用過其他服務如 Tumblr 等,也架過幾次 Wordpress,最近也喜歡上使用 Octopress 寫文章(例)。
Blogger 的好處是它的背後有靠得住的 Google ,所以幾年內大概不會碰到搬家的問題。如果熟悉 Blogger 的 Template 語法,或是利用 HTML / JavaScript 擴充功能,它也還算強大。還有令我覺得滿意的一點,是它和 Picasa 相簿服務的整合度高,需要貼照片或圖檔的時候很方便,尤其是搭配 Mac OS X 的螢幕擷圖快速鍵一起用,貼圖就是快!
可是,它進步的速度很慢,簡直實在像蝸牛在爬!
這幾個月我用 Blogger 發文的數量一直在減少,其實並不是偷懶,每天都維持寫 1~2 篇筆記的習慣,只是內容都分散到其他網站了。像是需要貼程式碼的文章,自從用過 Octopress 的 Markdown 語法後,根本不會想再用 Blogger 寫 : ) 需要長期維護持續更新的內容,我則改用 Drupal 7 這個強大的 CMS 撰寫;而一兩行文字的極短篇,用 Dokuwiki 或 Plurk / Twitter 會更妥當一些。
已經有好一段時間沒有試用 Beta 版的 Blogger 介面,今天不小心點進很少打開的 Blogger 資訊主頁,發現這個不起眼的連結「試用更新的 Blogger 介面」,手癢就給它點下去。
結果整個 Dashboard 就煥然一新,變得更簡潔了!
微熱山丘,三合院排隊免費試吃鳳梨酥
這幾年很流行古早味的土鳳梨酥,不過三合院的鳳梨酥工廠變成熱門觀光景點,還真是頭一次碰到。
「微熱山丘」是一家鳳梨酥的品牌,頗受好評,在台北早已設有門市,台灣和新加坡兩地,也有宅配到府的訂購服務。
但只有親自來到微熱山丘的製作工坊,才能感受到這個品牌的命名;它位於南投縣內的八卦山脈,在一個海拔不高的山丘上,實在真有一點熱。
假日來到微熱山丘的遊客非常多,雖然位於巷子內,但很容易找到地點,老遠就能看到車輛停滿馬路兩旁,附近的街坊也紛紛擺攤做起小生意。
旅遊的小建議:微熱山丘的附近,有一家假日人潮也非常多的「星月天空」餐廳,晚上有很棒的夜景,適合遠道而來的朋友一併規劃行程。
微熱山丘官網 http://www.sunnyhills.com.tw/
微熱山丘地址:南投縣南投市八卦路1100巷2號
星月天空地址:南投市猴探井街146巷200號
微熱山丘 Google 地圖 http://g.co/maps/rfuat
檢視較大的地圖
「微熱山丘」是一家鳳梨酥的品牌,頗受好評,在台北早已設有門市,台灣和新加坡兩地,也有宅配到府的訂購服務。
但只有親自來到微熱山丘的製作工坊,才能感受到這個品牌的命名;它位於南投縣內的八卦山脈,在一個海拔不高的山丘上,實在真有一點熱。
假日來到微熱山丘的遊客非常多,雖然位於巷子內,但很容易找到地點,老遠就能看到車輛停滿馬路兩旁,附近的街坊也紛紛擺攤做起小生意。
旅遊的小建議:微熱山丘的附近,有一家假日人潮也非常多的「星月天空」餐廳,晚上有很棒的夜景,適合遠道而來的朋友一併規劃行程。
看到路邊種滿鳳梨就快到目的地了! |
相當有鄉下的味道! |
來這裡排隊,每個人可以免費試吃一個鳳梨酥! |
雖然是試吃,但份量可沒偷工減料! |
一顆 $35,20顆 $700 元! |
這是員工專用停車場喔! |
有幾戶人家的三合院可以這麼熱鬧阿?! |
這個建築物裡面是生產鳳梨酥的工坊, 有很多玻璃窗可以供遊客觀看鳳梨酥製作過程! |
這是最小盒,六塊裝。 |
內容物。 |
微熱山丘官網 http://www.sunnyhills.com.tw/
微熱山丘地址:南投縣南投市八卦路1100巷2號
星月天空地址:南投市猴探井街146巷200號
微熱山丘 Google 地圖 http://g.co/maps/rfuat
檢視較大的地圖
2011年11月13日
星期三晚上的電影院
連續兩週的星期三晚上,我都準時到電影院報到;沒有特別想看的電影,只是想排出一個時間規劃表,強制在裡面安排一些休閒娛樂,好壓抑工作狂與阿宅的 DNA。
這是一個小小的試驗,我打算持續下去,但不知道能維持多久。
我回想起在國軍 On-Line 的日子,在營的每一天都會期待星期三趕快來到,只因為星期三晚上有電影(雖然都不是想看的影片);到了星期三這天,就會特別趕快想把事情早點處理好,以免影響到休息的時間(當別人在看電影,而你卻要加班趕業務的感覺很不好)。
雖然看電影不是必要的事情,但如果把它當成一個非做不可的 Break,就像在五個工作日中間切了一刀。看電影被強迫放鬆兩小時,不能接電話,也無法一邊處理工作,就只能隨著劇情進入另一個幻想的世界。
造成的影響可能是,星期一和星期二,會期待星期三,就像週末快來的感覺,想趕快知道那部電影好或不好看。因為要避免任何沒處理完的事情,影響到排定的看電影行程,於是就會加快手腳趕快把事情做完,到了星期三這天會特別明顯,心情似乎也有期待及興奮的感覺。
看電影的時間雖然只有短短兩個小時,但是可以暫時告別原本的現實生活,進入一個被導演安排的世界;走出戲院的時候,又回到原本的世界,但差不多也是該就寢的時間。
接著星期四、星期五,有點像一個星期又重新開始,但過完這兩天就是真正的週末。
就像每天安排半小時運動,每週規定自己看完幾本書、看一部電影,或是完成一趟戶外休閒,應該都能當作是「執行力」的養成,這項能力對工作來說很重要;但我們卻經常放棄對其它事物的執行力,犧牲時間來完成(被拖延的)工作,卻往往不是拿來做真正重要的事,因為「重要的事如果有那麼多,早就發財啦!」
去年我曾經想要在自己的房間弄一套視聽設備,但是裝了電視、擴大機、二聲道喇叭及腳架,還有一張懶骨頭之後,我發現豪窄的房間已經沒辦法再容納其它東西,就連投影機和布幕平時也只能收起來放在一旁。
但是去了幾次斗六的中華影城,我發現其實花個五分鐘車程,買張兩百元有找的票,就幾乎擁有一間個人包廂(如本文最上面的照片),似乎不太需要燒錢弄家庭劇院。雖然這家戲院沒有超級豪華的大螢幕和頂級音響,但平日看電影的人,通常只有個位數字,要坐哪可以任君挑選。看這家在地唯一的首輪戲院,如此慘澹經營,就讓我更想每個星期都去支持一下了。
2011年11月12日
使用 Google Analytics 即時分析網站流量
Google Analytics 是功能相當強大的網站流量分析服務,它提供各種網站經營者必須掌握的數據,例如:哪些頁面最多人瀏覽?訪客平均停留時間?從哪些國家造訪?什麼搜尋引擎或關鍵字帶來流量?這些資訊,免費的 Analytics 服務都以詳盡的報表提供。
如果你擁有一個人網站,卻沒有安裝啟用 Analytics (或其他同級的服務),就如同開了一家店,每天都有生意上門,卻從來不記帳,很難訂定發展的方向及策略。
圖片來源:Google Analytics Blog |
「即時」服務目前是測試版階段,如果想要體驗這項新功能,需要先把 Analytics 切換成「新版」外觀(使用右上角的 "新版" 按鈕)。
從清單選擇一個要分析的網站,進入「首頁」畫面。
在左方選單,可以點選「即時(測試版)」清單中的「總覽」。
延伸閱讀
2011年11月4日
Drupal + Calendar 讓網站擁有行事曆功能
Drupal 是一套靈活的 CMS(內容管理系統),簡單說就是用來架網站,即使完全不懂程式設計、網站開發,也可以用 Drupal 架設出千變萬化、功能豐富的網站。
請見:具有親和力和強大的: Drupal 7
這篇文章要讓大家預覽一下 Drupal 的行事曆功能,也就是加上 Calendar 模組。
先舉兩種行事曆比較常見的用法:
上圖是思創軟體網站的行事曆畫面,透過這個行事曆,可以用來發佈活動訊息(同時也會公告在首頁)。
在後台管理新增「事件」這個內容類型的定義,有發佈權限的使用者,日後就可以輕鬆發佈新活動,並自動顯示在行事曆。
以事件類型發佈新的內容,在表單會提供「事件日期」設定。
雖然這個行事曆功能簡單好用,不過第一次設定要費一番功夫,需要先把 Views、Date、... 等相依模組也裝上,再依照以下這段影片的解說完成設定。
下載 Drupal Calendar 模組: http://drupal.org/project/calendar
請見:具有親和力和強大的: Drupal 7
這篇文章要讓大家預覽一下 Drupal 的行事曆功能,也就是加上 Calendar 模組。
先舉兩種行事曆比較常見的用法:
- 在月曆顯示每日新發表的文章。(適合:新聞、網誌、雜誌類型的網站)
- 在月曆、週曆顯示近期舉辦的活動。(適合:產品或服務性質網站,公告促銷活動、聚會等)
Drupal 的 Calendar 模組 |
在後台管理新增「事件」這個內容類型的定義,有發佈權限的使用者,日後就可以輕鬆發佈新活動,並自動顯示在行事曆。
以事件類型發佈新的內容,在表單會提供「事件日期」設定。
雖然這個行事曆功能簡單好用,不過第一次設定要費一番功夫,需要先把 Views、Date、... 等相依模組也裝上,再依照以下這段影片的解說完成設定。
下載 Drupal Calendar 模組: http://drupal.org/project/calendar
2011年11月3日
Mac OS X 使用 Google Public DNS 改善網路瀏覽體驗
* 這篇教學文章寫給初學者(Mac 使用者),高手請自動忽略 :)
Google Public DNS 是 Google 提供的網域名稱伺服器。
DNS 是網路基礎架構中不可少的一部分,你可以輸入好記的「google.com」(網域名稱)打開網頁,而不必記住「74.125.31.103」這串數字(IP 位址),這之間的轉換工作就是 DNS 的責任。
DNS 服務已經是必要,你可能覺得把一堆數字記下來沒什麼問題。但是對 WWW (一般瀏覽器打開的網站)來說,很多時候會讓多組網域名稱,對應到相同的 IP 位址,也就是虛擬主機(VirtualHost),如果少了這種機制,一台伺服器配上一組 IP 位址,就只能架設一個網站,非常不經濟。
既然 DNS 這麼重要,誰來提供 DNS 服務呢?
每一家提供網路服務的 ISP 都會架設 DNS,給用戶使用,例如種花電信的「168.95.1.1」、「168.95.192.1」。
所以只要能夠正常瀏覽網路,通常就代表 DNS 的設定已經正確。
但這篇文章仍要推薦 Google Public DNS 服務,這項免費的服務有以下目標:
例如許多學生剛到學校宿舍,就會得到一組網路設定說明:
壞事)。
但是 DNS 的部份,就不一定要照規定啦!
我個人非常不喜歡使用公司或學校的 DNS 伺服器,或至少不會只使用它。原因大概是:
一、點選右上角的網路連線圖示,從選單中選擇「打開網路偏好設定」。
二、從左側欄選擇 AirPort(無線區網)或乙太網路(有線區網),再點視窗右下角的「進階」按鈕。
三、切換到 DNS 頁籤,按一下 DNS 伺服器設定區下方的「+」按鈕,分別新增兩筆「8.8.4.4」及「8.8.8.8」設定。
四、用滑鼠按著不放拖曳,將新增的兩組 DNS 拉到最上方。
五、按進階視窗右下角的「好」,回到網路偏好設定視窗,再點視窗右下角的「套用」。接著就可以關閉網路偏好設定。
到這邊 DNS 的設定已經完成,我們可以使用網路指令工具測試。
一、打開「應用程式」、「工具程式」資料夾下的「終端機」程式,輸入「nslookup google.com」。若順利就會看到查詢結果,是由「8.8.4.4」或「8.8.8.8」伺服器回應。
二、但使用 Google Public DNS 是否如它宣稱的「速度變快」呢?其實通常不會比較快,畢竟 Google 的機器並不是放在 ISP 的機房,網路回應速度沒辦法跟 ISP 自己的 DNS 比。對於常用的網域名稱,ISP 的 DNS 伺服器通常也都是用快取。即使速度有差,幾千分之一秒根本沒什麼感覺。因此速度的差異並非本文強調,我們看重的是 Google Public DNS 的「安全穩定可靠」。以下是透過學術網路比較 Google 與種花電信兩者 DNS 的結果(time數值愈大表示回應時間愈長、愈慢)。
mac:~ $ ping -c 3 8.8.4.4
PING 8.8.4.4 (8.8.4.4): 56 data bytes
64 bytes from 8.8.4.4: icmp_seq=0 ttl=51 time=17.894 ms
64 bytes from 8.8.4.4: icmp_seq=1 ttl=51 time=19.047 ms
64 bytes from 8.8.4.4: icmp_seq=2 ttl=51 time=22.208 ms
mac:~ $ ping -c 3 168.95.1.1
PING 168.95.1.1 (168.95.1.1): 56 data bytes
64 bytes from 168.95.1.1: icmp_seq=0 ttl=245 time=9.669 ms
64 bytes from 168.95.1.1: icmp_seq=1 ttl=245 time=10.591 ms
64 bytes from 168.95.1.1: icmp_seq=2 ttl=245 time=10.066 ms
Google Public DNS 是 Google 提供的網域名稱伺服器。
DNS 是網路基礎架構中不可少的一部分,你可以輸入好記的「google.com」(網域名稱)打開網頁,而不必記住「74.125.31.103」這串數字(IP 位址),這之間的轉換工作就是 DNS 的責任。
DNS 服務已經是必要,你可能覺得把一堆數字記下來沒什麼問題。但是對 WWW (一般瀏覽器打開的網站)來說,很多時候會讓多組網域名稱,對應到相同的 IP 位址,也就是虛擬主機(VirtualHost),如果少了這種機制,一台伺服器配上一組 IP 位址,就只能架設一個網站,非常不經濟。
既然 DNS 這麼重要,誰來提供 DNS 服務呢?
每一家提供網路服務的 ISP 都會架設 DNS,給用戶使用,例如種花電信的「168.95.1.1」、「168.95.192.1」。
所以只要能夠正常瀏覽網路,通常就代表 DNS 的設定已經正確。
但這篇文章仍要推薦 Google Public DNS 服務,這項免費的服務有以下目標:
- Speed up your browsing experience
加速你的網路瀏覽體驗 - Improve your security
改善你的網路安全 - Get the results you expect with absolutely no redirection
透過快取直接取得查詢結果,不必等候其他伺服器回覆(同樣也是加速的意思)
例如許多學生剛到學校宿舍,就會得到一組網路設定說明:
- IP: xxx.xxx.xxx.xxx
- MASK: 255.255.xxx.xxx
- GATEWAY: xxx.xxx.xxx.xxx
- DNS: xxx.xxx.xxx.xxx
但是 DNS 的部份,就不一定要照規定啦!
我個人非常不喜歡使用公司或學校的 DNS 伺服器,或至少不會只使用它。原因大概是:
- 這些單位內伺服器的的性能、頻寬,通常不是那麼充足,穩定性也不太可靠
- 它很可能只是幫忙把你的查詢,再丟給上一層的 DNS 查詢,然後把結果轉送給你
- 如果這台伺服器被駭,資料遭到竄改,很可能把你帶往惡意的釣魚網站,使個人資料外洩
- 也許你只是想從 P2P 網站找來一些「測試資料」,但你的一舉一動其實 DNS 都知道
- 更糟糕的是,有時候網域名稱的 IP 位址已經更新過,但 DNS 就像中風一樣遲遲不肯更新快取
一、點選右上角的網路連線圖示,從選單中選擇「打開網路偏好設定」。
二、從左側欄選擇 AirPort(無線區網)或乙太網路(有線區網),再點視窗右下角的「進階」按鈕。
三、切換到 DNS 頁籤,按一下 DNS 伺服器設定區下方的「+」按鈕,分別新增兩筆「8.8.4.4」及「8.8.8.8」設定。
四、用滑鼠按著不放拖曳,將新增的兩組 DNS 拉到最上方。
五、按進階視窗右下角的「好」,回到網路偏好設定視窗,再點視窗右下角的「套用」。接著就可以關閉網路偏好設定。
到這邊 DNS 的設定已經完成,我們可以使用網路指令工具測試。
一、打開「應用程式」、「工具程式」資料夾下的「終端機」程式,輸入「nslookup google.com」。若順利就會看到查詢結果,是由「8.8.4.4」或「8.8.8.8」伺服器回應。
二、但使用 Google Public DNS 是否如它宣稱的「速度變快」呢?其實通常不會比較快,畢竟 Google 的機器並不是放在 ISP 的機房,網路回應速度沒辦法跟 ISP 自己的 DNS 比。對於常用的網域名稱,ISP 的 DNS 伺服器通常也都是用快取。即使速度有差,幾千分之一秒根本沒什麼感覺。因此速度的差異並非本文強調,我們看重的是 Google Public DNS 的「安全穩定可靠」。以下是透過學術網路比較 Google 與種花電信兩者 DNS 的結果(time數值愈大表示回應時間愈長、愈慢)。
mac:~ $ ping -c 3 8.8.4.4
PING 8.8.4.4 (8.8.4.4): 56 data bytes
64 bytes from 8.8.4.4: icmp_seq=0 ttl=51 time=17.894 ms
64 bytes from 8.8.4.4: icmp_seq=1 ttl=51 time=19.047 ms
64 bytes from 8.8.4.4: icmp_seq=2 ttl=51 time=22.208 ms
mac:~ $ ping -c 3 168.95.1.1
PING 168.95.1.1 (168.95.1.1): 56 data bytes
64 bytes from 168.95.1.1: icmp_seq=0 ttl=245 time=9.669 ms
64 bytes from 168.95.1.1: icmp_seq=1 ttl=245 time=10.591 ms
64 bytes from 168.95.1.1: icmp_seq=2 ttl=245 time=10.066 ms
三、有時候 DNS 查詢無法找到正確的結果,這時候可以用 nslookup 指令除錯,例如「nslookup - 168.95.1.1」就會使用「168.95.1.1」這部 DNS 伺服器進行查詢。
四、如果遇到 DNS 伺服器已經更新某個網域名稱,但電腦的網路程式(如瀏覽器),仍然是使用舊的 IP 位址,這時候就必須清除快取,使用「dscacheutil -flushcache」指令。
延伸閱讀
訂閱:
文章 (Atom)
-
▼
2011
(197)
-
▼
11月
(19)
- [試用] 2011雲林路跑賽,體驗 titan 功能慢跑襪
- 綠林新款電子書閱讀器 Greenbook EZRead Touch 測試
- DD-WRT Repeater Bridge Mode 讓無線訊號範圍更廣
- [試用] 台灣製造才是好襪!titan 全方位運動襪實測
- 很棒的 GitHub for Mac 發佈新版
- 信仰需要仰賴閱讀與思辨尋找真理
- GitHub 也推短網址服務 git.io
- 一分鐘認識 Chicken Scheme
- 用 Groovy + SwingBuilder + JEditTextArea 快速打造輕量化程式碼編輯器
- 用 Readability 讓網頁更容易閱讀
- Groovy + SwingBuilder 筆記 20111117
- MacVim 當蘋果遇見歷久彌新的老牌文字編輯器
- 體驗新版的 Blogger 後台介面與動態佈景
- 微熱山丘,三合院排隊免費試吃鳳梨酥
- 星期三晚上的電影院
- 使用 Google Analytics 即時分析網站流量
- Drupal + Calendar 讓網站擁有行事曆功能
- Mac OS X 使用 Google Public DNS 改善網路瀏覽體驗
- 敏捷不油膩的 Java:使用 Gradle 與 Spock 快速建立易寫易讀的測試案例及報表
-
▼
11月
(19)