2009年6月17日

Haskell 版分贓程式

剛剛把黑暗執行緒分贓程式改用 Haskell 重寫。
演算法其實很簡單,就是不要先除完再來調整,而是一次算一個整數出來就好了。我覺得還蠻適合用 list 的概念來做所以拿來當作練習題目。
另外,我也嘗試在這段程式碼中練習 Tail Recursion

一開始的版本因為少了那兩個 toRational 害我花了好多時間除錯...應該要花時間好好研讀一下 Haskell 的型別系統了。

程式碼如下:

2009年6月9日

本部落格的 feed 搬家

基於我個人的潔癖,這個部落格的 feed 將換到 http://feeds2.feedburner.com/wancw/blog
舊的 feed 預計在 6 月底停用。

2009年6月7日

命名的準則:關連性

以下是 Name that method: Symmetry 的摘要:

我們已經知道要把相關的程式碼或概念放在相關的地方。
所以我們會把程式切成類別與模組,也用相同的準則去管理程式檔案與目錄。
然而比較少被提及的是:命名 method 時也可以依循類似的準則。

文章中以 Merb、Rails 3 作例子。
同樣的一組功能在 Merb 叫作 provides/display
在 Rails 3 中則是 respond_to/respond_with
若你從沒用過這兩個 method,
Rails 3 的命名方式應該可以讓你一眼就看出兩個函式是相關的。
所以請替相關的 method 取相關的名稱

文章中還有提到另一種不好的命名方式:
Camping 提供兩個同名的 method 作相反的事情。

註:上述 MerbRailsCamping 都是 Ruby 的網頁應用程式框架。

--
後記:
最近這個 Blog 好像都靠轉錄或翻譯文章來充數。
另外,硬要全部都寫中文實在太痛苦了,
以後還是不要做這種蠢事好了。

2009年6月4日

HTML 5 的新東西

以下是從 Nelson 的 Google I/O 2009 筆記()歸納出的要點:
  1. <canvas><video>
    讓使用者不必再為了畫面效果裝一大堆瀏覽器外掛,
    開發者也可以用更優雅的方式寫出好用或華麗的網頁應用程式。
  2. Geo locationDatabase and app cache
    強化了 mobile web app 可發展的空間。
  3. Web workers
    多緒的 Javascrpit,太過複雜的運算就可以丟到背景去執行,而不會影響使用者使用上的流暢度。
結論就是開發者以後只要透過 Javascript 就可以做到現在要搭配一大堆技術才能做到的效果。不要猶豫了,趕快去學好 Javascript 吧!同時這也表示網站創業技術門檻又降低了,好的創意與使用者介面也就更重要了。

這樣一來,以後一般使用者打開電腦應該只會用到瀏覽器了吧?XD
(但是不知道什麼時候主流瀏覽器才能都完整支援?)

--
我發現我真是愛硬下結論。