Skip to main content

· 2 min read

最近看到一篇 Ruby 跟 Python 本質上不同

我也注意到一個現象:

偏向 c/c++/asp/php 的開發者對 Python 接受度較高,偏向 perl 的使用者則偏好 Ruby。 因為不管是 Python 還是 Ruby,要開發網頁都得寫 JavaScript,所以 JavaScript 沒有辨識度。

Python 像是先天武功密笈,不論資質,學了後一旦出招,都帶有 Pythonic 風格。 因為每個人寫起來的 Python 程式風格一致,更容易讓自己專注於內容。 而且學了 Pythonic 風格,自己使用其他語言寫作時也會想要盡量同樣簡明。

Python 社群的 Web 開發上也有更多的選擇,可以由禪入道 (TurboGears)、由佛入道 (Django),或從諸多現成的組件中挑選,自行花幾個鐘頭打造一個。

魔幻語言則是武林密笈,靠著投靠門派,依師父傳授某些密籍 (開發、命名方法) 來鍛鍊自己的風格。

例如 Javascript 就從早期混著寫的方式,到近期 AJAX 興起,鼓吹 JS 與 HTML 分離的風格。永遠得追逐著非關語言的變化,來調整自己出招的方式。

學的好的有了自己的風格,學的不好的如邯鄲學步。

接了別人開始的案子要維護時,要按自己的風格重改過呢,還是照著前人的風格呢? 或是,就這麼接受風格混亂的程式碼,到最後難以維護?

· 2 min read

剛剛發現開源的 Java 社群在版本控制系統 (version control) 的選擇,正向著 Python mercurial 遷移。

證據是 Mercurial 的官方網站上列出了近期的幾個 Sun 的重要專案都採用了 Mercurial:

2007-12-12 NetBeans migrates to mercurial

2007-12-05 OpenJDK (aka Java) switches to Mercurial

2006-10-18 OpenSolaris announces ON Mercurial repository mirror

包含 Sun 官方的 Java、NetBeans 跟 OpenSolaris 都採用 mercurial 分散式版本控制系統。 這對社群有極佳的示範作用。

試想一下,就跟許多 Linux 發佈套件開始用 BT 來分流一樣。 既然都開放下載了,用分散式的版本控制系統有助 Sun 降低其公司的網路流量,應該能省下不少花費。

另外,在 Windows 上相當有名的 tortoise 系列圖形化版本控制工具也出了 Mercurial 版囉,名叫tortoisehg。(另外兩種是 tortoisecvs 跟 tortoisesvn)

· 4 min read

深入淺出 Android 手機應用程式設計 是我從 11/12 Android 剛發佈即開始著手準備的寫作計畫。

當 Android 剛發佈時我馬上下載來玩了幾天,發現這是個很有趣的平台:Android 既是手機作業系統,卻有跨多平台 (Windows、Mac、Linux) 的開發工具;既是 Linux 平台,卻有許多類似 Web 開發的感覺。獨特的行程 (Process) 管理方式,讓程式運作起來頗有 Palm 平台反應迅速的風範。完整的上網功能,搭配 Google 地圖、Gmail 等服務,讓我看到許多不一樣的可能性。手上 Palm Treo650 用了多年,看來下一隻應該就是 Android 手機了。

我本身有一些 Palm 程式開發經驗、也有一些 Web 開發經驗,從 Android 並不是那麼完整的文件裡,也得到了一些領會。 個人自覺程式才華沒有到賺那大獎賽千萬獎金的境界,而快速地理解並與其他人分享才是我的長處。因此,寫些快快樂樂學 Android 教學文件,讓台灣的朋友也能快速上手 Android ,讓大家更有把握去賺那 Android 大獎賽的 1000 萬也許是個好主意。於是有了要寫些什麼的概念後,找了同學 Crota 一起腦力激盪,就開始動鍵盤寫作了。

寫作的同時當然也有想出書的念頭。透過朋友 Tib 跟 Yu 聯繫過 D 出版社跟 F 出版社,兩個出版社紛紛反應現在書市慘澹。由於手機軟體開發並非一般程式員會接觸到的課題,所以出版社覺得在台灣的市場恐怕不大,暫時沒有出版的計畫。

我想,既然一時沒有出版的計畫,那麼就乾脆回到原本的初衷,抱著希望讓台灣的朋友也能快速上手 Android 而能去參與比賽的想法,就來公開目前寫好的章節吧 XD

本書的目標讀者是這些人,你是否也是其中之一呢?

  • Windows/Mac/Linux 各平台使用者
  • 想學寫 Android 手機應用程式的人
  • 想知道如何取得 Android 免費開發工具與資源的人
  • 懂英文能上網的人
  • 想知道怎麼查 Android 線上文件的人
  • 有點物件導向 (OO) 程式經驗的人
  • J2ME/Java 學習者 / 開發者目前已於 GoogleCode 上公開了一部份章節內容,剩下的將慢慢補上。有些部份還只是初步的草稿,請持續關注深入淺出 Android 手機應用程式設計 。並歡迎提供建議。

PS: androidbmi 專案中的程式碼,即來自於書中的範例。

· 5 min read

有種最簡單的瘦身 (減肥) 法,就是每天紀錄你的體重曲線。

這個瘦身法的理論依據應該是這樣子:只要在潛意識裡,我們有在意體重這件事,就自然會節制飲食、注意運動。表現出的結果,自然就是會慢慢趨近理想體重了。

要實施這個瘦身法,首先要有一台體重計,再來就是準備一個紀錄體重變化的工具。簡單的工具比如紙跟筆、電腦化的工具如 Excel、或線上工具如 Google 15。 你所要做的,就是持之以恆:每天量完體重後,將數值紀錄到這些工具上,然後在意數據 (或圖表曲線) 的變化。

當然,現在還有個更簡單的選擇 -- wiifit。

只要站上 wiifit 測量一下,wiifit 就會將你當天的體重與 BMI 值等資訊一起存成圖表。每次打開 wii 玩遊戲前,只要順便打開 wiifit 頻道測一下,持之以恆下來,估計也會有相同的瘦身效果。同時這也是一種從沒有遊戲嘗試過的新體驗。

在台灣,wiifit 並沒辦法取代健身房,因為 wiifit 只有附日文教練 XD (男女各一喔) 。但是別忘了,許多人想運動卻不想花一筆健身房錢。wiifit 正好讓我圓了請私人運動教練的夢想(還是外國貨 XD)。

我曾經有段時間會到宿舍附近的大湖公園跑步。 跑了一個月,覺得一個人在台北公園跑步無趣的很,出門跑步還要吸廢氣,跑完全身黏黏的還得走一段路回家,相當麻煩。於是我也漸漸停止了慢跑這項運動。

wiifit 的慢跑運動中,全程配有一個 Mii 教練帶著你跑,每次跑的路線都不盡相同,與平常在外跑步一般都只有固定路線不同。而且 Mii 教練也會根據你跑步的狀態做出一些互動,如我跑步時只要一直保持相同的步調,螢幕下就會出現意思為 "現在你的步調很不錯喔" 的簡單互動訊息。也許這樣的互動準確度有限,不過確實提供了額外趣味與前進的動力。跑著跑著,路上有各種熟悉的 Mii (上 Mii 投票頻道抓的) 迎面跟我打招呼,或在旁舉起手來打氣加油。供慢跑的小島風景怡人,各種不同的地形、坡度,帶來了視覺上的不同刺激,保持了新鮮感;踩到草皮、海水的不同踏步音效,也都帶來了相當的樂趣。

昨天買到 (<3.7k),剛才終於跑完慢跑小島一圈模式,開啟了可選跑步時間的模式 (10,20,30 分)。感覺跑步功能很簡單也很有潛力,希望透過 wiiware 的推出,哪天除了慢跑小島外,還有其他場景可以探索。也許有一天,我也能在馬力歐銀河的場景裡跑步,那一定是個有趣的經驗 :D

PS: 在原地跑步又沒穿鞋襪的情況,反作用力可能會對腳踝造成較大的負擔。到底能不能持續靠著 wiifit 達到運動效果,我大概還要自己觀察一陣囉。

12/21 用 2 周活體實驗證明,人只要胖到一個程度,雖然有 wiifit 每天運動 30 min , 還是瘦不了 Orz