Skip to main content

· 3 min read

看完這次的Android I/O Keynote(咦,好像名字不是這個), Android Market 平台除了已推出的應用程式(App)、書籍(Book)之外,現在將提供使用者影片租賃(Movie Rental)、音樂 (Music)這兩種線上服務。

同時 Google TV 也將接入 Android Market。這些努力將對手尚未在 iOS 平台上開通的服務一次補足,同時 Android 開發者也首次有了可以向 iOS 開發者說嘴的優勢(可以開發 App for TV)。

更重要的宣告是Android 3.1Android 2.3.4的推出,全力支援 iOS 碰都不碰的USB 相關技術

首先是支援USB Host,讓數位相機可以直接接到平板上,把照片傳進平板。

再來是支援USB Accesories API,讓周邊設備可以直接透過 USB 與 Android 設備連線,與 Android 設備中的應用程式互動。當 Android 設備透過 USB 接上周邊時,會自動列出支援的 App 或是 App 的下載連結。

接著 Android@Home Framework 則是在 USB、網路等周邊的基礎上切入智慧家電領域。

Google 的三螢一雲已經成形,而 Google 的三螢一雲不僅只侷限在手機、PC、電視、Web 上而已,Google 的三螢一雲具備著更通用的涵義:移動、定點、家庭、雲端

對開發者而言,可以用同個系統開發 App for Mobile(手機、行動裝置)、App for Tablet(平板)、App for TV(電視)、App for Accesory(周邊)、App for Home(家庭),學習 Android 系統的吸引力無疑大大地增加。

看到這次 Android 3.1 的發佈,我第一次有 Android OS 開始追上了 iOS 的感覺。面對這樣的正面迎擊,其他廠商該要擁抱它呢?還是也不落人後地端出什麼好料呢?Google I/O 才剛開始,後續值得期待。

· One min read

我傾向於將程式設計看做是一種工藝 -- 它需要技巧、手藝、訓練和經驗。 它的產品具有一定的功能,並且很漂亮。 程式設計還含有藝術元素,它是一個創造性的過程。 與這種藝術性結合在一起的,還有對工具和技術的掌握 -- 這些是工匠所具備的特徵。 -- 編程創藝

· 3 min read

功用

使用 Virtualenv 可以讓你預先建立一個虛擬環境,在虛擬環境中開發 Python 程式,可以保持 Python path 乾淨,並減少因為機器上需要同時支援不同版本函式庫,造成各函式庫彼此之間相依性的困擾。

而且使用虛擬環境後,到時要將環境轉移到別台機器上,也減少很多設定上的問題。

安裝

$ easy_install virtualenv 設定環境

$ virtualenv --no-site-packages [dev_place] 即建立一個名為 [dev_place] 的資料夾(中括號裡的名稱自行填寫取代)。

切換到虛擬環境

進入 [dev_place] 目錄,輸入命令:

$ source bin/activate 若看到路徑提示前多了個([dev_place])符號,即表示已經進入了虛擬環境。

這時我們可以使用預設提供的 easy_install 工具安裝要使用的函式庫、或是安裝各種 Python 程式。

安裝的函式庫會被放到 [dev_place]/lib/Python[版本]/site-packages/ 目錄中,跟一般的 Python 函式庫配置方式相似。

離開虛擬環境

要離開虛擬環境,只需輸入命令:

$ deactivate 即可回到預設的命令行狀態。

其他操作

如果你的電腦上有裝多個 Python 版本,在下 virtualenv 命令時加上「--python=python[版本] 」當作參數,例如建立 2.6 版的虛擬環境命令為

$ virtualenv --no-site-packages [dev_place] --python=python2.6 也可以建立出不同版本的 Python 虛擬環境,讓你可以更容易地在多個 Python 版本間做測試。

其他使用方法可以輸入「virtualenv --help」參考印出的說明。

Python3

目前 virtualenv 官方還不支援 Python 3.x, 但是有開發中版本可用,可使用 Mercural 下載來安裝

hg clone https://bitbucket.org/brandon/virtualenv3

cd virtualenv3

python3 setup.py install

· 2 min read

Open ID 簡而言之,就是在瀏覽到某個網站時,不用在這個網站先註冊帳號, 只要透過 OpenID 機制用自己現成的 Yahoo、Google 等大網站的帳號登入, 就可以開始使用這個網站所提供的個人化服務。而且自己 Yahoo、Google 等帳號的密碼也不會透露給這個網站知道。讓使用者可以更放心嘗試各種新的網站應用服務。

在使用者登入這個網站後,這個網站還是可以在自己的資料庫中記錄關於這個使用者的各種訊息。

對應到現實世界的例子,就好比我們只要持有台灣護照,到日本、加拿大遊玩時免填簽證,就可以進入該國家。只要在該國海關前出示護照,表明我們是來自台灣的遊客,海關確認護照後即准予通行,於是我們就可以進入他們的國家。

回到網路的世界,舉 Google 為例,我們也可以查看 Google 提供的各種外部網站 (外國) 接取 Google 帳號 (Google 護照) 來登入的方式

Third-party web sites and applications can now let visitors sign in using their Google user accounts.

http://code.google.com/apis/accounts/docs/OpenID.html

Facebook Connect 也是使用類似的機制,提供外部網站可以使用 Facebook 帳號登入,有五億潛在使用者 (Facebook 國民) 可以更容易地使用這個網站 (外國) 提供的應用服務. http://www.facebook.com/help/?page=730

http://developers.facebook.com/docs/guides/web/

· 2 min read

Android 平板快出了,Google 在許多不同場合宣告了這個消息。

Android 3.0 (HoneyComb) 引入了部件 (Fragment) 的概念,讓同一個畫面中可以顯示多個區塊 (在同一個 Activity 中包含多個 mini-Activity)。區塊與區塊之間可以做各式互動。要達成直、橫顯示時不同的平版配置方式,只需巧妙地搭配從 Android 1.6 版引入的多重 Layout 和 Android 3.0 版引入的 Fragment 功能。Google Blog 上的文章介紹了實際使用的方法。

同時 Android 3.0 平板的「桌面」功能更強大了,各式新型桌面 Widget 開發也將成為另一個新的亮點。

製造商們面對 iPad 龐大的壓力,勢必對 Android 平板趨之若騖。現在要問的是,開發者們準備好隨之起舞了嗎?