2011年3月31日 星期四

[Windows] 初次使用 Windows 7 系統映像備份還原

幫家人買了一台 NB ,裡頭用的是 Windows 7 64-bit 的作業系統。這台是 Acer 牌,裡頭預先已經有 eRecovery Manager 的機制,也就硬碟內有一區隱藏碟,裡頭擺了筆電原廠資料,如作業系統、驅動程式等,如果哪天系統掛掉時,可以從這個隱藏碟恢復成原先出廠的設定值,但是原廠資料很雜,例如幫你安裝了一堆完全不會用到的軟體、遊戲,所以就自己另外在製作一份系統映像備份,哪天系統掛掉時,可以透過光碟機恢復到 "原廠 + 稍微設定" 的環境,這就是為啥要用系統映像備份的主因,原先以為可以用 eRecovery Manager 再做一份,結果發現這個除了備份和還原原廠資料及驅動程式外,並沒提供備份目前系統狀態。所幸,在 Windows 7 就已經內建建置系統映像備份了,在 [控制台]->[系統及安全性]->[備份電腦] 中,可以看到 "建立系統映像" 功能。本次測試是因為筆電使用者可能離我千里遠,擔心以後出錯要國際電話溝通,所以自己先跑一次好了,現在的費時將是以後的省時啊啊。


系統備份的流程很簡單,點選右邊的 [備份] 或是左邊選單的 [建立系統映像] 就可以進行了,唯一需要留意的是備份的位置,如果選擇的地方是硬碟,並且是本機硬碟,需要擔憂整個硬碟壞掉,連備份的機會都沒有啦,所以這次測試除了試過硬碟備分一次外,還使用 DVD 燒錄方式,差不多弄了 3 張 DVD 光碟片而已,還算 OK 啦,有的人選擇備份到外接硬碟,甚至網路硬碟等,因為一直燒光碟也挺浪費的,但我的情境剛好燒一次光碟很 ok 啦。


系統備份:


01


02


接下來只要按下一步,剩下的操作都很人性化直覺啦。如果使用 DVD 備份,燒錄完後會提醒你是否製作一片 Windows 7 修復光碟,就順便做一下吧 XD 因為到時候若系統掛了,可真的要靠這張修復光碟開機的。


另外,如果備份過一次後,"備份或還原檔案"的下方可以看到系統預設幫你 "排程" 的資訊,如果不需要的話,記得把它關掉,因為這個排程就是在指定的時間幫你自動備份系統,除了可能影響已經備份的映像檔外,每次備份也很耗系統資源,所以關掉是不錯的選擇。


系統還原:


系統還原,主要依開始進行方式可以分成兩步驟,第一個步驟就是啟動系統還原功能,第二步才是開始設定並還原系統。第一步可以分成兩種:


啟動方式 1 - 從 Windows 7 內啟用:


恢復有兩種模式,一種是系統還算正常時,從 [控制台]->[系統及安全性]->[備份電腦] -> [修復系統設定或電腦] -> [進修復原方法] -> [使用先前建立的系統映像來復原電腦] -> [跳過] -> [重新啟動] ,以此進行後續操作


03


04


05


06


啟動方式 2 - 透過 Windows 7 修復光碟 或 Windows 7 安裝光碟,從光碟機啟用:


對於筆電或 PC 來說,第一步要調整開機順序,必須調成光碟開機優先於硬碟開機。此處是設定 BIOS 的部分,各家 BIOS 不同,此處筆電是開機不久後,左下角會告訴你可以按 [F2] 進入,接著切換到 [Boot] 介面,並且把光碟機透過 F5/F6 調到第一優先順序,接著按 [F10] 就可以存檔離開。重開機前別忘了把光碟擺入,開機時就會詢問你是否要先讀取光碟機的內容,隨意按一下就可以繼續囉。


07


如果打算使用 Windows 7 安裝光碟,步驟會比 Windows 7 修復光碟還多了一些,但最終會導到系統還原的主要步驟


17


選擇 "修復您的電腦",接著會直接切換到 "系統復原選項"


18


系統還原的主要步驟:


無論是透過上述哪種啟動方式,最終(重開機後)就會進入一樣的畫面


08


09


下圖依情況不一定會出現,若出現的話,記得是要選第三項:系統映像修復。


12


此為 "系統復原選項" 畫面,如果有在硬碟裡備份過一次,這時候會顯示出來,可以挑選從硬碟恢復或是第二項其他處,如 DVD 光碟、網路硬碟等


10


如果硬碟沒東西,則會跳出這項,要求其他的來源,而如果是備份在 DVD 的話,別忘了是用最後一片 DVD 喔


11


搜尋到可以用來恢復的系統映像檔後,選擇好就可以按 "下一步" 進行下去


13


這邊有個選項要留意 "格式化並重新分割硬碟" ,請依狀態使用,例如有一個硬碟被切成 C 和 D 兩槽,透過光碟恢復時,就可以選擇這個選項,雖然目標是 C 槽,但應該有可能會使得 D 槽損毀,此選項在此尚未測試。


14


15


16


如此一來,當系統還原完重開機後,就恢復到原先系統映像所記錄的狀態了!使用系統映像的缺點嘛,除了是暫空間外,另外軟體都是"那一刻"的狀況,例如某個軟體幾個月後更新了,但透過上述還原的話,就必須重新移除再安裝新版程式囉,對於某些有潔癖的使用者,可能會不太舒服吧 cc


仔細試用了一下,覺得這個功能還不錯,以前學生時代,會在期初重灌並備份系統,以免期中、末忙碌時又不幸碰到系統掛掉,那時就可以快速恢復啦(幾乎是備而不用),雖然現在我個人不太會使用(電腦掛了就慢慢修啊),但別人的電腦還是會建議製作一片!就像買個保險囉,我是覺得還滿值得的啦,以免電腦中毒造成一時的不便囉,特別是周邊剛好沒人可幫忙時!


2011年3月30日 星期三

把玩 Google Maps & GPX 1.0


View Larger Map


之前意外得知,可以在 Google Maps 介面上,除了可以丟地名、GPS座標以外,還可以直接餵給他一個 GPX 的 URL,這時候 Google Maps 會幫你繪出路徑,十分方便。但如果想加上一些標記點,那必須手動改一下 GPX 格式,加上 WAYPOINT 資訊後,就可以自動標出。此例皆使用 GPX 1.0 格式,原始 GPX 檔案由 Android App - RMaps 紀錄的(別忘了會有誤差,細看座標點會遠離道路位置),後製在微調 GPX 格式,在 <gpx> 之後與 <trk> 前,加上 <wpt> 資訊即可。


<?xml version='1.0' encoding='Utf-8' standalone='yes' ?>
<gpx xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.topografix.com/GPX/1/0" xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/GPX/1/0/gpx.xsd" version="1.0" creator="RMaps - http://code.google.com/p/robertprojects/">
  <name>Track 1</name>
  <desc />
  <wpt lat="24.80338871" lon="121.00968026">
    <name>HsinChu</name>
  </wpt>
  <wpt lat="25.04992355" lon="121.51678764">
    <name>Taipei</name>
  </wpt>

  <trk>
  ...
  </trk>
</gpx>



View Larger Map


別忘了,此例是使用 GPX 1.0 格式,如果格式驗證不通過,那麼 Google Maps 則不會顯示的,驗證方式可以參考這篇:驗證 GPX 格式,此例使用 http://validator.nu 網站服務:


http://validator.nu/?schema=http%3A%2F%2Fwww.topografix.com%2FGPX%2F1%2F0%2Fgpx.xsd


透過上述連結連上後,可以再透過檔案上傳的方式進行測試。


[Windows] 使用 Git 與 GitHub @ Windows XP

01


在 GitHub 申請好帳號一陣子了,雖然我常寫程式的地方是 FreeBSD 或 Linux 系統,但回家休閒卻是使用 Windows 環境,偶爾寫寫筆記當然就很懶得再連去 Unix 環境。於是,關於 Git 的使用一直有點遲緩,再加上工作上多是 svn 的世界,久了沒用都忘光了。最近打算善用一下 GitHub 空間,除了可以擺擺程式做版本控制外,還可以拿來擺文件或學習筆記所需的暫存檔嘛。因此開始想辦法找找 Windows 上方便的 Git 使用環境,就看到 PIXNET Lab 的文章 - Git on Windowshelp.github - Set Up Git (Windows) 兩篇文章,經測試,寫了篇筆記。有了視窗介面,我應該會開始善用他了。


準備檔案:



流程:


先安裝 msysgit,一切都用預測選項,過程會跑一陣子,接著再安裝 Tortoisegit ,這就很快結束,接著使用 puttygen 產生 Key Pair。按下 Generate 後,接著必須移動滑鼠,將透過滑鼠位置當作亂數來產生 key pair 囉。


02 03


建好 Public key 和 Private key 後,按下 Save private key 儲存在恰當的位置,並且把 Public Key (上面 Public key for pasting into OpenSSH authorized_keys file 框框內的資料) 圈選複製一下,並到 GitHub 網站 Account Settings 頁面裡的 SSH Public Keys 項目中 Add key 吧!


04


05


東西都準備妥了,接著才正式要跟 GitHub 來溝通取資料囉,首先透過滑鼠右鍵,在桌面上可以按右鍵看到 Git 選單,按下 Git clone 會彈跳出視窗,按下Yes 後則是設定 TortoiseGit 裡 MSysGit 的位置,預設是 C:\msysgit\msysgit\bin


06


07


最後,則是可以透過視窗介面跟 GitHub 取資料下來,而我已經透過 GitHub 網頁介面建立一個專案,所以可以在該網頁上看到 Git 位置:git@github.com:my_giyhub_id/my_project.git,填寫好後,別忘了選擇 Load Putty Key 位置,則是一開始用 puttygen.exe 產生的 private key 位置囉!如此一來,就可以下載資料下來,並且在該目錄裡按滑鼠右鍵可以看到 Git 相關的操作。


08


09


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


2011年3月16日 星期三

[Android] 第一次使用實體手機 + 清乾淨 + 重裝系統 @ Nexus One

== Updated @ 2011/04/26 ==


原先以為透過此篇操作可以把系統清乾淨,經過幾次研究後,發現 "重設為原廠設定" 和此篇 "Recovery from update.zip" 的過程,並不會真的清除乾淨。因為整個過程只能說依照上述兩者的 script 去更新資料罷了,例如 script 上面有提到要從 update.zip 裡面複製某個檔案到哪邊等等,這樣的過程只能說會清掉一些被動到的系統檔,但如果 script 沒有做的部分,那些資料將還是留在系統上。最簡單的驗證就是把 root 過後,安裝了 Superuser.apk ,接著使用上述兩種動作,並不會將 Superuser.apk 給移除。真正清乾淨系統的方式是透過 fastboot 清乾淨且重刷整個系統才算是正解。


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


終於等到一台 Android 手機可以操刀了,這大概算第二次接觸。第一次接觸是 G1 開發機,不過沒有 case 隨即就被擺進櫃子裡深睡,半年前被別人領走,從此與 Android 的緣份越來越淺。最近讀了點 Android 相關書籍,被其系統架構吸引,因此又去要了資源,這次終於要好好用這隻手機。


每次拿到一台手機時,基於安全龜毛考量,必須想盡辦法清乾淨,這台也是別人用了一年的手機。久聞 Android 環境的複雜性,這是我也體會到了,於是就下載一份說明書 nexusone-userguide,終於看了幾頁搞懂要怎樣清空資料:


[應用程式]->[設定]->[隱私設定]-> 重設為原廠設定


過程中可以順便清 SD 卡


如果只是單純想清光 SD 卡:


[應用程式]->[設定]->[儲存設定]-> 清除 SD 卡


看起來好像清完了?其實,最龜毛的應該是要把 OS 重裝,越 Open 的環境,代表別人可以更容易加料 XD 所以,我打算來重裝整個 OS 系統(此步驟僅供參考!並非適用各類手機情況,以及存在操作風險,請自行評估負責啊)


第一步:下載官方 android 2.3.3 update for Nexus One 


http://android.clients.google.com/packages/ota/passion/81304b2de707.signed-passion-GRI40-from-FRG83G.81304b2d.zip


第二步:將上述檔案更名為 update.zip 並移放到 SD 卡根目錄


若使用的電腦沒有偵測出 android 手機,可以試著到 [應用程式]->[設定]->[儲存設定]-> [卸載 SD 卡] 並在 [掛載 SD 卡],此時 android 手機就會問你要不要啟用 USB,如此一來就能夠讓電腦偵測出來。


或是直接從手機上方的 status bar 下拉,並手動啟動 usb


在 PC 端把資料移至記憶卡後,記得要先從 PC 端卸下外接記憶卡,接著才將手機 USB 上的關掉,如此一來可以確保資料有寫入到記憶卡中。(有時PC端寫入動作都是等到卸下外接裝置實才正式寫入)


第三步:將 android 手機關機


第四步:按住 [軌跡球] 後,接著按 [電源鍵] 開機,如此一來就會進入特殊選單,使用 [音量+/-鍵] 進行選單上下的移動,並使用 [電源鍵] 做為選擇


01


請選 [BOOTLOADER] -> [RECOVERY]


02


第五步:接著會看先看到 X 的 logo 圖,再過幾秒就轉成警告三角型跟 android 圖示,此時先按 [電源鍵] 再按 [音量+鍵] ,則會進入另一個選單


03


第六步:使用 [音量+/-鍵] 或 [軌跡球] 移動,挑選 apply sdcard:update.zip 項目,並點選 [軌跡球] 當做確認


04


第七步:使用 [音量+/-鍵] 或 [軌跡球] 移動,選擇 update.zip 檔案,並點選 [軌跡球] 當做確認


05


第八步:接著 android 手機就會依序進行更新動作,直到最後顯示完工


06


07


08


09


10


11


最後就可以到 [應用程式]->[設定]->[關於手機] 可以查閱系統資訊:


Android 版本:2.3.3
基頻版本:32.41.00.32U_5.08.00.04
核心版本:2.6.35.7-59423-g08607d4 android-build@apa28 #1
版本號碼:GRI40 


說真的,我有點著迷 Android 系統的架構,可以讓開發者很盡情的享受,雖然有兩點還令我有點反感:



  • 系統更新快

  • 使用 VM 環境


前者就像沒有跨平台的環境,每一次的升級都可能導致程式需要重寫,這點我還能接受,覺得系統升級的遠大目標算是可以贏過這個小缺點,後者 VM 環境讓我對它的效能很 case ,正是我不喜歡寫 Java 的理由。仔細回想,我學程式以來,第一熟悉的是簡單的 C/C++ 語言,第二熟悉語言正是 Java 啊,甚至用 Java 開發了一年的專題,沒有萬也有千行,並讓我真的了解"指標"的真諦,只是碩班後期開始比較常寫 C 時,對於記憶體掌控會很在乎,相較之下我還滿喜歡寫 Objective C 囉!


目前操作不到 10 分鐘的感覺,嗯,iOS 果然有極強大的 UI 介面,而 Android 則是給我感覺像潛力無限的功能機,剛好我重視功能性>>外表,卻也常常被 Android 的 VM 感到矛盾啦,所以有種很特殊的情感吧!不過站在一般使用者的角度,我覺得會偏好 iOS 的比較多,因為 android 的潛力是隱性的,一般人基本上是不會在意的,好用好潮就夠啦。


無論如何,很感謝 iOS 跟 Android 開發團隊,能夠提供如此好玩的平台,之後的目標大概式來編編 Android Open Source 並且打包成自製的環境吧,就像學 OS 時,要學著改一些小小的程式碼,就算開機印出個 hello world 也是很有價值的。(不知不覺又走回嵌入式?)