Skip to main content

[Mercurial]多來源更新

· One min read

在做完「hg clone」(就如同從 Server 端 Check Out 程式碼)後,除了可以對原 Server 做「hg pull」以更新程式碼之外,也可以多加別台 Server 進列表。

如原來從 Alice 處「hg clone」下來原始碼,而現在也想要從 Bob 處直接取得他的更新,可以使用

$ hg pull [bob server] 命令。

另一個好方法是可以在 .hg/hgrc 中定義額外的 Server 別名 (alias)。

例如原來的 .hg/hgrc 長這樣:

[paths] default = [Alice Server]/[project] 我們在其後加入 Bob Server 的別名如下: [paths] default = [Alice Server]/[project] bob = [Bob server]/[project] 儲存後,要再從 Bob 處直接取得他的更新,可以使用 $ hg pull bob 命令來直接取得 bob 的原始碼。分散式版本控制是不是很方便呢 :)

書不像書的時代

· 3 min read

紙本書變電子書是很小的事,書變得不像書,才是嚴重的事。-- 紙本書變電子書是很小的事 —— 詹宏志談數位元出版時代

假如電子書指的是,一個在特殊的閱讀設備上面呈現我們今天在紙本書上所看到的內容和形式的書, 那我會說,電子書正在解決過去的問題而沒有解決未來的問題。 使用互聯網這件事都佔用了你很大一部分的時間,這個形式連電子書都沒有辦法解決。所以電子書是在解決過去的問題。 取得知識的方式如果已經變了,出版還沒變的話,就會慢慢變得不相干。 出版者要解決今天的出版困境,他必須到未來的學習者取得知識的地方去做出版,不能繼續使用現在出版的形式,使自己愈來愈跟這個社會不相干。 舉個例子,現在全世界最好的百科全書極可能還是大英百科全書,可是最好有什麼用?它現在跟我們大部分年輕人是不相干的。 而我也不覺得現在的年輕人用的是維基百科,真正改變他的行為的是搜索引擎。 他是先丟出一個要查的東西,如果維基百科在前三條,就點進去,還沒到維基百科,這個事情就已經決定了。 當資訊量愈大的時候,導語和評論的價值就愈高。 因為你真的沒辦法判斷,問題不在於沒有而在於太多了,多到你不知道誰好。 在我看來未來編輯的工作會很不一樣,會加倍重要。 一個社會創作生產量愈大總的來講是好事,你可能會嫌他有很多不好的東西,但是數量跟好東西是有關聯性的。 披沙揀金的結果,有這麼大量的垃圾,也會有某一個比例的含金量。 容易發表的創作,其實是使得很多可能的創作都會跑出來的重要原因。 去瞭解你的朋友,現在的年輕人,取得資訊的行為是怎麼一回事,你可以從那裏看出,有什麼東西是你可以做。 你怎麼可以忍受看那麼多東西才找到那麼一點點好東西,應該有人幫我做這個事,對不對? 應該有各種有判斷能力的人來幫我做這個事,而我會選擇每次判斷都深得我心的編輯來追隨,編輯也會有他的訴求、專長、分工。 我們擋掉了很多不要浪費出版資源的東西;可同時,說不定也擋掉了對社會有衝擊的新創作。

如何讓應用程式直接安裝到SD卡執行(2.2)

· 2 min read

Android 2.2 中新增了應用程式直接安裝到 SD 卡執行 (不少人稱這個功能作 App2SD), 要使用這個功能只要在目前程式中做幾個設定:

1. 專案的 Project Build Target 版本設定為 2.2 (API 8) 2. 修改 AndroidManifest 清單

設定 Project Build Target 版本

在 Eclipse 專案列表中按右鍵,選取 properties 選項,會彈出設定視窗。 在上面選擇左側的 Android 標籤,在右側 Build 欄位勾選「Android 2.2」選項(沒有這選項的請參考 管理 SDK 來升級 SDK),如此一來編譯時才能認得我們接下來在 AndroidManifest 清單中所做的設定。

修改 AndroidManifest 清單

在 manifest 標籤中加入一個「android:installLocation」屬性,實際程式碼如下

<manifest xmlns:android="http://schemas.android.com/apk/res/android"> package="com.demo.org" android:versionName="1.0" android:versionCode="1" android:installLocation="preferExternal" > .... 說明

android:installLocation="preferExternal" 清單中加入以上宣告後,編譯好的程式仍然可以適用於較低版本的機器,只有在程式安裝到 Android 2.2 版之後的系統上,系統才會自動將這個程式安裝到 SD 卡中。

安裝到 SD 卡中時程式會預作一次加密,讓只有安裝本程式的機器能存取這個程式,避免了程式可能會輕易被盜拷的疑慮。

沒有用到 Service、桌面小工具(Widget)、或動態桌布(Live Wallpaper)功能的程式比較適合儲存到 SD 卡,例如遊戲或 BMI 等小程式。

因為當機器使用 USB 和電腦連線,將 SD 卡掛載成磁碟機時,這些儲存在 SD 卡中執行的程式將會被中斷。

其他提示請參考 Android 官方文件

Android 2.2,完全版的Android就應該長這樣

· 2 min read

現在在 Google I/O 2010 會場看現場發表會。Froyo 真的是非常高完成度的版本,除了機器 OS 本身之外,還支援了許多對開發者、對使用者都有利的特性:

開發者:

  • 新版開發工具支援 Library Project,意思是同時開發試用版 / 正式版時,終於可以共用多數程式碼和資源檔,而不用完全開兩個專案出來

  • 支援 Data Backup API,表示任何應用程式都可以使用 Android Cloud 將程式中的資料記錄到雲端上,換到任何其他台手機上都可以備份回來。

  • 允許遠端控制機器

  • 多種模式的 Mobile AdSense

  • 應用程式可以直接安裝到 SD 卡,得以在 Android 上實現大型遊戲等應用

  • Google TV 上也能裝 Android 應用程式。這表示什麼?表示開發 Android 平台遊戲就能打進電視遊戲市場!使用者

  • 應用程式 / 網頁都有 2~3 倍以上的執行速度

  • 應用程式能從 SD 卡中執行

  • 在網頁版 Market 上點選安裝,在機器上即能自動下載

  • 語音辨識功能、桌面搜尋功能更強大

  • 有新版本應用程式可以自動從 Market 更新

  • 搭載 Froyo 的設備能直接變成行動 AP (tethering) 開發者們又很有事情可以做了 :)