What have you found for these years?

2008-11-13

2008-11-13

1.
要改個習慣,不要再 vi 了,一直以來 vi vi vi 都沒問題,
不過在一台(老嗎?) FreeBSD 上,vi 還真的就用 vi?
整個不會用 @_@ 多打個 m 其實也沒多費事,只講 vi 有時候也會誤會。
所以還是習慣打 vim 吧

2.
全面改用 app-deploy 來做 web node 管理...
http://github.com/godfat/app-deploy/tree/master

先設定一個 project 名稱,假設叫 zzz
godfat> sudo useradd --create-home zzz
godfat> sudo su zzz
zzz> git clone ssh://git.roodo.com/home/zzz
zzz> rake app:install # 這會失敗,因為 app-deploy 還沒安裝
zzz> rake app:install # 上面會自動安裝,重跑一次安裝其他東西

zzz> tar -cf zzz.tar.gz --gzip /home/zzz # 打包
嗯,以後加個 task 好了:zzz> rake app:package.
這會打包所有的 gem, 放在 /home/zzz/.gem 底下的

zzz> rake app:server:restart # 預設是 thin

zzz> scp zzz.tar.gz s2.roodo.com:/~ # 丟到其他 web node
zzz> ssh s2.roodo.com -l godfat # 連過去

godfat> tar -zxf zzz.tar.gz
godfat> sudo useradd zzz
godfat> sudo mv home/zzz /home # 用剛剛的 home
godfat> sudo chown zzz:zzz /home/zzz -R # 改權限
godfat> sudo su zzz
zzz> cd ~
zzz> rake app:server:restart

以後有任何更新,就 rake app:deploy 即可,會自動更新所有程式,
然後重啟所有 server. 如果不要更新程式,就 rake app:server:restart
需要 nginx 當 reversed proxy 也很簡單:

namespace :app do
namespace :server do
task :restart => ['nginx:restart', 'thin:restart']
end
end


接下來就是寫方便遠端操作的 rake task 即可...
依序進入所有的 web node, 對所有的 node 呼叫 rake app:deploy 更新,
重啟則用 rake app:server:restart.

不過以上欠缺的是 rails 本身的 gem dependency,
這部份可能就是 rake gems:install 吧?merb 則可能用 thor 吧?
如果都是 rake 的話就很單純,自己定義
namespace :app do
namespace :install do
task :after => ['gems:install']
end
end

之類的。這邊要用 after 而不是 before, 因為 github 上的 gem 不能直接裝。
thor task 就不知道能不能這樣做了...

不過我總覺得,搞不好 thor 就是在做這些事,那其實我直接用 thor 就好了...
反正寫都寫了,就用一陣子吧。發現 thor 比較行的話,隨時再切過去。
希望 thor 跟 rake task 可以相容,這樣要改過去就很快了。

3.
移除 will_paginate, 換上 pagify.
不過很明顯使用便利性不足 will_paginate, 但還是要換,
原因是... 要實際用過才知道哪裡需要改進 :s
所以就還是上吧!反正換掉 will_paginate 是勢在必行的。

4.
in_place_editing 實在是很爛,問題一大堆,擴充超不方便...
好像也沒什麼人把他改好用又 open source 出來。好吧,那我自己 fork 來改。
http://github.com/godfat/in_place_editing/tree/master
改了滿多的,整理如下:

1. 可丟 instance, 而非 name
2. 如果空白應該顯示的文字
3. controller 裡的 callback, for permission check.
4. 殺掉 tag...

越前面越認真,第四點幾乎就是暴力加上去了。因為懶得對他認真了...
覺得這東西似乎不值得對他認真,那就且戰且走吧。其實 rails 都嘛且戰且走...

5. 昨天想講什麼完全忘記了

0 retries:

Post a Comment

All texts are licensed under CC Attribution 3.0