莫拉克颱風災情支援網 - 救災網站背後技術與技巧 (3)
有鄉民說想看當年八八風災的技術筆記,特此撈出來回憶。這是我 2009 所作,當年 25歲。
=====
有效防止來亂的
不過雖然前面強調了一堆,系統沒必要就不需要自己寫。我在後期還是花時間寫了一堆 CODE。
做什麼呢?除了改善後台介面讓志工能容易整理版面資訊外,防止來亂和詐騙的。
沒錯,國難當頭,還是有一堆人趁機上機來洗版(宣揚反山達基,瘋狂的一直洗),把支援資訊整理的志工搞得人仰馬翻。還有私人貼徵募資訊,實際上卻是以 comment 自導自演疑似要來詐財的。
所以這個系統,明明是救災專用的,卻很奇怪的有強悍的...
- IP 黑名單過濾
- 關鍵字黑名單過濾
- Captcha
- 不當留言自動下架功能...
我的想法是這樣的:為什麼會開發後台,主要是因為這是一個內容系統。我的強項是網站開發,但做了網站開發,空閒時間就所剩無幾了。內容過濾一定要請志工幫忙,而志工也是很忙的,加上一個人的熱情有限。我能做的幫忙也只有改善後台以及開發自動機制,降低他們的工作負擔,不讓他們的熱情因為對抗瘋子和騙子而迅速燒乾。
至於瘋子和騙子怎麼處理呢?嗯,我們直接送交 PTT 鄉民,不自己經手...( you know what I mean ..:p)
====
以上。
也許,有朋友認為,這是我個人熟悉 RoR 才能這樣玩出這些東西。那如果不是學 RoR ( 只會寫 php / python / perl ...etc.),甚至是不熟網頁語言開發要怎麼學我一樣這樣搞呢?Well,我認為其實這世界上有相當多資源,只要你熟悉 mashup,一樣也可以得到相同的效果。
在這裡也想提出重要的一點:「自己搞一套系統」,接下來面得的問題,就是要承擔 Scaling 的工作。Scaling 本身就是一門技術學問,一般人不一定有能力,或者在這個時間有精力去 handle。現成的 BSP 平台,往往被視為是缺乏彈性的而被棄用。但大家卻忽略了,他們通常是經得起突發流量考驗的。況且 BSP 平台並非每個都是缺乏彈性的,諸如 Wordpress.com、Blogger.com、PIXNET,其實都是有辦法利用 CSS / JavaScript / 第三方Widget / Google Service 做 customize,而達到相同效果的。
這也是一個可以思考和利用的方向。
在最後,我再重新整理複述我認為救災支援網站需要注意的五個重點。
1. 儘快上線,功能其次 2. 高流量承載與調校 (被打掛 = 無用) 3. 廣為人知 4. 有效利用第三方外掛與資源 5. 有效防止來亂的
希望這篇文章能在以後(不過我很認真的希望,以後拜託不要再發生這麼大的災難了)幫到大家。
====
最後我要感謝這些單位/朋友的幫助:
- PIXNET ( CDN 贊助 )
- Handlino ( Registrano 系統,rails opensource plugin ) , ihower
- PTT 鄉民管版志工:willyt / tjackalym / hrs113355 / meow0318 / Bluesdan / albb0920
- EvenWu ( CSS design support 、三顆 Heroku dyno )、underfire ( CSS debug)
- 現在還在各地救災的熱血鄉民
====
如果對文章內提到的技術有興趣,你可以 Google 一下以下關鍵字找到解答:
- Ruby on Rails / Heroku
- Git
- CDN
- High Performance Web Sites
- jQuery + RJS
- SEO
- Google Doc , Google Sites, Google Friend Connect , Google Analytics , Google Maps