2010年8月27日 星期五

memcached in goristock

這幾天在偷偷做另外一個小東西時,用到 GAE 的 memcache API, 看資料發現 memcache API 是利用 memcached 模組修改而來。接下來就搜尋找到一系列文章提到 memcached 的應用,像是「{|ihower.tw| blog } | 如何使用 memcached 做快取」這篇除了提到應用外,還有提到 key 命名的問題。

不過我是想把快取的機制用在 goristock 中,goristock 在取股票資料的時候都必須連到證交所,有的時候不會只查詢一次,重複抓取沒有效率。另外 timeser.py 有一個 overall(),是跑整個上市股票的資料來分析買賣點的功能,可是這功能每次都要跑很久,每一檔股票都要再下載一次盤後交易資料,所以變得非常冗長又沒有效率。因此新開一個 branch 來實作這個功能,另外這 branch 是為離線版本來開發。
  • 首先先安裝 memcached
    sudo apt-get install memcached
  • 之後安裝 python-memcache
    sudo apt-get install python-memcache
memcached 可以設定一些細節,不過我這裡沒有做,單純的使用預設的設定。timeser.py 使用 goristock.py 的 class,所以修改了 goristock.__init__() 部份。


在 timeser.py 加入 preoverall() 來預載資料。


之後來跑 timeser.overall() 就飛快,抽換不同的分析條件就不用在重抓一次資料。


開發離線版本除了目前加入 memcache 外,還有一個方向就是把資料儲存下來,不過這方面還在參考其他高手處理的方式,再慢慢實作加入。不過現在還是努力寫一下論文好了,老闆在追趕了!

2010年8月24日 星期二

初接觸 wxPython

上禮拜研究所 meeting 的時候,向老闆展示一個小程式,老闆對於這程式相當有興趣,二話不說叫我隔天 mail 給他,但是這程式是用純 python 寫的,而且老闆用的作業系統是 XP,光是要啟動這程式就要先安裝 python,安裝完還有打指令啟動。這樣的步驟對老闆來說不太可能使用。

想說用 py2exe 包成一個 exe 給老闆,沒想到在 XP 底下會有字碼的問題,但我的程式都是用 UTF-8 來編寫,輸入、輸出要轉來轉去實在太讓人煩躁,乾脆就直接用 wxPython 吧!

網路查了一下資料,發現有推薦的 GUI 程式 wxGlade,就簡單拉個物件,趕快測試看看有沒有什麼問題,因為隔天中午就要寄給老師!還好,wxGlade 輸出的程式很清楚,稍微用 help() 查詢一下有哪些屬性可以用,就完成了非常陽春的版本。


結論是就這樣接觸了 wxPython,而且也覺得好酷!本來是想要先把書看完再用,但就在這樣的情況下趕鴨上架完成!後來在 YouTube 看到有一系列的示範:wxPython Programming Tutorial,做的還不錯,也可以參考看看。

2010年8月16日 星期一

goristock in COSCUP 2010 Lightning Talk

COSCUP 2010 閃電秀發表 goristock 似乎還滿多人迴響的,感謝對此程式有興趣的人。但目前這程式還在開發,也僅僅發佈 0.1 版本,由於在短短五分鐘的閃電秀中,後面關於未來的開發方向來不及講到,所以建議有興趣的朋友可以看看以下簡報後半部份。
另外我在活動前也做了一份比較正經的簡報,有提到程式應用的架構,這一份也提供給各位參考。

這裡我還是要聲明一下,以上兩份簡報中所提到的股票,是為了說明程式的使用範例,並不表示任何的買賣建議。最後感謝大家在閃電秀中不吝嗇的掌聲m(_ _)m