TA-Lib

TA-Lib 是個歷史悠久,擁有相當多金融技術指標的實作,也被很多金融有關

的軟體所使用,已經有包含將近 200 種指標,

也有 SWIG 幫忙打包的 Perl , 及 Python 套件

這可是程式交易的利器,輕輕鬆鬆,200 個指標可以用,感謝 Open Soure 的前輩們

Python 的套件,有另一位大哥,用 Cython 重新做新的介面,效能更進一步

不過在 windows 下面編譯還蠻麻煩的,要有 Visual Studio 2008 ,及簡單的 patch ,

詳細可以參考

https://github.com/mrjbq7/ta-lib/issues/4

另外,自己也有需求,所以先包一包 win32 Python2.7 的安裝檔,方便使用,有需要的人也可以自取

記得,丟進去的數值,都要是 float


http://dl.dropbox.com/u/14137697/20121105/TA-Lib-0.4.0.win32-py2.7.exe

PS: 這應該是非常冷門的套件 ;-)

Python 包 EXE

關於目前 Python windows 程式打包的方式選擇也算蠻多的

有用過一些,說一說心得吧

py2exe

安裝後,直結整合到 setup.py 裡
歷史悠久,但是看起來很久沒有後續的維護,一開始我都是用這一個打包,算是很穩定

pyinstaller

後起之秀,single file 的打包方式,算是功能蠻強的,執行時,是解壓到暫存資料夾執行,但是hook 一大堆,解決非常多的套件問題,也算是一種 dirty hack https://github.com/pyinstaller/pyinstaller,算有在維護,小程式可以用他來打包執行也算簡單, 2.0 以後,打包更容易
不需要安裝,直接解壓縮後執行,有用到 multiprocessing 的模組的人,他的 importHook 蠻容易造成動態載入模組的問題,像是程式裡用 import 來載入模組的方式,都蠻容易有問題的,再來就是 hook 程式很多,如果用的第三方模組沒有支援,就非常的難包,需要自己客製寫 spec 檔

python pyinstaller.py -F -d -i your_app/app.ico your_app/app.py

-F 包單一執行檔
-D 包成一個資料夾
-d debug 打開
-i 程式 icon

會產生 your_app/app.spec 檔案,後續可以再手動調整 app.spec,再執行,其實執行 spec 檔時,沒有加 options 沒關係

python pyinstaller.py -F -d -i your_app/app.ico your_app/app.spec

cx_Freeze https://bitbucket.org/anthony_tuininga/cx_freeze/src

實作的方式,比較像是 py2exe ,是寫 setup.py 整合,簡單的也可以直接下 cxfreeze 打包,不能包 single file exe,可以另外用工具包起來,文件比較缺乏,唯一有支援 Python3
安裝完後,可以直接參考範例寫 setup.py ,要注意的是安裝完後放到 Scripts 裡的程式有路徑的問題要先修一下
我用 Python27 的例子 Scripts\cxfreeze 裡的 Python 路徑是 C:\Python\32-bit\2.7\python.exe ,請自己修改成您的
python.exe 的路徑

python setup.py build 就可以了


目前小的程式,會用 pyinstaller
大一點的程式,會用 cx_Freeze


基本薪資

這幾天看到一些新聞 (雖然台灣的新聞可信度不高)

不過連這一種好笑的 18780 基本薪資都調不上去,台灣勞工,是不是只能怪自己了

政府說今年景氣不好,那照過去,二三十年的調法,那一年說要調,可以沒有反對的理由

勞工朋友這麼好騙,也只能怪自己笨了,再說這基本薪資對一般大眾,根本不痛不癢,要上班要養小孩的朋友

一個月,相信光保姆費,有些人,都比 18780 還多,所以如果真的受到基本薪資影響的人,真的是非常弱勢

的勞工朋友,幹的是,才調 267 元,也能鬼打牆,說是景氣不好

公務人員要調薪的時候,用借的也要調,而且人家是調百分比,誰跟你基本薪資壓,人家是有調都拿的到,

那還有什麼基本的門檻,連退休人員領的退休金也是一起調,不像勞工朋友這一種,卑微到只是保護一個基本生存費用

我假如,現在拿的基本薪資,我應該連上網抱怨都很奢侈吧 !

連基本薪資都付不起保姆費,實在只是一個幌子,政府連會受基本薪資影響的人,也不願意去保障他們

這個政府,已經到了無敵禮義廉的境界,我想大家一起罵三字經只是剛剛好

真的是要公務人員領基本薪資,他們才會感受到,社會底層的辛苦

如果每年公務人員,要升等,加薪的時候,也都可以比照基本薪資的方式處理的話,大概公務人員,永遠也不用加薪了

WSDL use suds

在 Python 的函式庫裡, suds 算是通用的選擇,一直用起來也算蠻穩定的

不過在一些比較特別的網路環境裡,或是需要參照其他 XMLSchema 的時候

我比較沒有經驗,所以紀錄一下,這一個環境機器連結外部 80 port 的服務要透過 proxy


proxy_config = {‘http’: ‘http://someproxy.host:3128’}

from suds.xsd.doctor import Import, ImportDoctor
from suds.client import Client

wsdl_url = ‘http://somewebservice.com/service.asmx?WSDL'

imp = Import(‘http://www.w3.org/2001/XMLSchema', location=‘http://www.w3.org/2001/XMLSchema.xsd')
imp.filter.add(‘http://tempuri.org/')

client = Client(wsdl_url, doctor=ImportDoctor(imp), proxy=proxy_config)

print client # read avaliable api ;-)



參考資料

http://stackoverflow.com/questions/5769128/soap-client-using-suds

65 歲退休,你要更早換工作

我們偉大高尚的政府,為我們每位國民規劃未來需要工作到 65 歲才可以退休

所以假設,目前我是一個很熱愛自己工作的軟體開發人員,我要工作到 65 歲,就算我的熱情可以持續到那時候,可是依照國內廠商的現實考量,除非我自己是老闆,不然,有那一家公司,會請一個 65 歲的軟體開發人員

看起來,好像很合理的延長退休年紀,套到各行各業變得可笑,大概大有為政府假設大家都是當老闆吧

所以,現在工作的人,幾乎被迫要做選擇,如果你不是過一天算一天了那一種,而且,是沒有選擇


我說說台灣還能做的工作

1. 軍公教
2. 醫師,律師,會計師,可以獨立作業開業,工作項目不受景氣影響的從業人士
3. 其他就是老闆了,也就是自己做的人


其他的專業工作,都可以認真的考慮,應該出國工作了,尤其當你沒有創業的打算

更不要學別人說,年輕人好吃懶做,去澳洲留學打工,笑他們做的是低階粗俗的工作,當他們在澳洲農場工作,一個月可以賺到 7 萬元台幣,也可以開開眼界,體驗異國的文化的時候,你又何必勉強他們要在數字超商打工,賺取微薄的生活費

提醒一下,即刻起,好好想想什麼工作可以做到 65 ,不管要不要離開台灣

最後的 X220

這一次又成為了一個經典,以前告別傳統比例螢幕,這一次告別七列鍵盤,科技進步的非常快
下一台,不知道會是什麼樣子,不過換口味是一定的,因為經典消失了

利用這一次暑假電腦展的機會,用非常經濟實惠的價格,帶了過了時的經典小黑 X220i 回家,雖然是低階的機種

不過,用來開發還粉贊的,跑 Mac Lion 效能也不錯

照片,看到左上腳大顆的 ESC 鍵,真是經典的 VIM 專用機



更新 BIOS

1. 抓取 BIOS bootable iso file http://download.lenovo.com/ibmdl/pub/pc/pccbbs/mobiles/8duj18uc.iso

2. wget ‘http://www.uni-koblenz.de/~krienke/ftp/noarch/geteltorito/geteltorito.pl’

3. perl geteltorito.pl 8duj18uc.iso > biosupdate.img

4. dd if=biosupdate.img of=/dev/yourusbpendriver bs=512k

5. 用做好的這一支 USB 隨身碟開機,更新 BIOS

參考資料

1. 抓取 BIOS bootable iso file http://download.lenovo.com/ibmdl/pub/pc/pccbbs/mobiles/8duj18uc.iso

http://forums.lenovo.com/t5/Linux-Discussion-Knowledge-Base/Updating-the-BIOS-via-USB-X220-s-running-Linux/ta-p/674677

Install Mac OSX Lion 10.7.4

參考資料

http://forum.thinkpads.com/viewtopic.php?f=32&t=102098

http://bbs.pcbeta.com/viewthread-1054554-1-1.html

sudo vim /etc/grub.d/40_custom

menuentry “Mac OSX” {
insmod hfsplus
set root=(hd0,2) # /dev/sda2 is my OSX partition
multiboot /boot
}

sudo update-grub

Debian 更新 Eclipse

用 Debian testing 的人,最近應該都會更新到 Eclipse 3.8 版本

testing 上面的 eclipse-cdt 的套件不夠新,會少一些東西 Android Development Kit 更新到 r20 會報 套件相依的問題

Cannot complete the install because one or more required items could not be found.
Software being installed: Android Native Development Tools 20.0.0.v201206242043-391819 (com.android.ide.eclipse.ndk.feature.group 20.0.0.v201206242043-391819)
Missing requirement: Android Native Development Tools 20.0.0.v201206242043-391819 (com.android.ide.eclipse.ndk.feature.group 20.0.0.v201206242043-391819) requires ‘org.eclipse.cdt.feature.group 0.0.0’ but it could not be found

解決方式紀錄一下

先不要用 debian 自帶的 eclipse-cdt

更新 Android 開發套件的時候,先安裝,新版的 cdt 到 加兩個 software update 的路徑

名稱可以自己取

Window - Preference - Install/Update - Availiable Software

安裝 CDT
http://download.eclipse.org/tools/cdt/releases/juno


安裝 Eclipse 更新列表下 Web, XML, Java EE and OSGi Enterprise Development 下面的 WST Server Adapters. 套件
http://download.eclipse.org/releases/juno/


都裝完以後,就可以裝新版的 Android Development Kit 了

夏天

假日,帶小朋友去海邊走走,踏一下浪,玩玩沙,看看大哥哥衝浪 這一個簡短的行程還遇見了,多年不見的舊同事 Bruce,也是我的 BSD 啟蒙老師,雖然,後來還是多用 Linux XD

multiprocessing in wxPython

根據 wiki 上面的文件說 http://wiki.wxpython.org/MultiProcessing

不可以在 wx.App 的程式迴圈中,去產生新的 Process

真的試了一下,還真不行,在不用 threading, subprocess, 或是 wx.Process 的寫法下,只要把產生新 Process 的動作移出

wx.App 的範圍裡就沒有問題了

另外如果程式是用 pyinstaller 包裝成一個檔案,也要注意這 Process 需要重包來解決問題

http://www.pyinstaller.org/wiki/Recipe/Multiprocessing


筆記一下,以免以後忘了