發表文章

目前顯示的是 五月, 2013的文章

MongoDB as queue

想要把 MongoDB 裡的其中一個 collection 做為 queue, 讓多個 worker 存取來做事,可以利用 MongoDB 的 findAndModify。 findAndModify 是 atomic operation,執行的結果會回傳一個物件並且更新他的狀態。

例如現在有一個 collection 名為 keys, 裡面存著 {"id": id, "queued": false}

db.runCommand({"findAndModify": "keys", "query": {"queued": false}, "update": {"$set": {"queued": true}}})

使用 pppd 連接 VPN 時連線凍結

本來都是用學校的 Junos Pulse SSL VPN  連線到學校查論文,不過最近學校的SSL VPN一直壞掉,所以只好自己在 Lab 的電腦上裝 PPTPD。不過問題來了,用 Network Manager 連進去都可以,可是用 pppd 連線時確一直無法上網,不過倒是可以 ping 到 server。

比對了一下 routing table 發現是一樣的,而且我有在/etc/ppp/ip-up.d 底下加上了 01-route.sh,所以會把所有的 traffic route 到 ppp 去
#!/bin/bash route del default wlan0 route add default $1

azhuang.me 網域

買下了 azhuang.me 這個網域,所以 blogger 也一起轉過來了 :P
以後請使用 http://blog.azhuang.me 連到我的網誌。

MongoDB 初體驗

因為 Web Mining final project 我們想做 twitter tweet 的 clustering 及 classification,所以需要從 twitter 下載大量的 Tweet 做為實驗用途。一開始我是把這些 tweet 存成 JSON 在文字檔裡,不過隨著 tweet 量越來越多,用文字檔實在很難處理。由於本來就是存成JSON的格式,所以就想到了 MongoDB。

之前只有玩過try MongoDB, 從來沒有好好用過他,這次剛好有這個機會就來用一下 :P
裝好MongoDB後就可以開始始用了。由於這次 project 是用 ruby 寫的(因為有方便的 Twitter Gem 可以用),所以我用了 Mongo Gem  。Mongo Gem 的用法跟 Mongo shell 裡的用法差不多,簡單的用法如下,更多的說明可以參考 Mongo Gem 的 wiki