對抗垃圾信!請您點這裡:

我的E-mail:
我的Skype:My status

2006年8月24日

Rails + AJAX範例

這網站看起來真不錯:P
網址:http://demo.script.aculo.us/

裏面有幾個不錯的Demo
而且都有釋出原始碼

用Rails真的很快Orz..
像是第一個範例
Autocompleting text fields (basic)

程式碼兩行(一行在view,一行是controller)就搞定

第二個也是扯
上面
To:那邊輸入A
CC:輸入B
輸入一個字後先等著不要離開,它就會出現suggestion了..

hmmm... 真是好玩!

2006年8月22日

Ubuntu -- 更新系統後進不去X Window

早上要去學校前,更新了一下xserver-xorg-core
剛回到家發現.. X進不去了!?
怪.. 用laptop上IRC後發現也有其他人這樣
卻不知道是那邊出問題..
上了論壇,一樣有這問題的求助文章
上去Cn那邊.. 也是有.. 可是都沒有解答
好吧.. 去美國看看
看完後,找到解決方案... 底下是步驟

根據以下指令動作
wget -c http://people.ubuntu.com/~rodarvus/packages/dapper/xorg-server/xserver-xorg-core_1.0.2-0ubuntu10.4_i386.deb
wget -c http://people.ubuntu.com/~rodarvus/packages/dapper/xorg-server/xserver-xorg-dev_1.0.2-0ubuntu10.4_i386.deb
抓完後,請下 dpkg -i xserver-xorg*
如果說,xserver-xorg-dev安裝失敗也沒關係
我想應該沒有什麼影響
然後裝好後就可以 sudo /etc/init.d/gdm restart
接著就可以進去X了!

2006年8月21日

如何進去網站後就轉到指定的Controller?

嗯.. 關於這點..
呵~cookoo大哥先在這邊謝過拉XD
雖然你忘記要作最後一個動作...

ok...

  1. edit config/routes.rb
  2. add map.connect '', :controller => "ctrl_name"
  3. save it and remove or rename public/index.html
cookoo大哥忘記說哪一點呢?
沒錯...
第三點="=

害我昨天測試了老半天阿阿阿阿阿阿阿阿阿!!!!!!!

2006年8月14日

set_primary_key

在Rails,如果你想要使用自訂的Primary Key Name(主鍵)的話(如果你用Migrate產生,預設就會建立一個叫作id的主鍵)可以使用set_primary_key
set_primary_key好像還要搭配set_table_name使用,不然會出錯!
因為我在作補習班網站的案子時,僅僅加入set_primary_key就出錯,加上set_table_name才正常,因此我想set_primary_key一定要有set_table_name的輔助吧?不過反之我想應該不同!
請在Model裏面編輯
set_table_name “tbl_name”
set_primary_key “pk_name
但是請注意!如果自訂Primary Key的話,在編輯的欄位內請不要讓那個欄位可以編輯!假設我...
set_table_name "people"
set_primary_key "uid"
此時就別讓uid可以編輯,像是出現:
<%= text_field "person", "uid" %>
這樣會產生錯誤!
詳情可以參考:
Agile Web Development with Rails書中第14章第三節的部份,雖然繼續使用uid還是可以的,但是會比較麻煩點!
而該節最後一句話:When you need to set the primary key, use id. At all other times, use the actual column
感謝China on Rails群組中的darren.hoo!
相關討論請看:
Ruby on Rails on Google Groups

2006年8月6日

"Getting Real" 到底想要告訴我們甚麼?

文章引用至


Getting Real 是 37signals 最近出版的一本電子書, 內容探討開發 web application 的方法及經營策略. 蠻顛覆一般傳統軟體工程所學的. 聽說已經賣了 6000 多本, 大家當做求取新知看看吧!

大致把書上 Table of Content 放上來, 相信看完後你們會有一些新想法!

  1. 起跑線
    • Build Less(少功能, 少人開發, 少廣告…), 了解你的問題? 自己投資
    • 要在時間及預算內完成, 些許的彈性(減少你的功能)
    • 找個敵人給自己. 不要把它當雜務事
  2. 保持苗條
    • 越是苗條越容易改變, 不要混亂. 降低你的變動成本
    • 只要 3 個員工就可開始(RD, designer, sweeper)
    • 要能接受限制, 你的計畫就不會失控, 還有就是樂於當你自己
  3. Priorities
    • What’s the Big Idea, 忽略細節吧
    • It’s a Problem When It’s a Problem
    • Hire the Right Customers, 慢慢擴充, 做個堅持己見的計畫
  4. Feature Selection
    • 一半就夠了, 但要好的那一半
    • 開始說 “No”, 你處理的來嗎?, 讓使用者自己想解決方案, 忘記 Feature Requests 吧!
  5. Process
    • 開始寫程式及 demo 結果, 反覆的修正更改, 開始把想法寫出來, 不要有 “設定/Preference” 功能,
    • “完成啦”, 直接進入網路世界測試
  6. 組織運作
    • Unity, 要有單獨(不被打擾)的時間
    • 開會絕對是毒蘋果, 慶祝你計畫上可能的小小勝利
  7. 員工
    • 僱用少一點人或晚一點開始雇人
    • 做事而不是高談, 不要掩飾你的熱情
  8. 使用者介面設計
    • 一切從使用者介面開始, 從中心畫面開始往外
    • 要考慮正常使用, 新增時空白及錯誤時的畫面, 要有一致性
    • 使用者介面才是你的著作權
  9. 寫程式
    • 用少少的軟體(可以依賴 opensouce), 快樂至上, 讓程式自己說話,
    • 你寫的程式可能是負債, 要小心謹慎
    • 讓資料可以透過 RSS, API 和世界連結
  10. Words
    • 沒有 Functional Spec
    • 不要寫常常過期又沒用的文件,
    • Tell Me a Quick Story, 給你的計畫命個名
  11. Pricing and Signup
    • 免費使用, 使用者容易加入及取消
    • Silly Rabbit, Tricks are for Kids
  12. Promotion
    • Hollywood Launch, 建立一個網站能介紹你的產品
    • 利用 Blog 的力量, 早早提供一些消息吸引大眾, 追蹤你程式內 log
  13. Support
    • 讓開發人員感受 Support 的痛苦, 免訓練即可用(也不用 manual, 只要有 online help & FAQ)
    • 快速回答問題, 不用害怕跟客戶說 “No”
    • 善用 Forum
  14. Post-Launch
    • 每月可以調整一下程式, Keep the Posts Coming, 讓程式更好而不是 Beta
    • 所有 Bugs 要分輕重緩急, Ride Out the Storm, Keep Up With the Joneses, Beware the Bloat Monster, Go With the Flow

軟 體/網站人員應該對這些新看法覺得蠻有趣的, 看到專案市場常常有人在抱怨, 但有一些人已經開始採取另外的作法. 不像現在軟體公司養那麼多人, 都快要進入恐龍級了, 為了獲利只得外包到人工便宜的地方, 不然就是壟斷那塊市場, 或許他們是因為網路公司的背景, 讓他們有如此不同的看法吧! 這些理念及經營手法多少可以從 37signals 及一些新興的 web 2.0 網站看出來

讓Ubuntu上網速度加快

我想大家都知道上網時,電腦會透過DNS要求遠端IP
拿到IP後才可以進行連線
而通常連線到DNS的這段時間其實是可以不需要的
只要自己的主機架設DNS,或者在/etc/hosts上手動設定網域名稱跟IP
就可以加快網路速度!
可是,手動設定網域名稱跟IP不是每個人都會,而且設定繁瑣,更新困難
乾脆就裝個輕便型的DNS吧:P

$ sudo apt-get install dnsmasq

$ sudo vim /etc/dnsmasq.conf

把listen-address=127.0.0.1
弄好後存檔離開

接著設定dhclient.conf

$ sudo vim /etc/dhcp3/dhclient.conf

確定這幾行的樣子是跟以下一樣:

#supersede domain-name "fugue.com home.vix.com";
prepend domain-name-servers 127.0.0.1;
request subnet-mask, broadcast-address, time-offset, routers,
domain-name, domain-name-servers, host-name,
netbios-name-servers, netbios-scope;

尤其是prepend domain-name-servers 127.0.0.1;這行,這行如果是註解就請去掉。
存檔離開

打開/etc/resolv.conf吧

在nameserver的第一行加上自己主機
存檔離開後就可以restart dnsmasq
$ sudo /etc/init.d/dnsmasq restart

OK,來試試看是否正常運行

$ dig google.com
看看Query time
第一次可能會超過10
第二次試試看,應該不會超過3 :)



如果你是xDSL使用者,可以參考下面的其他設定
打開/etc/dnsmasq.conf
尋找
#resolv-file=
註解取消,加上
/etc/resolv.dnsmasq.conf

存檔離開後把/etc/resolv.conf複製一份,路徑名稱是:/etc/resolv.dnsmasq.conf

編輯/etc/resolv.conf
確定檔案內只有一行
nameserver 127.0.0.1

存檔離開,修改/etc/ppp/peers/dsl-provider
把usepeerdns給註解掉

OK~ 成功!


2006年8月1日

工具發佈: CharArray

呼.. 為了EasyURL,剛剛花了點時間自己搞了個產生亂碼的程式
程式碼在這邊
想看的請用Shift + 左鍵點選(或者右鍵開新視窗;如果是Firefox使用者建議使用”用新分頁開啟”)
class CA
def generate times=1
times = 1 if times <= 0
return (1..times.to_i).to_a.collect{|x| (('a'..'z').to_a+('A'..'Z').to_a+('0'..'9').to_a)[rand(62)]}.join
end

def gen times=1
generate times
end
end

程式碼修正:
心得:被GSR用一行嗆明.. 我真的該檢討>"<