RPG公會-RPG公會永久存串計畫
說在前面 – 廢話引擎2.0再起!
是說我也快一個月沒有寫點別的東西了…期末考跟程式比賽快把我給搞壞了…好不容易把繁忙的事情處理掉之後,總算可以專心地把這個計畫開個頭,寫出一個基本的架構出來。
不過…說到暑假,第一個想到的應該是西瓜、海灘跟避暑勝地才對…可惜小弟今年應該是跟這些東西無緣了,只能坐在書桌前呆呆地打著報告、自傳跟文章…對了,還有滿滿的程式。我今年到底是惹到誰了呀,就不能給我一個愉快的暑假嗎?
(迷之聲:今年的你,沒有暑假。)
你…再怎麼過分也不能說這種話…信不信我等一下就甚麼都不管就飛去日本…
(滿滿的計劃表跟作業從頭上砸下來,不知道為什麼裡面還有掃把跟畚斗)
好啦!別再砸了!寫完這篇我就去打掃好不好…(一堆碗盤突然出現在桌子上)還有這麼多家事…到底我的暑假去哪了…
永久存串計畫是什麼?
相信幾年前各位就知道,公會區的串紀錄最多只會保留三個月(正確來說是90天)。因此公會內部積極宣導著存串的重要性,這是很正確的做法。不過有時候就會一時忘記要存串(畢竟存串時按照存串方式可能會很麻煩),然後不知不覺90天就過去了…過去的串是找不回來的,這個串就隨風而去…
另外一個問題是,當你想要找出某一個很久以前的串時,公會區的設計可以說是相當蛋疼的…你需要不斷的按著【看更多】一邊回朔歷史紀錄,然後隨著你按下的次數越多,你的電腦也就會越來越當…
這些問題都指向一個同一個解法:統一蒐集所有的歷史開串紀錄後,再加以整理,不僅超過90天後依然能夠取得當初的開串紀錄,在搜尋上也會比以前簡易許多。這就是永久存串計畫的想法~
另外,這些串都以統一的方式儲存,如果未來有分析的需求(現在正是大數據與資料探勘的時代!)統一的儲存方式將會大大的減少前處裡的時間。正是一舉多得的事情呀~
永久存串計畫的細節
永久存串計畫分為存串與展示兩塊部分,存串的部分是以軟體蒐集近期的開串編號後,以快照的方式紀錄掃描當時的整串狀況。目前以半自動方式進行,每兩天會將近七天內的所有歷史串進行一次快照,並且不定期進行一到兩個月所有歷史串的快照。由於需要登入巴哈的緣故,存串的步驟無法全自動進行,所以目前只有在下進行存串的動作。也歡迎有趣參與存串計畫的各位與我聯繫。
展示網站主機架設在Openshift網站上,提供歷史串展示的服務,用戶可以在網站上查詢至今已經儲存下來的所有串紀錄,並且下載相關的JSON紀錄。網站索引更新時間基本上會與存串時間同步進行,但也會有延遲一兩天的狀況,這一點還請見諒。
關於儲存的格式
在進行這一次計畫時,儲存的格式是非常重要的部分,本計畫與大部分存串方式不同,採用JSON格式作為儲存格式,與其他方式相比,JSON有以下特點:
- 檔案小,容易儲存:JSON格式是純粹的文字檔,每一串的紀錄相當小,完整三個月的紀錄大約77MB左右,因此比較能夠儲存大量的歷史資料。
- 容易解讀:以JSON格式儲存的資料具有一定結構,電腦非常容易進行讀取,雖然因為我們的檔案沒有換行比較難讀,但透過網路上各式JSON解析器解讀後,就可以輕易了解該串的內容。
- 容易轉換成其他格式:該格式儲存的檔案相較於其他存串方法,比較能夠以其他軟體或自製程式轉換成其他格式儲存。
但相對於其他帶有圖片的格式來說,這個格式並無法儲存圖片,但我們已將所有圖片連結轉換成網址,方便需要的人依照網址重新抓取圖片。而圖片是否失聯則不是我們所關心的重點,畢竟魚與熊掌不能兼得,想要抓取所有歷史資料,圖片的捨棄有助於節省檔案大小…
萬年串的處理
目前的存串方式平均一到兩天會掃描一次七天內的紀錄,對萬年串來說最多也只會紀錄開串後約10天內的紀錄,因此針對萬年串,我們提供萬年串的通報服務,只要將萬年串的網址通報給我,我就會在每次快照時也進行該串的快照,避免萬年串沒有被完整記錄的狀況發生。
相關原始碼
當然,目前的計畫只有我一人在獨自運作,如果….(應該不會)哪一天因為任何因素得被迫停止紀錄時,整個系統將會完全停擺,也就無法說是永久存串了,因此這個計畫所用到的所有程式碼與架站所需的軟體將會在近期內以公開的方式發布,希望有興趣的人可以加以使用並且改善這個計畫,讓永久存串變得可能。
結語
這一次的計畫,感謝所有當初在RC上討論過的所有夥伴們。永久存串的意義在於讓紀錄得以不被抹滅,儘管這個計畫受到時間與資源的影響,其實可以說是相當的脆弱。但還是期待這個計劃能夠幫助到所有需要的人。