七月 25, 2011
» 使用Play! Framework在GAE上架網站


今年自己在網站開發方面做了很多改變。

第一件是Domain name續約並全面採用 gasolin.idv.tw 系列網址。

本如部落格網址可由 blog.gasolin.idv.tw 連結,
Android書籍/應用相關訊息可由 android.gasolin.idv.tw 連結。

第二件是使用的網頁框架改變。

個人的首頁 www.gasolin.idv.tw 仍然架在Google App Engine上頭,
但背後使用的技術,也從Python based的 GAEO ,改為使用Java based的 Play! Framework

使用 Play! Framework 的好處是它並不像GAEO一樣完全捆綁在Google App Engine上,而是隨時可以搬離GAE獨立運作。

再者Play!的專案架構和使用方法很接近TurboGearsDjango等現代的網頁框架,因此熟悉現代網頁框架的開發者應該能很快地上手。開發的時候可以在本地端開發,而且修改後的結果也能即時自動編譯並顯示,用起來非常接近使用動態語言開發的使用經驗。(Play!的命令行工具是用Python寫的:))

Play! 的另一個好處是有很好的模組(Module)架構。要將網站發佈在Google App Engine上時,透過GAE模組和搭配Siena(提供ORM層)、crudsiena(提供自動Admin管理頁面)模組,可以不被Google App Engine的一堆限制所制約,從而得到完整的開發經驗。

Play! 的官方網站上有很齊全的文件可供參考。所謂的「齊全」到了什麼地步呢?
除了簡介、教學、模組介紹之外,甚至還有cheatsheet !


要從頭開始建立一個Play網頁程式到發佈在GAE,要做以下6幾點

1. 建立專案

$ play new  [project name]

2. 安裝相關模組

執行

$ play install gae-版本
$ play install siena-版本
$ play install crudsiena-版本

3. 修改模組依存關係

進入專案目錄, 修改 conf/dependencies.yml 檔案


# Application dependencies

require:    - play -> play [1.2.1,)
    - play -> secure
    - play -> siena [2.0.0,)
    - play -> crudsiena [2.0.0,)
    - play -> gae 1.4
4. 自動檢查模組依存關係

執行

$ play deps

5. 修改GAE相關設定

根據GAE模組提供的文件做相應的GAE發佈設定(指定要deploy的GAE代號)

6. 發佈

執行

$ play gae:deploy --gae=[app engine java sdk path]

如此即完成整套使用Play!  + Google App Engine 的配置流程。


Update 2011/7/20: 在Taipei GTUG活動中和大家分享了Play! on GAE的相關經驗,並公開投影片

三月 8, 2011
» 理解Open ID

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/

三月 6, 2007
» Python 社群的 web 框架開發

框架介紹 Python 社群中各種 web 框架開發路線都有. Django 目前 Django 框架吸引的使用者最多, 一方面原因是 Django 團隊的性質, Django 有一個像 Rails 那樣的專職團隊在維護, 保證了專案的持續性. 同時不錯的指引文件, 對初學者友善的 Admin 介面, 開發者 Adrian 四處不遺餘力的宣傳也是吸引人的原因. 除了持續框架維護的承諾, 宣傳之外, Django 框架傑出的效能也屢屢在網頁框架評比中勝出. python 創造者 Guido 也將 Django 視為 Python 語言的首選網頁框架. Django 網頁框架的每個部份都是 Django 開發團隊自行建置. 但是在 Django 之外, python 社群其實早已有各式各樣的網頁開發工具. TurboGears 與 pylons

A Feedjack powered Planet
A Django site.