2011年3月28日 星期一

svn+ssh 與 svnserve: Command not found @ FreeBSD

想說 commit 一份 code ,每次執行完卻只會顯示:


# svn ci -m 'update'
svnserve: Command not found.
svn: To better debug SSH connection problems, remove the -q option from 'ssh' in the [tunnels] section of your Subversion configuration file.
svn: 網路連線無預期地關閉


查看資料都說 PATH 設定有問題,但我在本機上用 which svnserve 都找得到啊,最後才想起來最近那台 svn server 重灌,再加上 server 的 svn 是我自己手動裝的,也就是自行安裝在某個地方,所以,svnserver 指的是 svn server 那邊的問題,所以改去 svn server 設定好 PATH 環境變數(~/.cshrc)就解決啦,稍微蠢了一會兒 XD


2011年3月27日 星期日

Acer eRecovery 失敗記 Orz

雖然這不是我第一次使用,但卻是第一次碰到失敗 XDD 在別人的筆電,從 Windows Vista 環境中,點選 Acer eRecovery 後,進入操作畫面不久,重開機後,進入到格式化 C 槽等資訊,最後顯示 FAIL TO FORMAT 類似的字樣,重開機後就只會出現 BOOTMGR is missing。


呆了一會兒,大概可以猜出 FAIL 的狀況問題,但手邊一張光碟也沒有,更別說 Acer 的還原光碟 XD 偷懶沒先做啦。接著打通電話請 Randy 幫我把某迷樣作業系統 ISO 檔擺好,我打算衝去網咖下載燒錄並打算透過修復功能建立BMR,而首先要準備的,就是去買空白 DVD 片,在周六晚上九點多開始進行著傻蛋的任務!


如果你想知道怎樣解決?那請看說明書,再進入 BIOS 之前按住 ALT+F10 就可以解決開機進入還原狀態了 XD 可惜我不知道啊啊啊~於是就有下面跑大地遊戲的劇情。


首先是跑去附近的全家,問問櫃台人員有沒有在賣空白光碟,但櫃姐也不懂,指著那一排擺著遊戲片子的區域,跟我一起細心地找啊找,我想大概沒望,頂多只看到 CD-R 片,但櫃姐開始跟我哈拉,講了哩哩叩叩的故事,最後我跟她說我將會去路程約 5 分鐘的愛買看看,於是跟她告別了 XD 真是熱心的櫃姐,從買光碟片聊到買家電 XDD 花費大概六、七分鐘


隨後趕著時間跑去了賣場,買了一桶 50 片裝的 DVD-R 片,才賣 159 元 XD 就趕著去附近的網咖,結果一問之下,網咖說不提供燒錄器,囧,我的任務就失敗了 XDDD 原先計算好的每一步,就此卡住,原來,沒了電腦,我也是一枚凡人啊,連好人都當不了。


隔天乖乖去台北火車站旁邊的 NOVA 啦,樓上三樓有 Acer 直營維修店,原來那邊每天都有人在,我以為周末會公休的,果然是天龍國啊 :P 並且問了解法,他們那邊大多提供硬碟對拷的方式,所以基本上是會損失 D 槽的資料,我原本還期待它們有光碟可以借我修復 MBR 區塊,正當我失望之餘,酷酷的先生問我有沒有試過 ATL + F10,我說那是啥,語未畢,他已經進入還原模式 XDD 隨後從旁邊哪了一個小小的使用說明說,跟我說進入 eRecovery 有兩種方式,現在用的就是不需要 OS 的方式。


驚覺,萬事還是要記的翻翻說明書啦 XDD 至於硬碟對拷(俗稱的重灌),除了損失資料外,保固內並不用額外收費唷,只是療程大概也要數個小時。這次我就只是乖乖地在旁邊再做一次 eRecovery ,很神奇的程式就沒問題了,可真不是"傻啊"兩個字可道盡的。


題外話,剛剛在網路上找到 "Acer eRecovery 功能失效的還原辦法" 這篇文章,此文章留言是說可以透過以下指令搭配還原光碟,讓硬碟植入 ALT+F10 的功能耶,如果這是真的話,那就可以把硬碟重割重灌(放棄系統原先的設置?),等到哪一天想恢復成原廠就跑一下就行了吧?!哪天再來試試好了。



  • 有個 eRecovery 目錄,該目錄裡應該有個 mbrwrwin.exe 執行檔和數個 *.bin 檔案

  • 執行 mbrwrwin.exe install rtmbrXX.bin

    • XX 可能是 nb 或其他數值




至於為啥盡量要保留原廠系統,那是因為當初買筆電時,等同於有付錢買那個 Home 版本作業系統喔,所以,雖然可以重灌成其他作業系統,但你不保留 Home 版(OEM版)等同於損失自己購買的軟體(雖然有人會說,用不到的又有何差 XD)


2011年3月24日 星期四

Android 與 iPhone 接觸心得

手邊恰好有這兩樣陣營的設備,Android 方一台是 Nexus One ,而 iOS 陣營列各清單大概就 iPhone 3G、iPod Touch 4 和 iPad 都玩過了。一直想寫個筆記,是關於 Android 與 iOS 兩大陣營的挑選,大概可分成一般使用者跟開發者心態。就趁著今晚事情多到不知該做哪樣時,想寫篇碎碎念。


以目前市占率來說,大概 Android 系統的呼聲最高,接著則是 iOS 系統的忠臣潮民啊,經過一些時間摸索,我覺得兩方皆有自己的強項,相對也有缺點。趁這個機會把這一年內看到的資料就此紀錄一下,畢竟這麼熱,不看到也難啊。


對一般使用者來說:



  • UI操作性及美觀程度


我認為 iOS 系統整體表現遠勝於 Android 系統


如果不認同?那就找一台 Android 手機跟一台 iPhone 手機,用手指快速的捲動操作畫面,就會發現 iOS 流暢度真的不是蓋的,不然就試試輸入文字,瞧瞧虛擬鍵盤的辨識能力。之前搭捷運看到別人用 Android 手機玩 Angry Birds ,我自己也用 Nexus One 下載嘗試過,發現畫面還算流暢,但有一個很大的問題是觸控界面的靈敏度,我以為只是自己要點按鈕常常要點個 1~3 次才能正確啟動功能,很巧地在捷運上看到別人玩這款遊戲,當他想要按再玩一遍時,我發現對方也是有這方面的情況。此部分曾跟同事閒聊,再猜想是不是 iOS 觸控方面是不是有比較特別的實作方式或專利等等(例如手指滑動的手勢),使得 Android 系統要避開專利或甚麼的才因此有這種不靈敏的情況吧?!


拿 Nexus One 來比,盡管是 2010 年年初的產品,但他的硬體規格不差,並使用 Android 2.3.3 系統測試的,也不排除可能是硬體設備已是一年多前的,但 iOS 用的設備也是半年或一年前的。至於美觀程度,以遊戲來說,兩者上看起來沒啥不一樣。對於使用各家 SDK 開發的程式,我認為 iOS apps 還有是不錯的操作介面及基本的美化,這大概多虧了 iOS 封閉性,導致能夠有統一的螢幕大小。



  • 軟體安全性


我認為 iOS 的軟體安全性高於 Android 環境


記得看過一堆文章 iPhone 相關的文章,常常有人說一定要 JB ,而 JB 後能夠調整很多細節,比方說,安裝另一套輸入法!在 iPhone 上的 iAccess 廣受好評,但這一套是必須 jailbreak 後才能使用的,起初我並不在意(預設手寫就滿足了),直到我用了 Nexus One 手機,安裝完 Android 2.3.3 後,想輸入中文時,才發現預設沒有對應的輸入法,準備在 Android Market 下載一款注音輸入法,正要安裝的時候看到了警告!大意是說,輸入法程式可能擷取隱私資訊,例如帳密、信用卡等,看到這則訊息才恍然大悟,才想起來為啥 iPhone 不允許這類程式,因為輸入法真的能夠造成很多安全性問題,以前在 Windows 系統安裝時都沒想過,現在才驚覺懂事 XD 就像被人監視著你從鍵盤敲出了甚麼東西。


對於 iPhone apps 來說,並且是正規的程式開發商(也就是JB後才能安裝的軟體不算),其程式將稍微被 Apple 驗證,如掃 binary 檔案查看是否用到隱藏 API 外,程式在運作中是處於 sandbox 環境,也就是正規使用並不允許直接存取其他程式或是系統資料的,例如寫了一套照片編輯程式,並不能直接存取系統內建的照片,而是要透過 API 將系統照片匯入 sandbox 環境的,最大的缺點就是造成使用者操作的不便,以及空間浪費(兩份一樣的資料),但這應該是基於安全性和系統穩定的規劃。相較於 Android 系統,開發商產生的程式並沒有被驗證,容易被做壞事,這也是前陣子看到一堆惡意程式被下架,相較之下 Android 的彈性導致安全性降低許多,亦能體會不少防毒軟體在 Android 系統上提出防毒程式的理由(在 iPhone 架構上可能不允許?在 sandbox 只能掃自己啊 XD)



  • 存取手機資料


我認為 Android 系統方便性遠高於 iOS 環境


Android 手機以 Nexus One 為例,一插上 mirco usb 時,就會跳出訊息問你要不要啟用 usb 儲存裝置,只要輕輕一按,手機就像隨身碟一樣,供人擺放文件,實在方便啊。反觀 iPhone 手機為例,插上去後還必須透過制式的 iTunes 軟體,透過統一的介面才能"同步"音樂、照片、程式,是的,這邊稱作"同步"代表處理的細節很冗長,說真的使用上很不方便,在加上 iTunes 只支援 Mac OSX 跟 Windows 環境,那些 Linux 使用者呢?又該怎麼辦。而 iPhone 程式並不是透過 iTunes 就可以胡作非為,基本上連 USB 隨身碟的功能都沒有,除非是找到特定的 iPhone 軟體,把東西丟進該軟體的 sandbox 外,沒有其他方式了,如果要說有,大概就像 Dropbox 這類軟體,透過網路傳資料進 iPhone 囉!(偷偷說,Dropbox 真的不錯,可以同步資料外,還可以看 PDF 等文件,很方便)



  • 軟體介面的彈性


我認為 Android 系統在軟體介面上勝過 iOS 環境


由於 iOS 環境的一致性,導致操作軟體時必須要依照制式的操作方式,如開啟一個 app 才能享受其功能。對 Android 來說,還提供自訂 Widget !也就是可以自訂手機畫面上預設顯示的東西,如天氣、股票等資訊,不需要開啟 app 才能使用,十分方便。


對開發者來說:



  • 開發的門檻


Android 開發門檻小於 iOS 


理由有很多個,例如 Android 是用 Java 語言開發,而 Java 幾乎已經各大資訊科系必學的語言,並且開發所需的作業系統環境並不限制,只要能跑 Java 就差不多了,反觀 iOS 部分,正規的環境是 Mac OSX ,使用 Objective C 語言及其 Xcode 編輯和模擬環境,前者就受限於作業系統,後者又是少數人使用的 Objective C 語言。先不管 Android 手機比 iOS 裝置便宜的問題,光開發 iPhone 程式就需要買一台正版 Mac OSX 機器(印象中作業系統的正版性是綁在 Apple 所提供的機器環境),現在最便宜的一台 Mac mini 也要 25,900 哩!更別說想要把程式裝在手機上跑,還需要開發者身分,一年又噴 99 美金啊。反觀 Android 環境,跑程式在手機上並不需要開發者身分,如果想要擺在 Android market 也僅需終身費 25 美金。


開銷細算:


Android:
買一隻 Android 手機,大概小於 7000 元就有,接著就用自己的電腦跑模擬器,並且可以弄到手機上運行。

iOS:
買一隻 iOS 設備,以最便宜的 iPod Touch 4 為例,台灣賣 8600 元,在加上一台 Mac mini,台幣 25900,最後在一個開發者身分,99 美金,算一下就知道花多少囉


這邊要補充一下,使用過兩邊正式的開發環境後,個人覺得 iOS 作的還不錯,運行跑模擬器也很快很順,倒是 Android 的開發環境,在新的電腦裡運行模擬器,可還是要執行超過一分鐘才能啟用的!這也算是另一種無形的成本吧。


除此之外,目前還有一些跨平台的開發方式,主要為兩個方向,一種就是幫你包成 native app 但裡頭是用 Web 呈現,另一種則是透過 compiler 技術幫你轉成 native app ,例如有從 javascript 或 flash 語言轉換等,但這類開發環境,最大的缺點就是無法使用 Android 或 iOS 系統的全部功能,但隨著跨平台開發者的努力,應該會漸漸拉小距離。



  • 程式資源的管控


iOS 資源控制優於 Android 環境


手機仍是一個資源受限的嵌入式環境。如果有修過嵌入式作業系統的話,印象中常會有一種很無聊的作業,那就是要比看誰的 kernel 編得比較小 XD 作法大概是把不必要的 packages 或 drivers 移掉,或是編譯時下的 gcc 有優化參數等。換句話說,手機仍是資源受限的環境,對於開發的環境來說,我覺得使用 Objective C 與 Java 擁有更優異的效能,例如可以決定記憶體的區塊大小,甚至手動歸還系統等,除此之外,對於 Android 來說,程式運行還跑在 VM 上頭,效能上會有不小負擔。


資源管控是很重要的議題,無論是工作站或是嵌入式應用,真正有品質的軟體,對於記憶體都很要求的,連最近熱門的 Firefox 4 也有文章在談論他記憶體管控部分。我覺得資源控制得好,是一門必須重視的學問,不能因為現在記憶體便宜就胡亂使用。



  • 開源程式碼


這部分是 Android 比 iOS 好


這部分影響很大,由於 Android 系統是 open source 的,導是各家硬體廠可以好好善用他,拉近軟體環境,這點對目前的 iOS 就無法辦到。這也就是為啥 Android 手機雨後春筍般地冒出,甚至有人用它做了很多其他應用,如導航機、小筆電等。對於公司來說,不必支付軟體費真的是賺很大啦。


另一個方面,這對開發者也變成一種負擔,例如 Android 版本更新快,並且各版本之間存在相容性的問題,就看到一些 Android app 的好手,寫好了程式後,發現下一版 Android 語法變了,導致之前寫的程式都只能變成 bug 啦,也稱得上是另一種苦命啊。


呼,難得碎碎念,大概就先這樣吧。如果說要推薦別人買手機,很有錢就都買 XD 若錢不是啥問題,大概會推薦一般人買 iPhone 吧,操作上都很制式化,很快上手、介面流暢,再加上社會地位、潮流,用起來也無比有種爽度吧!若錢不多,大概可以考慮 Android 囉,初用智慧手機還是會被他的方便性給感動吧!如果是開發者的話,喜歡寫一堆有的沒有的程式,那 Android 應該很適合,無拘無束,並且不斷地在跨幅度地進步,哪天也不需要 NB 了,把常用的程式都跑在 Android 上吧!但也別忘了,Apple 所給予的 API 或環境,都算很足夠可以開發出不錯的應用程式,甚至遊戲的,例如 Angry birds。至於 iPhone 是不是需要 JB ?我想不 JB 也不會怎樣,日子還是會繼續過下去的。


2011年3月21日 星期一

使用 Mobile Atlas Creator 製作台灣離線地圖 Zoom Level 0-17

Mobile Atlas Creator


之前試用 xGPS Manager 下載離線地圖,用過兩次,第一次地圖框的比較小,不到 4 小時左右完成,檔案約 1.5 GB ,第二次拉了大一點,就花了六小時,產物也 1.63GB,這次用 Mobile Atlas Creator 跑一次,由於只能拉一個長方形,產物 1.8GB 並且花了 7 小時啊!看來拉圖真的是一門學問啊。補充一下, Mobile Atlas Creator 是可製作 Android 上 RMaps 程式得離線地圖,而 xGPS Manager 則是製作 iPhone 上 xGPS 程式得離線地圖,但 xGPS 是必須把 iPhone JB 後才能安裝的。前者據說也是 iPhone 上 Galileo Offline Maps 的離線地圖的製作程式,但匯入離線地圖的功能是要付費的,所以我就沒再嘗試。


整體上稍微評比一下 Mobile Atlas Creator


優點:



  • 支援多種格式,包括輸出格式以及地圖格式

  • 下載地圖過程有豐富的資訊,讓人比較清楚大概還要多久(雖然不準,但有互動介面就有加分)

  • 跨平台(Java寫的,很基本)

  • Zoom Level 可到 19 ,但一次下載 0-19 會被警告,所以我只試 0-17


缺點:



  • 地圖範圍是長方形,代表範圍選擇較簡單,卻也無法省掉不必要的空間

  • 操作稍為複雜一點


此次測試,網路速度 5Mb/s 對等上下傳,產出 1.8GB (圖表僅顯示1.57) 共花費 7 小時。


2011年3月20日 星期日

象山 + 圓山之旅

101 @ 象山半腰


週末已先計畫要到圓山飯店參加碩班實驗室學長的婚宴,回想起來,我只去過劍潭活動中心、士林夜市,倒還沒去過圓山,從 Google Maps 上查看步行路線也都有點怪,最後懶的查就是到圓山捷運站,在一號出口正前方偏左有免費的接駁車,大概 20 人的小巴士。由於婚宴是晚上六點的事,中午吃過飯後,反而先去散散步,不小心就挑上了象山,對他的印象是看到 101 跨年煙火時,一堆腳架鎖在那邊!稍微找了資料,大概爬到上面約 30 分鐘,於是就衝了。



View Larger Map


由於象山有多條親山步道,這次是挑選永春高中旁邊的步道,記得有些步道是比較陡的,我覺得這條有些地方真的很陡,但有一些安全性的欄杆可以扶持,不知是不是挑到最難走的登山道 XD 總之這條路線雖抖但還難不倒年輕人,倒是有些長輩、還是隨行的小狗仍繼續往上衝!雖然爬上去只需 30 分鐘,但真的要記得帶水上山啊!此次路線是從永春捷運站出來,接著松山路往永春高中的方向走,而 Google Maps 是說要 30 分鐘啦。之所以走得下去,大概是途中先去松德宮吃中餐,吃完才走過去,當做飯後的運動吧!如果是專門登山的,可以改搭公車到永春高中站,也是那邊有 2~3 條線都會到,是終點站,會有一堆公車在那邊休息,也算一種奇景吧?!


01 02 03


到了永春高中,繼續往上走不久,就會看到登山入口


04 05 06


走上去後,就會看到一個永春崗公園,有些家庭則是帶小孩在公園那邊走走就好,親山步道是靠左邊的。


07 08 09


接著往上走就是所謂的階梯式爬山啦,大概慢慢走約 30 分到頂部的涼亭囉!


10 11


過程算是輕鬆又有小小的目標,不少點可以望望 101 大樓喔!整體上,我覺得還不太適合太小的小孩或是行動不便的長輩。隨後又花 20~30 分下山,就改搭公車回去靠近捷運站的地方,大概開車只要 5~10 分鐘吧 XD 比起步行 30 分鐘快很多,回家休息盥洗後,接著就搭捷運去圓山站,參加學長的婚宴。


 13 14 15 鎮店之寶


第一次去圓山大飯店,以前總是從車上經過時看了幾眼!不過這次也還沒仔細欣賞這類建築,有機會可以再來走走 XD 如果是步行的話,在劍潭捷運站下站,往劍潭青年活動中心走,並走到通河街時,有斑馬線或地下道可到對面,接著就可以沿著圓山飯店留的小徑直達圓山大門囉!



View Larger Map