prism

2013-01-23

誰是炒房最大咖

大家真的不要亂怪建商了,他們只是依照政府規劃的政策討生活而已

就和你現在上班,或是做做生意是一樣的意思,台灣的房地產為什麼只漲不跌,其實一切都是政府的規劃,或者說明白一點,該說是政客的規劃。

台灣和其他國家最大的不同,不是土地價值,不是人民所得,真正的不同是政客,把土地房屋,操作成投資工具,或是政治利益,土地及房屋維持的稅率,相較其他國家,遠小於實際的資產增值利益,政客的利益,除了各種公共支出外,最大的利益,就是,農地,變建地,建地,變工業區,再變住宅區,最後成了商業區,有些地方,比較沒人管的,都是直接保護區,變更成住宅區,其實沒什麼城鎮開發,一切都是利益

當全台灣,最有利益的事情,是炒房的時候,科技大老不思新創,只炒房,軍公教不思公民利益,炒房,人民百姓,也知道,如果什麼都不做,現在不買,以後也買不起了,或是多買些以後還可以養老,不知不覺也加入了炒房的行列

一個基本的政策,就是房屋土地的稅率,不成比例,這可是政客最大的財庫,所以眼睛就會自然變瞎,每個政黨皆然,不然你以為,選舉這種勞民傷財,花大錢,賺一點點的薪水,這種賠錢生意有誰會做,拿錢被逮,都叫作政治獻金。

稅法的例子,舉汽車的稅率,就很少有人拿來投資,除非真的 "愛",自然汽車就會備,規類是一個負債,不會是投資工具

房子的稅率,是政府刻意讓有限的土地資源變成投資工具,或是成為政客的政治利益

最後放兩張圖,工業用地,蓋豪宅,政府一天到晚打著拼經濟的名義,收括人民財產,再假開發之名,再整個給某某有辦法的人端走,已經進行很多年了,會不會停,應該不會,因為制度使然





2012-12-16

幸福的臉

幸福有沒有在我身邊 怎麼一直看不見

幸福有沒有在你那邊 讓我看看他的臉

家裡已經找了好多遍 只有溫暖的房間

爸爸說幸福就在鏡子裡 那就是我快樂的臉

老師說如果慾望能夠少一點 快樂就會多一些

愛惜地球給我們的資源 隨時記在心裡面

我用善良禮貌的雙眼 發現大家幸福的臉

2012-12-14

Be a gopher

golang

試試 golang 的過程,做一下筆記

基本上,是很棒的開發體驗

優點

1. 語法簡潔,但是嚴謹,限制 import 的位置,function name 的第一個字大小寫代表 public 或是 private ,程式中沒有用到的 import module 或是 variable 會有編譯錯誤,編譯速度飛快,和 Java 及 C++ 比較,你一定會感動到流眼淚,當然不拿什麼 IDE 快捷鍵,或是安裝插件的功能,單純語言本生的語法探討,C 的 pointer,Python 的 slice ,anonymous function

2. 用 type struct , type interface , receiver function 的方式,達到類似物件導向的繼承多型,介面功能(我也不是什麼物件導向專家,無法做更深層的探討)

3. 語言本質上的簡化,讓學習的曲線平緩,像是在寫手稿語言一樣,人員訓練比較容易 (像是找一個,會C++ 的可能一年,說的上熟 C++ 的可能要N年 XD )

4. 內建 automatic garbage collection ,基本上,不需要去個別管理記憶體,不過這個特性記得不要濫用 XD

5. Concurrency 有 gorountine 及 channel 的實作方式,也有像傳統 threading 方式的實作方法,簡化很多

6. gofmt 定義一致簡易的 coding style,對程式碼日後的可讀性有幫助

7. 內建 testing 的模組及結構

缺點

1. 工作機會少 (如果你是抱著開心的心態,這一點沒差)

2. 可用成熟第三方模組比較少,像是 Java ( Maven Central),Ruby(gem),Python(pypi), javascript (npm) (這一點很難說,目前golang 就可以直接在 import 區塊 import hg, git, svn 還有 bzr 的 source tree ,到底集中式,還是分散式好,很難說,但是有一個套件管理中心很重要,像是 javascript 的 npm 粉贊) ,目前 golang 可以看到的套件 http://godoc.org/ 大約 6000 多個套件左右,再扣一些測試,或是非常 beta 的套件,目前第三方模組比較缺乏


說完了,有興趣的朋友可以繼續看

如何入門,真的很簡單,一般看一份蘋果日報的時間,基本的語法就可以看完了
有 C ,Python ,Java,Ruby 基礎的朋友可能更快,最下面有書本的連結

建置環境

1. 直接由官方網站下載安裝,FreeBSD ,Mac,Linux,Windows 都有,我主要的說明是在 Debian Linux 下面進行,下載 https://code.google.com/p/go/downloads/list ,安裝說明 http://golang.org/doc/install#introduction

2. 設定 env ,記得把 GOBIN 的路徑加到 $PATH 裏面,windows 的朋友請進行設定環境變數
GOBIN=/usr/local/go/bin
GOROOT=/usr/local/go

3. 將 /usr/local/go/misc/bash/go 複製到 /etc/bash_completion.d/ 下面,用 zsh 的朋友也可以在 misc 資料夾下面看到對應的檔案,這樣以後 go 指令在 terminal 下,就可以 autocomplete 了

4. 編輯環境,在安裝完 go 以後,可以用指令安裝 go get -u github.com/nsf/gocode , 這裡的安裝路徑,裝完後,source 會放在 $GOROOT/src/pkg/github.com/nfs/gocode 下面,gocode 會放在 $GOROOT/bin 下,這樣的安裝路徑,再開發自己的套件時,也可以直接寫在 source code 的 import block 中,完整的 gocode 的安裝說明,請參考
https://github.com/nsf/gocode, 另外 vim 或是 emacs 的 syntax highlight 也可以都可以在 /usr/local/go/misc 下面找到,要是 vim 和我一樣是用 vundle 的方式管理,可以在 .vimrc 裡加上 Bundle 'jnwhiteh/vim-golang.git' 後 BundleInstall ,就不用將 misc 底下的 vim設定,複製到 .vim 資料夾下面,gocode ,最後要到 gocode 資料夾下面的 vim 子目錄執行, update.bash 他的內容
#!/usr/bin/env bash
mkdir -p ~/.vim/{autoload,ftplugin}
cp autoload/gocomplete.vim ~/.vim/autoload
cp ftplugin/go.vim ~/.vim/ftplugin
這樣裝完 vim 下面就可以有 omnicomplete 了,如下圖


用 Eclipse 的朋友 http://code.google.com/p/goclipse/

開始玩樂

1. 看 source module 文件 ,打 go doc ,或是自己看 go help 自己看文件,可以查 go doc fmt 或是 go doc crypto/md5
go doc fmt
go doc crypto
go doc crypto/md5

或是,直接執行文件伺服器類似 Python 下 pydoc 一樣,只是換成 godoc ,請 godoc -h 直接看文件,範例是 doc server 跑在 6000 port ,打開瀏覽器到 http://localhost:6000 ,就可以直接看模組文件了

godoc -http=":6000"

2. 很多內建模組,也是直接以 golang 撰寫,直接看 source code ,簡單易懂,可以看的整的語言設計簡化帶來的好處

3. hello world,main.go 打完後,執行 go run main.go
package main

import (
    "fmt" 
)

func main() {
    fmt.Println("Hello World")
}



開始前,先花一點時間看看基本語法

1. http://www.golang-book.com/

2. http://www.miek.nl/projects/


Have fun

PS: 我指的簡單是指語法上的簡單易學,純就語言上,不是探討要實作的內容

2012-11-08

Chrome cache in RAM




在 Linux 上面已經有當多簡單的教學,不過大多是教修改設定檔的方式,以下是更簡單的方式

以 Debian GNOME3 的環境為例

應用程式-->主選單-->網際網路 ,在 Debian "主選單" 的程式名字是 alacarte

選 chrome 後,右邊有屬性的條件可以修改,把指令欄位修改成下面,就可以啦,只要 --disk-cache-dir 的 option 即可


/opt/google/chrome/google-chrome --disk-cache-dir="/tmp/chrome/" %U

2012-11-04

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: 這應該是非常冷門的套件 ;-)

2012-10-20

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