幸福有沒有在我身邊 怎麼一直看不見
幸福有沒有在你那邊 讓我看看他的臉
家裡已經找了好多遍 只有溫暖的房間
爸爸說幸福就在鏡子裡 那就是我快樂的臉
老師說如果慾望能夠少一點 快樂就會多一些
幸福有沒有在我身邊 怎麼一直看不見
幸福有沒有在你那邊 讓我看看他的臉
家裡已經找了好多遍 只有溫暖的房間
爸爸說幸福就在鏡子裡 那就是我快樂的臉
老師說如果慾望能夠少一點 快樂就會多一些
試試 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 的朋友請進行設定環境變數
在 Linux 上面已經有當多簡單的教學,不過大多是教修改設定檔的方式,以下是更簡單的方式
以 Debian GNOME3 的環境為例
應用程式–>主選單–>網際網路 ,在 Debian “主選單” 的程式名字是 alacarte
選 chrome 後,右邊有屬性的條件可以修改,把指令欄位修改成下面,就可以啦,只要 –disk-cache-dir 的 option 即可
/opt/google/chrome/google-chrome –disk-cache-dir="/tmp/chrome/" %U
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 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 元,也能鬼打牆,說是景氣不好
公務人員要調薪的時候,用借的也要調,而且人家是調百分比,誰跟你基本薪資壓,人家是有調都拿的到,
那還有什麼基本的門檻,連退休人員領的退休金也是一起調,不像勞工朋友這一種,卑微到只是保護一個基本生存費用
我假如,現在拿的基本薪資,我應該連上網抱怨都很奢侈吧 !
連基本薪資都付不起保姆費,實在只是一個幌子,政府連會受基本薪資影響的人,也不願意去保障他們
這個政府,已經到了無敵禮義廉的境界,我想大家一起罵三字經只是剛剛好
真的是要公務人員領基本薪資,他們才會感受到,社會底層的辛苦
如果每年公務人員,要升等,加薪的時候,也都可以比照基本薪資的方式處理的話,大概公務人員,永遠也不用加薪了
在 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 ;-)
我們偉大高尚的政府,為我們每位國民規劃未來需要工作到 65 歲才可以退休
所以假設,目前我是一個很熱愛自己工作的軟體開發人員,我要工作到 65 歲,就算我的熱情可以持續到那時候,可是依照國內廠商的現實考量,除非我自己是老闆,不然,有那一家公司,會請一個 65 歲的軟體開發人員
看起來,好像很合理的延長退休年紀,套到各行各業變得可笑,大概大有為政府假設大家都是當老闆吧
所以,現在工作的人,幾乎被迫要做選擇,如果你不是過一天算一天了那一種,而且,是沒有選擇
我說說台灣還能做的工作
1. 軍公教
2. 醫師,律師,會計師,可以獨立作業開業,工作項目不受景氣影響的從業人士
3. 其他就是老闆了,也就是自己做的人
其他的專業工作,都可以認真的考慮,應該出國工作了,尤其當你沒有創業的打算
更不要學別人說,年輕人好吃懶做,去澳洲留學打工,笑他們做的是低階粗俗的工作,當他們在澳洲農場工作,一個月可以賺到 7 萬元台幣,也可以開開眼界,體驗異國的文化的時候,你又何必勉強他們要在數字超商打工,賺取微薄的生活費
提醒一下,即刻起,好好想想什麼工作可以做到 65 ,不管要不要離開台灣
這一次又成為了一個經典,以前告別傳統比例螢幕,這一次告別七列鍵盤,科技進步的非常快
下一台,不知道會是什麼樣子,不過換口味是一定的,因為經典消失了
利用這一次暑假電腦展的機會,用非常經濟實惠的價格,帶了過了時的經典小黑 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
愛用 Solaris 的同事,一直跟我說,就是因為 ZFS 所以他才愛 Solaris
看一下在 Linux 上面也有 porting ,只是我沒用過,不知道穩不穩定
紀錄一下,有時間來試一下
http://pthree.org/2012/04/17/install-zfs-on-debian-gnulinux/
https://github.com/zfsonlinux
http://zfsonlinux.org/