故事是這樣的,最近手邊在寫一個網頁相關的facebook message viewer,然後…嗯…我根本不會寫網頁:前.端.超.難 。
正好這時候,學校的開源社在校內舉辦 hackthon,覺得這是一個大好機會,可以認識其它強者幫忙我作這個project,於是就報名了。
這是我第一次參加hackthon,想說先從比較小的 hackthon 開始,累積一點經驗,看有沒有機會參加玩真的hackthon, 畢竟如隔壁棚qcl 大神都已經在參加真的黑客松,還遠征芬蘭大殺四方,嚇得老外屁滾尿流,在大神面前我根本只是業餘來亂的,不努力追一下怎麼行?

在hackthon 之前,我已經著手在這個project 一段時間,把後端的parser跟資料庫都寫完了,在hackthon上面只要開API跟寫前端就好了
第一天首先上台簡報一下自己想做的東西, 結果就徵到一名隊友,傳說中的昆立大神,雙方溝通一下API的格式; 然後他埋頭寫了一下下,就用Vue.js 把前端整個寫完了,現在的user interface 坑全部都是隊友填的。
哇靠這到底是什麼神速,太強請受小弟一拜 m(_ _)m

然後…試著的所以我的Code 到GAE 上面,結果它用掉太多記憶體跟資料庫,記憶體是我parser 沒有寫好, 總之不付錢的話就沒辦法執行,啊我就是沒錢嘛咬我啊= =…

記憶體的問題,把parser改過之後就解掉了;資料庫真的就無法,資料量就是這麼多,最後放棄直接先睡了。

第二天為了demo ,決定直接把後端的parser 跟資料庫都從GAE 上請下來,整個改成 local server,伺服器跟資料庫用Bottle.py 跟sqlite3重寫。
因為GAE 的 ndb 和 sqlite 的介面幾乎不同,平常也沒有在寫SQL 的相關的Code ,第二天重寫後端就用掉一整個早上,幸好到了下午2點左右,全部修完之後作品就會動了, 上台demo 也得到不少迴響,第一次hackthon 就這樣堪稱順利的結束了。

我覺得參加hackthon,在參加前最好先有個題目的雛形,自己也可以先寫一些,這樣到了會場,一早 demo 過點子之後就能立即的尋求幫助和建議,遇到的問題也能問人,很快的得到答案。
到了hackthon 現場,就是專注在寫Code的上,在那個專注工作氣氛下,工作效率相當高, 像我在第二天,很快的就把SQL相關的語法還有bottle.py 摸熟了,也為了趕出成品,第一天晚上,把我原本消耗超過600 MB memory 的parser重寫成只需要60 MB,算是把工作壓到兩個全天的成果。

當然現在的code 滿雜亂的,需要好好整理整理才行,最後的成品大概就是這樣,已經可以爬訊息跟去瀏覽特定時間的訊息:
messengerviewer

這次hackthon 的氣氛算滿輕鬆,也有很多玩笑話,在這裡節錄一些語錄:

A: Steam 雖然出很多單機遊戲,但還是提供了成就系統……
B: Steam 根本是理財遊戲吧XD
C: 遊戲收集遊戲(XDDD

某:前後端分離?前端起手式:Bootstrap

某:Golang寫起來跟 C 有 87 %像