Ruby Tuesday 活動一週年啦,這一次的聚會由 weijen 和 deduce 帶來 Ruby metaprogramming 和 Facebook on Rails for beginners 兩場演講。
時間: 2009/12/22(週二)晚上七點到九點。
地點: 台北市 果子咖啡
😆 👨🏻💻 📚 🚀 💰 ✨
In my Rails Best Practices slides, I only give simple code without any description (unless you heard my talk :p), so let me explain here.
my point is: “If you use RESTful design, you should NOT use default route.” Why?
For example:
map.resources :users
map.connect ':controller/:action/:id'
map.connect ':controller/:action/:id.:format'
You expect only “PUT /users/1” will update user data, but because you keep default route, so “GET /users/update/1?user[email]=[email protected]” still works!!
In the same way, “GET /users/create” and “GET /users/destroy/1” works too!! Even worse, the latter can create/update/destroy data without Request Forgery Protection :/ Rails does not check CRSF for HTTP GET.
Conclusion: Remove default route, use purely resource-based routes and named routes for special purpose.
心血來潮,買了新的網址 ihower.tw,即刻生效。
原來的 ihower.idv.tw 之前就買到 2012 年了,所以暫時不會有什麼影響,也用了以下的 Apache 設定把流量都轉到新網址:
<VirtualHost *:80>
ServerName ihower.idv.tw
ServerAlias www.ihower.idv.tw
RedirectMatch 301 ^(.*)$ http://ihower.tw$1
</VirtualHost>
BTW,測試了一下,新的網址大陸應該可以直接連,(暫時?)毋須翻牆。
iPhone 上面不是沒有 IRC client,但是要掛站就不太方便了。我平常是用 screen+irssi 的方式來掛站,但是要在 iPhone 上使用 SSH terminal 連上 server 看 irc,實在太苦了 :/
Social 是 gugod 的最新力作,它會在 server 上登入 IRC 和跑起來一個 Web server,而且還使用了 HTTP streaming 的方式將訊息即時推送到瀏覽器上,達成隨時打開手機瀏覽器就可以看到掛站的訊息的任務。
安裝的方式,首先確定有 Perl (在ubuntu上內建就有了),接著裝:
sudo cpan YAML
sudo cpan Encode
sudo cpan AnyEvent::IRC
sudo cpan FindBin
sudo cpan HTML::Entities
sudo cpan Plack
sudo cpan Plack::Request
sudo cpan Tatsumaki
sudo cpan AnyEvent::Twitter
sudo cpan AnyEvent::Plurk
sudo cpan Moose
下載 Social,編輯設定檔加入 IRC 頻道,Social 也支援 Twitter 和 Plurk。
然後執行 ./social -c config.yml -p 9999
最後就是打開 iPhone 的 safari 連上去就出現啦!!
經過詢問,如果要做 authorization,目前可以用 Apache 來做 http auth 當前端,然後執行 social 時加上 -h 127.0.0.1 的限制。
感謝 OSSF 工作坊 安排這次的課程,投影片上傳到 slideshare 了:
如果真是高中生跟大學生為主的話,還真想把內容弄宅一點的 :p 不過主辦單位告訴我還是社會人士為主之後,就還是實用一點吧。