Skip to main content

· 5 min read

很難用簡短言語表述這種互動開發的經驗。真的要稍微描述的話,那是一種不管你想要怎麼進行下一個開發步驟時,TurboGears 都幫你準備好了各種基本工具的感覺.

在學習 TurboGears 之後,我用 TurboGears 框架試做了一個網路模擬架構產生器,發現使用 TurboGears 寫操作到表單的網頁應用程式實在超方便.

很難用簡短言語表述這種互動開發的經驗。真的要稍微描述的話,那是一種不管你想要怎麼進行下一個開發步驟時,TurboGears 都幫你準備好了各種基本工具的感覺.

(以下不包含程式碼).

設計考量

產生器程式裡使用到大量小塊的表單,用上 AJAX 技術可以大幅縮短來來回回修改的時間,增進使用者經驗.

採用 ' 內容為中心 ' 的開發方式,controller 中盡量只返回與內容有關的資料。所有內容展示都在樣版跟 javascript 中產生.

開發之初就可以預見程式中將會出現相對大量的 Javascript 程式碼,我盡量採用 AJAX in Action 中提到將程式碼跟網頁分離的方式實做,將 Javascript 用 import 的方式包含進網頁.

原型階段 在 protocontroller.py 中新增一個方法函式,在其中手動建立一個列表 (預見將來將改成從資料庫中讀出), 返回列表到網頁,作為剛開始要傳入網頁的資料.

建立一個剛剛的方法函式所用到的樣版 (template), 在樣版中建立一個表單,來讓使用者選擇傳入的資料。並提供一個給使用者互動用的按鈕.

使用者按下互動用的按鈕後,利用 mochikit (TurboGears 內建的 javascript 函式庫) 提供的 DOM 處理參數,由使用者選擇的選項來動態創建進一步的表單與第二個互動用的按鈕.

使用者填好相關資訊,按下第二個互動用的按鈕。傳回資料到另一個方法函式, 取得下一個頁面.

exception: 使用者修改原來的選擇,按下互動用的按鈕後,利用 mochikit 提供的 DOM 處理函式更新原本動態產生的內容.

AJAX 網頁 使用 mochikit 提供的非同步 (Async) 處理函式,從伺服器取回資訊.

感想 AJAX 非同步處理部分需要 server /client 一起配合才行,因此對一個網頁框架而言,不是單純加上一個 AJAX 函式庫,這個框架就可以說是支援 AJAX. TurboGears 在這點上合格了!

開發時很妙的地方是 Turbogears 處理表單參數 (POST) 跟網頁參數 (GET) 的方式是一致的,所以原本 controller 中寫好的程式根本不怎麼需要修改.

Turbogears 返回的資料除了給樣版用之外,要回傳 JSON 格式只要在 uri 後加上 '?tg_format=json' 即可,也不必做額外處理.

javascript 很多語法跟 c 和 python 相似,mochikit 函式庫更是借用了很多 python 的使用方式,因此實際寫起來 client/server side 程式,轉換間並不感到太過突兀.

到目前使用上還沒發現 TurboGears 沒有 url mapping 有什麼壞處,要用 url mapping 的話再裝 routes 不遲.

· 3 min read

在 OSDC tw 上 Marr 提到辦 Python 雙週刊的想法, 預計出版方式採雙週報的方式,內容有 python 相關網摘, 原創文章,翻譯文章等. 我覺得這是個很棒的提議. 回來後一直很期待有進一步消息.

這週回到家來,想想既然是 Open 計畫, 小弟也試著來推動一下,好讓這個好想法更快實現.

要辦 Python 雙週刊首先是要做好基礎建設.

基礎建設包含選定使用平台,決定授權方式, 接下來則是決定收稿方式,內容管理與出版方式.

我提出我的參考實作方法:

基礎建設部分,小弟在 OSSF 上用 "pythonext", "python 時代雙週刊 " 的專案名稱申請 http://rt.openfoundry.org/Foundry/Project/index.html?Queue=550

接下來收稿方式與內容管理方面, 召集人似乎已經有些腹案了, 在此小弟建議增加一種從 TurboGears 社群學來的收稿方式: wiki.

在 OSSF 共同筆記區中開闢一塊 "DocumentPlayGround", 用來寫隨筆,寫下簡單的 recipes, 創作文章草稿,

OSSF 也提供 maillist , 可以在 maillist 上討論.

最後是出版方式, 對最後出版方式我還沒很明確的概念, 但是我可以看到的是利用 OSSF 的檔案庫, 我們可以提供所有出版的 Python 雙週刊下載.

利用版本控制系統, 我們未來還可以做到針對有更新價值的文章更新, 或是計畫用 python svn 模組動態獲取這雙週中版本控制系統內更新的內容, 組成新一期的雙週刊 :)

有興趣加入 Python 雙週刊計畫的大哥大姐們先來加入計畫吧, http://rt.openfoundry.org/Foundry/Project/?Queue=550 這是最直接統計 雙週刊辦不辦得起來的方式 :-P

小弟目前只是協助做好初步的基礎建設, 大家有了共同的 Base, 能開始討論更進一步的 Python 雙週刊運作才是我的希望

-- 使用平台: OSSF 授權方式:未定 (待議)

· One min read

http://www.ocn.ne.jp/ipv6/

提供以每個月 315 日圓的低價格試驗 IPv6 網路

網站上演示了透過 IPv6 網路與支援 OCN IPv6 連線的家用閘道器來控制資訊家電, 這願景很可能在近期變的真實.