2014年2月8日

網樂通開發 第2集 - 網樂通上嵌入式Linux

本篇前言:
這篇會先介紹網樂通上的嵌入式Linux,要玩它、修改它,要先知道它哪些可以改。

本篇開始:
所有嵌入式Linux系統都差不多,大致上包括:

  • BootLoader
  • Linux Kernel
  • rootfs
在網樂通上的嵌入式Linux包括如下:
  • BootLoader:u-boot
  • Linux Kernel:Debian Kernel for 網樂通、ArchLinux Kernel For 網樂通、sh4twbox 0.92 Kernel、網友提供2.6.32.59版Linux Kernel for 網樂通...等
  • rootfs:sh4twbox、Debian、ArchLinux
網樂通嵌入式Linux幾個部份的說明:

BootLoader:
網樂通的BootLoader是使用u-boot,這套BootLoader在嵌入式系統上經常被使用。
網樂通內建的RAM是256MB,但不知道為何,官方的u-boot只開放了128MB,
因此網友修改u-boot程式碼,讓網樂通u-boot能支援256MB。
關於刷u-boot,可以參考:

Linux Kernel:
Linux的驅動程式幾乎都相依在Linux Kernel上,
要讓網樂通支援其他硬體,像是usb webcam、usb wifi...等,
Linux Kernel都必須要自己重新編譯。
另外,針對Debian for 網樂通和ArchLinux for 網樂通,
因為本身有一些Kernel module的套件,所以會需要各自的Kernel,
否則一般而言,在網樂通中,Linux Kernel是可以另外編譯,另外支援。

rootfs:
一般所謂的網樂通刷機,指的都是更換rootfs。
所以rootfs實際上指的就是更換成sh4twbox、Debian、ArchLinux...等不同的Linux系統。

各部份在網樂通的位置:
在網樂通的刷機文件中會提到,網樂通需要至少2個分割區,
第1個分割區必須是FAT32,第2個分割區必須是ext2/ext3/ext4,分割區類似如下:








第1個分割區就是存放Linux Kernel的,內容如下:





第2個分割區就是rootfs,內容如下:

















從這裡可以注意到,除了BootLoader外,
Linux Kernel和rootfs都直接按不同分割區放置,很容易可以區分。

更換各部份:
更換Linux Kernel:
如果我們重新編譯Linux Kernel,要更換新的Linux Kernel,
只要將編譯出來的vmlinux.ub直接覆蓋sda1的vmlinux.ub,
重新開機後就會是載入我們新編譯出來的Linux Kernel。
類似如下:









更換rootfs:
要更換rootfs,最簡單的方式就是參考sh4twbox的教學,
先將產生的rootfs壓縮打包好,接著按照正常刷機的步驟,
在sh4twbox的教學的1.4第2步指定我們自己的rootfs壓縮檔,
它就會幫我們把rootfs解壓縮建立好。


網樂通開發 第1集 - 刷機版本的選擇

這篇開始,我會以網樂通和STLinux為基礎,寫一些自己開發的心得文章,
這篇是第1篇,主軸放在目前網樂通刷機版本的介紹,
因為這系列文章是以開發為主,不會描述刷機的過程,
文章會描述的是如何用網樂通和STLinux進行Cross-Compile,
目標是透過這系列文章,可以將網樂通開發成自己想要的功能主機。

本篇前言:
目前網樂通在網路上文章很多,但有點雜,
我過年前開始玩時,發現有好幾個不同版本的網樂通系統可以刷,
但並沒有太多文章描述這幾個版本有何不同,系統差異在哪。
因此,第1篇目標放在對幾個版本的描述,
在開發時,可以根據目標選擇合適的系統來刷。
這裡要先說的是,ArchLinux我不熟,所以針對ArchLinux的描述並不確實。

網樂通版本:
目前網樂通刷機的版本大致可以分為4種:

  • sh4twbox 0.62版
  • sh4twbox 0.92版
  • Debian wheezy版
  • ArchLinux版

sh4twbox 0.62版:
大本營:https://code.google.com/p/sh4twbox/

sh4twbox系列通常是網樂通第1次刷機的選擇,
事實上,0.92版刷機時用的USB隨身碟本身就是sh4twbox版本。

sh4twbox是以STLinux為基礎的Linux系統,
STLinux則是網樂通使用的SuperH系列處理器廠商維護的嵌入式Linux版本,
sh4twbox是以STLinux 2.3版為基礎修改而成,
目前STLinux2.3已經停止開發,因此sh4twbox也建議不要再使用sh4twbox 0.62版。

sh4twbox 0.92版:
大本營:https://code.google.com/p/sh4twbox/

sh4twbox 0.92版是以STLinux 2.4版為基礎的Linux系統,
是目前原廠正在維護的嵌入式Linux版本。

STLinux設計上就是嵌入式Linux,
相對於ArchLinux和Debian來說,它有幾個優點:

  1. 系統小使用資源少:最直接的就是開機時間比較短,系統運作比較順,反應比較快
  2. Cross Compiler環境:STLinux原廠提供了完整的Cross Compile環境供開發
但相對的它有幾個缺點:

  1. 現成的應用程式少
  2. 嵌入式系統和桌上型Linux環境差異較大

Debian wheezy版:

我個人熟悉的Linux其實是Debian/Ubuntu,但對於Debian在sh4處理器上的支援性,
我真的是覺得爛到爆了。

目前網樂通上,因為有Debian for 網樂通的善心人士協助,
網樂通上的Debian能跟上目前Debian的Stable版本Wheezy版,
從網站上可注意到,
他們現在正努力的讓Debian的下一個版本(目前是測試版)能支援網樂通。

相對於STLinux,Debian wheezy版有幾個優點:
  1. 現成的系統整合較好:像X-Window、幾套X-Window管理器都能順利運作
  2. 和PC版Debian開發環境相同:開發環境相同,開發上比較沒障礙
但它有幾個致命缺點:
  1. 系統大,使用資源多:最直接感受到的就是開機時間長,操作時反應慢
  2. 套件數量少:Debian for sh4的支援性差直接體現在套件數量上,它的套件數量相對於ARM版本就少很多,跟PC版Debian根本沒得比
ArchLinux版:

sh4twbox的作者覺得ArchLinux是網樂通比較好的選擇,因為ArchLinux套件數量多,
又是用PKGBUILD方式針對不同平台build,因此理論上要安裝套件,
只要透過ArchLinux的PKGBUILD就能建立出網樂通版的套件,
並安裝在網樂通上。

但可惜的是,ArchLinux我不會用,
對於PKGBUILD的使用方式以及套件的建立環境不會架設,
於是就.......

因為不懂ArchLinux就不多做評論了,這裡僅列出我刷機後使用時的感覺:
  • 開機速度比STLinux慢,但比Debian快
  • 系統的反應比Debian快

buildroot網樂通系統:
我自己在過年期間,有用buildroot建立過網樂通系統,並成功刷機執行。

buildroot可以簡單的建立出整個嵌入式系統,
DD-WRT、OpenWRT都是以buildroot為基礎修改的,
buildroot系統的優點是:
  • 系統小
  • 速度快
缺點是:
  • 幾乎沒有提供開發環境,只有執行環境
我自己使用的感覺是,buildroot系統比STLinux快,環境更小,
如果是buildroot有提供的功能,像是QT的Transmission。
直接使用buildroot說不定更好,系統資源更省。

我會在Cross Compile環境介紹後,介紹buildroot建立網樂通系統方式。

2014年2月5日

網樂通硬改,更換大容量或高速USB DOM(免焊接)

網樂通內的儲存空間主要是靠USB DOM,
要加大空間或者更換USB DOM網路上都能搜尋到文章,
文章原則上有3類:
  1. 直接用USB隨身碟插在屁屁
  2. 拆機後,把USB DOM的接腳另外焊上USB隨身碟
  3. 拆機後,原來的USB DOM焊接個USB接頭當隨身碟
我的問題:
內建的USB DOM真的有夠爛,
速度慢也就算了,刷一刷竟然被我刷掛了。

我的那個USB DOM死法真的是沒救,
它應該是USB DOM最前面儲存Partition的block壞軌了,
每次重新建立Partition,重開機Partition就消失了,
因此,它無法正常的刷Linux,
所以,我需要更換USB DOM。

因為這個原因,第3種教學文章直接沒用;

第1種作法不錯,但我的目標是Printer Server,
後面的USB需要接印表機,沒辦法用;

第2種作法不錯,但我技術差不想動電烙鐵,
怕下手後沒處理好,反而把元件燒了。

最終我找到了折衷的辦法,也就是我要發的這篇文章的作法。

我的作法:
網樂通上面的USB DOM,
接在板子上的4個pin腳其實就是杜邦端子的公頭,
網路上的教學是,
直接在端子和板子的焊接點上,焊接一個USB隨身碟,
但其實不用,只要自己剪條USB線,
在USB線做出4個杜邦端子的母頭,
就可以直接插入,完全不用電烙鐵焊接。

所需工具和零件:
  1. USB線一條(要有USB母座)(越短越好)
  2. 剝線鉗一把
  3. 杜邦端子接頭數個(至少5個以上,以防失敗)
  4. 4P杜邦端子座1個
  5. 豆子隨身碟1個(可選購4G、8G、16G、32G)
過程:

1. 首先準備一條有母頭的USB線,留下一小段,剪斷它並去皮,如下圖:


 2. 用剝線鉗接USB的4條電線都做好杜邦端子,這部份是最麻煩的,完成品如下圖:

3. 將網樂通上的USB DOM拆下後,最重要的,把它原本的杜邦端子座移除,如下圖:

 4. 將USB線上面的杜邦端子套上杜邦端子座,插上網樂通的端子頭,如下圖:
這裡注意到,一定會有疑問是,線怎麼排列,5V方向在哪?
USB線的順序是(由左而右):
黑 綠 白 紅

如下圖所示,
左邊是網樂通後面,右邊是網樂通前面,
電源接頭在左下角,網路接頭在左上角,
此時,USB線的紅色靠下。

5. 完成後,按網路教學用背後的USB隨身碟開機,刷Linux,應該就可以看到新的USB DOM。

網樂通開發文章計畫開始

利用過年期間,把網樂通的開發玩了玩,雖然還沒玩完,
但對於網樂通的STLinux開發有了一些心得,
我想後續應該可以針對網樂通sh4 STLinux的開發寫出大概4~5篇文章。

文章大概會從比較基本的網樂通目前網路上有的Linux Distribution介紹,
大概描述STLinux、ArchLinux、Debian在網樂通上我認為的區別。

接著會把主軸放在網樂通的STLinux如何開發。

如果我的Printer Server順利的話,
最後應該可以以Printer Server為例描述過程。

2013年12月22日

核能發電的未來-放射性同位素電池(核電池)?

核能發電有諸多的問題,
最主要的問題是輻射線容易外洩和核反應有可能不受控制。

但想想看,衛星、火星車也都用核能,沒聽說衛星或火星車需要更換燃料棒,
原因就在於它們使用的是核電池。

我的想法是,如果把目前大型的核子反應爐縮小,
改成發電效率比較好的核電池(目前核電池發電效率很差,網路上說只有8%~10%),
一個發電站內存放100顆小型核電池,
每顆核電池的核元素封裝在中心,無法開封、更換,
但保證能持續產生穩定能量20年或30年,
核元素的外部透過熱電發電機或者核元素放射的電子發電。

如此一來,每次只需更換核電池的某些元件,
像熱電發電機可能會有壽命需要更換,
核心核元素不用更動,時限到了頂多也是整顆核元素中心更換,
從頭到尾不會有輻射外洩或者核反應無法控制的問題,
雖然每一顆提供的電量少,但可以用大的數量來補足,
發電站可能以城鎮為單位,例如各縣市一個發電站,僅供應單一城鎮電力即可。

我認為這種作法不錯,
同時可以避開核能發電廠的問題,
以及有效利用核能發電的優勢。

我認為,目前的核能發電方式的確蠢了一點,
利用核能產生熱能,然後燒鍋爐水,
利用鍋爐蒸氣推動汽輪機發電,
整個結構除了改用核能產生熱能之外,
跟汽油、瓦斯、煤炭燒鍋爐水發電一模一樣,
我認為這不是先進的發電方式,
因為光中間
核能轉成熱能→熱能燒開水→水變水蒸氣→水蒸氣推汽輪機→汽輪機發電

每個環節事實上都有轉換效率問題,
任何一個環節異常,就會導致發電異常,
前段異常,甚至會造成輻射外洩,
而為了防堵中間的問題,
目前的手法卻是在每個環節增加更多的安全機制,
在異常出現時立即中斷某個環節,
但異常何其多,有辦法全部考慮到嗎?
那麼,是否該重新思考核能發電的整個流程是否合理?

我贊成核能發電,我認為目前人類並沒有發現比核能更強大的能源,
要解決人類能源使用的問題,我認為目前核能還是唯一解,
但我認為是時候發展新型態的核能發電方式了。

PS:
核電池不會反應過度的原因是,
核電池是讓核元素自然反應,讓它自然的衰變,
並不會控制它的燃料或反應,
優點是它的衰變速度慢,反應速度只會持續下降,持續時間長;
但缺點是他的能量產出較少。

2013年9月29日

硼酸蟑螂藥餌研發成功(內有蟑螂照片,不喜勿入)

自從大樓一樓開快炒店後,家裡的蟑螂每年呈現倍數增加,
加上家裡廚房設計不良,因此蟑螂非常囂張。

為了蟑螂問題,我做了一些措施,但成效不大,
加上家裡人並沒有良好習慣,且都沒有共識,
近兩年家裡開伙,情況更加嚴重。

這次嘗試使用蟑螂藥餌,但試作了多次都失敗,
這次應該算是接近成功的。

有圖有真相,先來幾張半夜蟑螂覓食的照片。
地點:客廳
放置時間:一開始(把蟑螂趕過去後)

地點:客廳
放置時間:15分鐘後

地點:客廳
放置時間:45分鐘後(全家都來了)


地點:客廳
放置時間:2小時後(鄰居也來了)


 實際實戰,放置於廚房瓦斯爐縫隙。
地點:廚房瓦斯爐縫隙1
放置時間:2小時後
左邊那隻蟑螂實在太搞笑了,整個身體不平衡,嘴巴還趴在藥餌上吃。
旁邊那是.....蚊子嗎?你來搶什麼鏡頭啊.....

地點:廚房瓦斯爐縫隙2
放置時間:2小時後




幾次蟑螂藥餌的製作,最大的問題並不是蟑螂不吃,
最大的問題是藥餌乾掉硬掉的問題。

網路上硼酸藥餌的教學都是說用糖水和,
但我發現用水和,當藥餌放了1星期後,會因為水乾掉,
整個藥餌變成麵粉糖塊,蟑螂根本啃不動,
所以還是會零星看到蟑螂爬過去,但碰兩下就走了,
顯然太硬啃不動。

後來參考了蟑螂炸彈作法後,發現可以用果糖替代,
因此這次不用水,完全改用果糖,效果看起來不錯。

至於為何不做蟑螂炸彈?
蟑螂炸彈不用硼酸改用農藥,
農藥傷殺力太強了,我家蟑螂都從廚房來,
難保蟑螂和農藥不會變成晚餐的一部分。

製作材料:
  • 低筋麵粉
  • 砂糖
  • 豐年果糖
  • 硼酸
  • 排油煙機廢油

製作比例:
  • 麵粉20kg
  • 砂糖20kg
  • 硼酸20kg
  • 排油煙機廢油數滴(我大概滴了10滴左右,一小佗的我算一滴)
  • 果糖比例未知
製作方法:
  1. 用數位秤邊量邊放入麵粉、砂糖、硼酸,數位秤很便宜,網拍買,一個不到NT 300元,非商業用即可。
  2. 攪一攪或倒一倒把麵粉、砂糖、硼酸混在一起
  3. 滴入排油煙機廢油數滴,攪一攪
  4. 滴入一些豐年果糖
  5. 倒一些豐年果糖在手上,然後用手抓一堆有結塊和沒結塊的混合粉末
  6. 在手上擠一擠、捏一捏,捏成球形,中間捏不成型時,就倒一點豐年果糖在手上或手上的混合粉末
最後捏出來的圓形,應該會是像下面這張照片的球形。














做好後,就把捏出來的幾顆球放到保鮮袋,如下照片。













任何時候需要時,就把手指伸進去,捏一點出來擠成小圓球,
放在蟑螂出沒或覓食的地方即可。

2013年9月26日

「阿呆的blog」新轉址「ycfu.blog.mypc.tw」

我註冊了新的網域「mypc.tw」。

阿呆的blog之後會轉址到「ycfu.blog.mypc.tw」,
原先google提供的ycfunet.blogspot.tw仍可繼續使用,
它會自動轉過來。

這次註冊到的網域「mypc.tw」有興趣可以google看看,
我只能說,我能註冊到真的是非常的幸運。

2013年8月31日

可惡的山水米混充越南米

我很少發新聞類的文章,
翻看blog,早期還會有一點新聞文評論文或政治文,
但很久沒有了,這次真的是想提一下。

在台灣買米,要不被混充越南米、泰國米很難,
看看這次上新聞,越南米、泰國米的價格根本是台灣米的一半,
混越多賺越多。

但吃米會知道,泰國米、越南米不好吃,
混太多就很容易被吃出來,
所以關鍵問題在於「混充多少」。

往往買米時會發現,一包米或一斤米有不同價格,
價格高的往往「比較好吃」,價格低的往往「比較難吃」,
明明都是台灣米,怎麼還有好吃不好吃之分?

其實價格不同的關鍵,在於「被混充多少外來米」,
混充多,比較不好吃,就價格低一點,
混充少,比較好吃,就價格高一點。

但可惡的地方在於,台灣本身產米,而且是「生產過剩」,
農田甚至需要休耕。
每次這類問題上新聞,原因都被歸咎在現代人飲食習慣改變,
改吃麵線、麵包這類麥製品,稻米使用量自然就減少了。

但問題是,當我們吃飯,甚至買「台灣米」,
買到的卻是一堆泰國米、越南米,
一般消費者怎麼吃得出差異?
當大家自以為我們在吃台灣米,減少稻米生產過剩時,
誰知道其實還幫泰國、越南賺了外匯?

在細想這問題,米商為了賺錢混充低價外國米,
但有沒有想過因為你們的舉動,會不會造成稻田休耕?
自產米就已經生產過剩了,還使用外來米,這是正確的行為嗎?

在目前,一些農友都會自產自銷,可能透過網路,或者透過電話,
然後直接宅配到家。
這類的自產自銷幾乎可以確定百分之百是台灣的台梗9號米,
沒有混充的問題。

如果有要幫忙稻米生產過剩的問題,除了多吃飯之外,
直接由產地透過網拍、電話、宅配買米,可能是好辦法。

2012年12月3日

投資就不用工作?

這篇其實算是延續上一篇「%百分比的魔力」。

當景氣大好時,尤其是2008年金融風暴前,有一些人一些言論會出現,
多半是「唸甚麼書,炒股(投機)就能賺大錢啦!」,
「工作幹嘛,炒股(投機)都賺得比工作多啦!」。

而從上一篇我的想法中,我認為投資的資金大到一個程度後,
基本上工作賺錢已經沒有意義了,
因為你投資獲取的獲利,大於你工作獲取的獲利,
那麼你就不需要為了賺錢生活而工作。

但在上一篇有一個重點,投資的獲利,是根據本金決定的,
本金越大,獲取的獲利會等比增加,
可惜的是,每個人出生在這個世界上,
落地的當下,身上擁有的本金並不相同,
富二代之所以叫富二代,就是因為他們一出生,
身上就是有非常驚人的財富可以當本金。

正如前面說到的,大部分生產者都不是資本家,都沒有錢,
生產者生的孩子,一落地,就跟你、我一樣,
甚麼都有,就是沒有錢,
那麼,你、我要靠投資賺錢過生活,基本上是沒辦法的,
很簡單的計算公式:
0 x 3% = 0

就算今天給你30%獲利的機會:
0 x 30% = 0

基本上,在現在這個資本的世界中,
沒錢就是沒有進入「%百分比」世界的機會,
因此沒錢的人靠投資,是沒辦法的。

但工作不同。
工作和投資的區別是,投資是用錢賺錢;
工作則是用身體(勞力、體力、精力)賺錢。

這表示,工作賺錢不用成本(著裝、知識、技能、談吐...等在此不考慮)。
因此在一無所有時,工作是唯一獲取獲利的方式。

如果用工作產生獲利這樣的方式套入到「%百分比」的世界中計算:
假設今天月薪是1000元(假設成本為1)
1 x ?% = 1000

你會發現,靠工作賺錢,獲利高達1000倍,
因為實際上,工作是靠身體,不是靠本金,
套入很低很低的本金後,獲利非常大。
因此,在沒錢時,還是乖乖工作賺錢,沒錢時候投資的獲利,
不可能高過工作靠身體賺得錢。

但從前一篇來看,靠工作賺錢,當生產者,永遠只能被投資者剝削,
且永遠無法出頭,那怎麼辦?
所以比較好的辦法是,在年輕時努力工作賺錢,
賺來的錢進行穩當的投資,
此時的身份既是「生產者」也是「投資者」。
當本金增加後,本金多到足以產生足夠獲利(現金流)進行生活,
此時就能夠退休了,
而退休,實際上就是轉換身份為「投資者」,不再是「生產者」。

此時如果不退休繼續工作,工作的目的也不再是為了生活,
那麼工作時的心情、心態也會不同。

因此結論是,
不能因為投資就不工作,只要投資的現金流沒有建立完成,
是無法依靠投資養活自己,
此時當「生產者」工作能獲得的獲利是遠高於投資的,
當投資的本金大到某個程度後,
就能夠將自身的角色進行轉換,轉換成「投資者」,
更好的方式是,
在工作同時存錢和投資,一邊當「生產者」一邊當「投資者」。

最後一點,
現實世界總是不這麼美好,
為了吸引大量的「生產者」貢獻金錢,
會將金融商品包裝成奇奇怪怪的東西,
這些東西,10個有9個半都不美好,多半都有陷阱,
但介紹時,從來不會提它們的陷阱,只會提這些商品的好處,
甚至許多詐騙集團,擺明就是詐騙,
賣的東西連金融商品都不是,只是偷竊,偷「生產者」的錢。

對於投資,我只能說,
金融世界裡,「獲利」都伴隨「風險」,高獲利就是會有高風險,
當今天你被推銷金融商品時,它告訴你獲利的當下,
請仔細檢視它的獲利和風險,
獲利,請和「定存利率」比較,風險則要自己評估,
當獲利很高時(比定存利率高很多),請了解它的風險,
或者它根本是詐騙集團。

現在這個世界,沒有人會好心的推薦你穩賺不賠的投資,
只有自己了解風險,才能知道自己要的是甚麼投資。

%百分比的魔力

其實滿慶幸我在經歷金融風暴時,有開始買股票,並注意相關訊息,
當時的許多新聞或節目,多半會針對金融風暴給予評論,
讓我可以對投資理財有一點點認識,
這邊提出我對投資理財的第一個有趣的了解,
我取名叫「%百分比的魔力」。

在投資理財中,一句話經常被提出來,那就是「複利的威力勝過原子彈」,
但其實我認為,真正厲害的基礎其實是「%」。

在投機和投資中,如果稍微注意會發現到,
所有的賺賠都不是用「金額」,而是用「%」,
舉個例子:
一家公司股票每股單價為10元。
今年公司賺錢,給股東每股0.3元。
這時候小朋友都知道,這家公司股票的股息就是3%。
假設我有1,000股,以每股3%來計算,表示我可以獲得300元。
但如果我有10,000股,同樣以每股3%來計算,
表示我可以獲得3,000元。

從上面的例子可以發現,不用金額而用%百分比來計算的原因是因為,
每個股東持有的股份數量不同,因此獲得的股息也會不相同,
從這樣的角度來看,整個過程和計算都是非常合情合理的。

從%百分比的角度來看,利息的金額多寡沒有意義,
真正有意義的是持股單位和%百分比,它才真正決定了利息的金額高低。

1. 「%百分比」的世界,沒有獲利成本,沒有資源上限,而且大者恆大
從這裡可以推想出一個現實,以%百分比為單位的世界中,
本金(持股單位)越多,獲得的利息會等比例增加,
以上面的例子來說,
持有1,000股和10,000股相比,獲得的股息同樣差10倍。
這說明了,在%百分比的世界中,是大者恆大的,而在金融市場中,
基本上就是個%百分比的世界,而這裡不考慮內線...等不正規的投資方式,
在這個世界中,就是本金越多,獲利越大。

現實的世界是甚麼?跟%百分比的世界不同在哪?
現實是,我們都生活在地球,所有資源都是有限的,
田地是有限的,人力是有限的,
更白話的說,一個人一天就是只有24小時,一個人的精力就只有那麼多,
全地球田地的耕作面積就是這麼多,全部的一切都是有上限的,
但按照%百分比和比例,在%百分比的世界中,
只會有非常多的本金(持股的資金),
並希望按照%百分比獲得非常多的利息,但沒有上限。

例如:
今天耕作,1畝地可以產生等值10元的穀物,按%百分比來看,
我只要有100畝地,就可以產生等值1,000元的穀物,
我只要有1,000畝地,就可以產生等值10,000元的穀物,
所以我只要增加耕作面積,就可以賺到非常非常多的錢,
真的是這樣嗎?
事實上,現實是,當你有1,000畝地時,你無法單憑自己的力量耕種,
必須要依靠額外的人力,或者聰明的用機器,
但不論哪種方式,成本都會增加,
而且,1000畝地之後呢?10,000畝地?還是1,000,000畝地?
耕地從哪裡來?

但如果換一個角度,我們用投資的角度來看這件事情,
我們先不考慮物以稀為貴這件事情,單就%百分比來看。

例如:
今天某公司股票每股100元,我可以花100元買1股,也可以花100,000買1,000股,
我也可以花10,000,000,000買100,000,000股,
當公司賺錢給予3%股息時,獲利可以等比例的增加,
1股的只能得3元,但100,000,000股的可以得300,000,000元,
而且中間沒有任何額外的成本,
沒有耕地限制、沒有人力限制、沒有機器維護,油耗成本。

2. 投資者是在「固定%百分比」的世界計算獲利,生產者是在「固定金額」的世界計算獲利
目前的世界上,大部分的人努力花費勞力,體力,腦力,精力在進行生產,
而這些生產產生的獲利,就如同上面耕地的例子,它是用「金額」計算的,
而不是用「%」計算的。
例如:
我每天認真工作,一個月領取1000元。
我這個月加班,因此領取1200元。

但不論是1000元,或是1200元,都是用「金額」計算,不是用「%百分比」計算,
當你用「固定金額」來計算獲利,而投資者用「固定%百分比」計算獲利時,
你會發現,利基根本不同,不管你怎麼努力,你的最大獲利不可能和投資者相比。

3. 投資者的資金,不會腐爛變質,但穀物有保存期限
投資者進行投資時,它的資金是沒有時限的,舉例來說,30年前的黃金放到現在,
它還是黃金,並且可以繼續增加甚至增值,
但30年前的穀物,只會因為時間而腐爛,因此,對於投資者而言,
錢是會繼續滾錢,讓本金更大,而不會像生產者產出的穀物一樣,放著就爛了。

因此我認為,在現在這個時代,原物料嚴重上漲,全世界貧富差距大,
一個關鍵的原因就是,富者幾乎都是投資者,它們利用%百分比的魔力進行賺錢,
而窮者都是生產者,它們利用「固定的金額」在賺錢,
富者透過投資,將「金額」與「%百分比」間的差值賺到口袋中,
並用相同方式製造無限迴圈,讓這個世界富者更富,而窮者更窮,
並且窮者還在不斷的幫富人賺取大量金錢而不自知。

更恐怖的是,這整個金融世界的運作法則,已經是目前全世界的共通法則,
所有人都認定這一套法則是正確的,並繼續的在運作中
(事實上,歐美為主的資本主義運作這套法則到現在,
還是世界經濟的中心,
這表示目前全世界大部分的人都還是認同這樣的運作法則)。

最後一個問題是,
我們在這樣的世界裡要生存,要當投資者還是生產者?

2012年11月14日

JNX-2000D測電器(PowerMeter)-Linux讀取程式(程式碼下載、使用說明篇)

上一篇解說了JNX-2000D的USB無線接收器和PC間的溝通方式以及測電器的資料表示方式,
這一篇我將我寫好的程式、程式碼和使用方式附上。

程式介紹:
整份程式包含3支程式,2支C程式,1支php的程式,分別是:

  • jnx2000_meter.c
  • jnx2000_monitor.c
  • meter.php
jnx2000_meter.c:
USB無線接收器的讀取程式,它根據前一篇的流程將測電器數據讀出後,
將數據寫到Linux的SHM(ShareMemory)當中,並持續更新。
為了能同時支援多台JNX2000D的USB無線接收器,
每個Channel Number會使用獨立的SHM Key,例如:
Channel 0時,SHM Key為70248070
Channel 1時,SHM Key為70248071
.....
依Channel Number增加使用不同的SHM Key


jnx2000_monitor.c:
Linux Console的測電器資訊顯示程式。
程式執行時,要帶入測電器的Channel Number,
如果SHM Key存在(jnx2000_meter讀取程式正常執行),
就會在終端機中顯示目前的測電器資訊。
畫面如下:


















meter.php:
Linux PHP Web版的測電器資訊顯示程式。
直接透過網頁可以讀取到Web Server的測電器資訊,
Web URL同樣要帶入測電器的Channel Number。
畫面如下:















編譯方式:
jnx2000_meter.c:
jnx2000_meter.c的編譯非常簡單,直接如下即可產生jnx2000_meter:
gcc -o jnx2000_meter jnx2000_meter.c

jnx2000_monitor.c:
jnx2000_monitor.c編譯時要稍微注意一下,
jnx2000_monitor的Console繪圖,是使用ncurses這個library,
因此編譯前要先確定有安裝libncurses5-dev這個套件。
在Debian/Ubuntu下,如下安裝:
apt-get install libncurses5-dev

確定有ncurses的library後,如下執行即可產生jnx2000_monitor:
gcc -o jnx2000_monitor jnx2000_monitor.c -lncurses


使用說明:
jnx2000_meter:
jnx2000_meter使用前要注意幾點:

  1. USB無線接收器的USB要確定插在Linux電腦上,且要確定ttyUSB有抓到
  2. 要確定USB無線接收器是開機狀態(有數值顯示),因為它有省電保護,一段時間沒有和PC通訊,就會自動關機。
  3. 操作順序必須是,先開USB無線接收器,確定有開機,再執行jnx2000_meter。如果先執行jnx2000_meter,是抓不到USB無線接收器的

按照上述幾點,操作順序如下圖:

執行方式如圖片所示,輸入
jnx2000_meter &
例如:jnx2000_meter /dev/ttyUSB1&
例如:jnx2000_meter ttyUSB1&


成功取的測電器資訊,會如圖片一樣顯示:
JNX-2000D Channel=9
Share Memory Key=70248079


這就表示jnx2000_meter成功執行中。
最後面記得加上&,讓它在背景執行。

jnx2000_monitor:
jnx2000_monitor使用相對簡單些,要注意的是:

  1. 要確定ncurses library有安裝,在Debian/Ubuntu下可以安裝libncurses5
    apt-get install libncurses5
  2. 必須要先執行jnx2000_meter,才可以執行jnx2000_monitor
要執行jnx2000_monitor,要先知道Channel Number,知道後,如下執行:
jnx2000_monitor <Channel Number>
例如:jnx2000_monitor 9


meter.php:
php版的meter.php功能和jnx2000_monitor相同。
要使用它,首先將meter.php放在php可以執行的Web路徑中,
以我這邊為例,我的Web路徑在
/var/www/

將meter.php放入/var/www/中,之後Web URL輸入如下:
http://192.168.1.6/meter.php

成功了會看到下面的畫面:














此時同樣的,根據Channel Number,在網址列加入Channel Number,
在這裡,我使用的Channel是9,加上:
http://192.168.1.6/meter.php?channel=9

即可出現下面畫面:















SHM資訊:
jnx2000_meter會將測電器資訊寫入SHM當中,
如果要在其他程式中使用SHM資訊,直接讀取即可使用,
SHM的資訊如下:

  1. 每個Channel Number會使用獨立的SHM Key,例如:
    Channel 0時,SHM Key為70248070
    Channel 1時,SHM Key為70248071
    .....
    依Channel Number增加使用不同的SHM Key

  2. SHM結構如下:
  3. typedef struct power_meter_string_data PowerMeterStringData;
    struct power_meter_string_data
    {
            char voltage[10];
            char current[10];
            char quantity[10];
            char duration_days[10];
            char duration_hours[10];
            char duration_mins[10];
            char factor[10];
            char wattage[10];
            char reserve[60];
    };
    所有資訊都使用char表示,並且均為10個字元(含字串結尾),
    最後面包含保留空間60個字元。


程式碼下載:
程式碼與程式

2012年11月13日

JNX-2000D測電器(PowerMeter)-Linux讀取程式(流程、格式說明篇)

延續上篇的JNX-2000D介紹,這篇正式來po出Linux的讀取程式。
如果對程式流程和內容沒興趣,可以直接跳過本篇,看下一篇下載程式和使用說明。

JNX-2000D的USB無線接收器,實際上只是USB to RS-232,將它插到Linux電腦後,
一般來說就能抓到pl2303的USB to serial port裝置,從dmesg顯示如下:
[ 18.283060] usb 3-1: pl2303 converter now attached to ttyUSB1 
[ 18.283090] usbcore: registered new interface driver pl2303 
[ 18.283092] pl2303: Prolific PL2303 USB to serial adaptor driver 

正常來說,大多會抓到ttyUSB0,如果跟我一樣已經有一個USB to SerialPort裝置,
它就會是ttyUSB1...之後遞增。

USB無線接收器它在連接到電腦後,按下面的流程先進行初始化:


這段流程完成後,PC和USB無線接收器就會完成初始化,接著按下面流程,
即可取出測電器資訊:

這裡注意到一點,當第一次送出0x64 0x63後,收到的第一筆測電器資訊是獨特的,
它類似如下:
A2 09 0D 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

這裡的09表示使用Channel 9,同樣的如下:

A2 0A 0D 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
這裡的0A表示使用Channel 10。


其他正常的測電器資訊,格式我看起來有3種,
每種都是29個bytes,區別在開頭,有0A、0B、0C這3種。
這3種資訊,有部份資訊是相同的,部份資訊不同。
這部份我認為一開始設計為0A,後來欄位不夠了,就以0A為基礎改為0B,
再來又加上0C,因此有些欄位在0A、0B、0C都表示相同資訊,有些則不同。
我總共提取了如下6項資訊:

  1. 消耗瓦數
  2. 使用電壓
  3. 消耗電流
  4. 功率因數
  5. 花費度數
  6. 持續測量時間

花費金額的部份我沒有設定,因此都是0,看不出來是哪幾個欄位,其他上述資訊如下:
消耗瓦數:
0A、0B、0C都有,類似如下:
0A 00 00 01 04 08 xx xx xx xx xx
00 00 01 04 08表示消耗瓦數為: 0014.8W

0C 00 00 00 03 02 xx xx xx xx xx
00 00 00 03 02表示消耗瓦數為: 0003.2W

使用電壓:
0A、0B、0C都有,類似如下:
0A xx xx xx xx xx 01 01 02 07 xx xx xx xx
01 01 02 07表示電壓為: 112.7V

0C xx xx xx xx xx 01 01 02 09 xx xx xx xx
01 01 02 09表示電壓為: 112.9V

消耗電流:
0A、0B、0C都有,類似如下:
0A xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx 00 00 02 05
00 00 02 05表示電流為: 00.25A

功率因數:
0A、0B都有,0C沒有,類似如下:
0A xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx 00 05 01 01
00 05 01 01表示功率因數為: 051.1%

花費度數:
0A有,其他都沒有,類似如下:


0A xx xx xx xx xx xx xx xx xx 00 00 03 03 02 07 01 02
00 00 03 03 02 07 01 02 表示度數為: 0033.2712度



持續測量時間:
持續時間比較麻煩,它由2部份組合而成,分別是
  • 天數
  • 小時分鐘
小時分鐘:
0B有,其他沒有,類似如下:
0B xx xx xx xx xx xx xx xx xx 03 08 00 01 00
03 08 00 01 00表示: 01h 38m (小時和分鐘倒過來放置)

天數:
0C有,其他沒有,類似如下:
0C xx xx xx xx xx xx xx xx xx 00 00 03 01 00
00 00 03 01 00表示 31天(0031)

最後一點,它每筆資料的結尾2 bytes相加均為D0,用來做結尾表示,例如:
0C C4 (0C + C4 = D0)
11 BF (11 + BF = D0)

JNX-2000D測電器(PowerMeter)介紹

這系列其實是遲來的文章。

今年夏天,台電調漲電費,很自然的就有不少人對測電器這類PowerMeter很有興趣,
其中mobile01的便宜電力計心得分享介紹了幾款容易買到且價格便宜的測電器,
而這次要介紹的主角,就是其中提到的JNX-2000D,特別提到它除了是因為我有買來用之外,
最重要的是,它提供連接電腦的功能,可以讓我們將電力的消耗量直接數位化,
可以在電腦中進一步統計,甚至像是把它放上網頁,動態的更新即時的耗電量,
甚至繪製成一段時間的耗電圖表。

JNX-2000D硬體分為2個部份,分別為

  • 測電器本身
  • USB無線接收器

在這裡,我就直接借用mobile01的venon大大拍的照片(已授權使用):
測電器本身
測電器正面
測電器背面




















USB無線接收器
USB無線接收器正面
USB無線接收器背面




















USB接頭則在側面,如下圖:
USB無線接收器USB接頭








這款測電器,它因為能夠連結電腦,
所以它另外提供了Windows的軟體,
軟體照片如下,同樣是mobile01的venon大大抓的圖:




注意到,它左邊深灰色和咖啡黃的部份,就是它即時從測電器抓到的目前資訊。
上面Signal後面的5,則是它的頻道號碼。

這款測電器買來後,我最不滿意的部份,就是它程式感覺很鳥,又沒有提供API,
最重要的是,沒有提供Linux的程式,
因此,我花了些時間將它的RS-232信號抓出來(它實際上是USB to RS-232),
寫出了Linux的讀取程式。

這部份我會在下篇po出。

新20年期儲蓄險之我見


最近很多保險公司在推20年期複利儲蓄險,當然網路上有些人有些看法,
但我想提個我自己的看法,由流動性為出發點提出我對這保單的想法。

這種20年期儲蓄險通常如下:
前6年利率很低,約0.8%~0.9%,
第7年開始利率用2%~3%計算,
複利滾入直到領回。

我從流動性想到個有趣的觀點,試想:
1. 正常人,一筆錢放著不動,6年算長嗎?能持續6年嗎?
如果不能,那麼顯而易見的,保險公司可以用超低的利率跟你借這筆錢,
並跟你賭,6年內你會領回,你領回了,保險公司還現賺30%(6年內領回,只能領回約70%)

2. 非常有恆心毅力的人,一筆錢放著不動,就一直放到老....直到.....世界末日......
如果今天遇到個有恆心的人,他真的按照遊戲規則一直把這筆錢存放在保險公司,
那麼問題來了,這筆錢,是保險公司的?還是這個人的?
這問題怎麼說?
想看看,當你為了第7年開始的高額複利,因此把錢放在保險公司不動,
你想著高額利息,因此一直放著不領,那麼利息對你來說,是現金,還是紙上富貴?
我們反過來想,當這樣的人為了高額利息持續放在保險公司,
對保險公司而言,這筆錢幾乎等於送給保險公司,因為你不領,錢永遠都是保險公司的。

再想看看,保險公司規劃的複利通常為2.x%,那其實也只是略高於長期平均的定存利率,
考慮到大部分人6年內會解約,少部份人一放就不領了(很多八成忘了這筆錢),
剩下來一點點人,給他平均的定存利率,
這對長年投資股市、房地產...等賺高額股息、房租的保險公司而言,
根本是穩賺不賠的生意,再加上這種保險,無解約時間,那可以假設大額資金的解約時間其實不同,
那麼對保險公司的現金流量影響其實很小,怎麼看都覺得對保險公司合算。

2012年2月27日

我目前投資的兩句諍言,以及目前我的看法

很久沒po文了,上次po文已經是去年了,趁著連假來一篇。

在經過了一段時間的投資、上網看文、看幾本書(漫步華爾街),
加上金融危機,這次歐債危機後,我認為我開始有了投資的Rule,
而這Rule我認為可以簡化成兩句諍言:
景氣好時買債券(賣股票),
景氣不好時買股票(賣債券)。

而債券,必須是長期政府公債,也可以現金、定存替代。
債券和現金差異在於,債券有較高配息,
但同樣受景氣影響,只是跌幅較低,
現金、定存沒有配息(或配息較低),但不受景氣影響而虧損。

而股票,如果本錢夠多夠大,可以用房地產替代。


至於景氣好壞的判定,目前我的判斷方式,還是用平均值來判斷,
以台股來說,我會以金融風暴前後的指數為依據:
9000甚至10000為最高點
4000為最低點
7000左右均為平均範圍(6000~8000)

以歐債危機而言,雖然已經是事後諸葛,
但我認為實際問題並沒有媒體報導的嚴重,
因為包括台股在內的全球市場和歐洲市場,
最低不過是跌到平均值的位置,
台股的許多權值股事實上根本跌不多,沒有跌到適合買入的價位,
因此這次歐債危機,我的年終獎金,主要就拿來買小型傳產股,
因為小型股不在台灣50、中型100當中,容易受到景氣影響而大幅波動,
比較容易出現不錯的價格。

最近,我傾向航運股,因為BDI指數目前在歷史低點,
航運股價格目前還不算太高。

而考慮到歐債幾個國家減債,
金融風暴造成美國和全球的虧損,
以及像X鋼、X積電...等績優股配息並不多的事實,
甚至從電視看起來,許多評論家認為的中國可能發生的許多問題,
我認為股價長期維持在平均值上下是比較好的,
如果全球股價飆得高,
那我猜想,可能容易出現暴漲暴跌的情況
(我猜國外的投機基金喜歡這樣,暴漲暴跌才能炒作撈錢)。

短期來說,我自己的看法是,
歐債還沒完全過(大部分散戶多少還有一點疑慮),
美國、歐洲幾隻豬準備選總統(選前景氣太差或變化太大可能影響選情),
中國也要換領導人(接棒前景氣太差或變化太大可能影響政局),
伊朗、以色列問題(要打嗎?) ,
因此我猜全球股市可能漲或維持平盤(震盪形式?)一段時間,
但時間多長我不確定
(要屠宰散戶,總要等散戶信心恢復,股價維持高點一段時間再宰)。

現階段,我只希望航運股維持低價,
讓我可以繼續買幾個月就很滿足了。

2011年10月16日

買房策略-地段、地段、地段與房價

首先我必須說,房子是我很不瞭解的部份。
再來我必須說,我很幸運家裡有個在台北市的房子,沒有租屋付房租的壓力,
因此這篇,比較接近我以投資觀點來看買房這件事情。
這篇主要是看到了張金鶚的房產七堂課讀後感續1-----購屋的大同世界,
加上之前看過的漫步華爾街後的有感而發。

因為前陣子房價很高,老媽走在路上,就會到處看房子,然後嘆息說
「以前應該在這裡買房,現在價格如何」。

然後我問我老媽,買房重點是啥,她回答了一個名人的經典說法
「買房重點有3個:地段、地段、地段」。

我聽完之後,一直覺得哪裡不大對勁,
在前陣子看過「漫步華爾街」之後,終於想明白問題在哪了......

漫步華爾街的作者在書後段提到房地產投資,作者對房地產的看法是
「他不瞭解房地產的價格如何被評估,認為房地產價格無法像公司股票比較容易量化和分析,而房地產的價格會隨著市場景氣高低波動,波動幅度會比市場景氣來得大」。
看完這段之後,我就瞭解到了一件事,
買房地段的確很重要,但實際上還是要考量到房價,一個簡單的問題:
同地段相同等級的房屋,且條件相同,
同一時間一間賣300萬,一間賣500萬,正常人會買哪間?
如果只按照「地段」作為選擇依據,
那麼300萬的房子和500萬的房子「都是值得購買的」,
可是顯然不大對,正常人都會買300萬那間而不會買500萬那間。
所以事實上,除了「地段」這項條件外,還要考慮到「價格」這個條件。

當買房條件出現了「價格」,甚至於和市場景氣出現關聯時,
那麼買房子就會和買股票、基金、黃金差不多,一樣會有價格高點和價格低點。

而股市在遇到空頭時,往往會出現一些有趣的說法,如:
「當擦鞋童都知道如何買股票時」
「當新聞版面隨處可見股市消息時」
「當某某名人說他賺了幾間房子時」
就是股市高點出現了。

那麼,如果套用到房地產呢?
如果房地產真的這麼厲害,只會漲不會跌,那美國次級房貸的問題怎麼會出現?
又如果房地產只會漲不會跌,那次級房貸後,美國房地產價格為何會破底再破底?
在回想下,前陣子台股9000點時,新聞是否經常出現買房大賺,房價大漲的新聞?
甚至可以比較一下,現在的房價和當時的房價相比有沒有差異?

所以我認為,買房只是另一種投資,
同樣要低買高賣或低買不賣,買進的時機點可能在市場景氣低點時會比較適合,
在景氣大好時,可能不適合買房,
我也認為,房價在任何時候價格不應該是相同的,
房價應該也會受到景氣影響而有房價高點跟房價低點。

2011年7月31日

OpenOffice聚會之心得分享 - 過程與範例程式、投影片下載


當天報告的投影片、範例程式:OpenOffice範例程式與投影片

年初時參加OpenOffice聚會,當時依瑪貓說,
之後OpenOffice Macro有成果,要和我們分享唷~

我當時義不容辭的同意了,於是在之後準備了這份報告。

這份報告,同時也是我到目前對OpenOffice Macro的認識與學習心得。

2011年7月8日

複委託之優點

日本發生海嘯後,我就在積極的查詢購買海外股票的方法和比較,
最後發現,目前在台灣,可以透過2種方式購買到國外股票:
1. 在海外開設股票帳戶
2. 透過國內證券公司的海外複委託購買

在經過比較後,最後我選擇使用海外複委託。

因為,用海外複委託搜尋,會發現有人在詢問海外複委託好不好,
所以這裡我大致列出我選擇的原因和海外複委託的優點和缺點。

海外複委託的缺點:
1. 手續費
我想,包括我在內所有人,
都認為海外複委託最大的缺點是「手續費」,
海外複委託的手續費都很貴。
以寶來證券日股交易來說,
每次交易1%計算,但最少5000日幣,
這相當於台幣1850左右(以1:2.7計算)。
其他應該也差不多,
日盛是最少5000日幣,
超過xx萬改以1%計算。

2. 人工單
除了港股、美股之外,都只有人工單,
電話呼叫很麻煩,有時候會打不進去,
詢問報價,和奇摩查到的報價會有誤差。

3. 帳戶操作麻煩
a. 沒有T+2
和台股不同,沒有T+2天,
必須帳上有足夠外幣現金(有些可以台幣交割了),
轉成外幣買完後,盛下的零碎外幣不好處理,
轉回有匯損,放著又不知道能幹嘛。
b. 轉出需要Fax+電話確認
錢從外幣帳戶轉出,需要傳真要求,
而且需要電話確認,很麻煩。

4. 限制比較多
我不用信用和融資買賣(槓桿太恐怖了),
複委託在信用買賣和融資操作,
是有限制的,印象中是不可以的。

5. 海外股票無法辦理退稅
以美股來說,美股配息先扣30%稅金,
透過複委託無法辦理退稅。

海外複委託的優點:
1. 多市場買賣
許多人推薦直接開立海外股票帳戶操作,但指的都是美股,
所以事實上,它並不是多市場,它只有美股可以操作,
只是因為美股中有全世界大部分公司的股票發行,或者ADR,
所以才說可以買到全世界公司的股票,但實際上,它還是美股,
而不會是日股、韓股、港股。
以這次日本海嘯後,我想買的日股來說,美股中的日本公司股價,
其海嘯造成的影響沒有很大,真正造成衝擊是日本股價。

2. 無銀行開戶限制
這點其實和第一點是關聯的。
要開立海外帳戶購買海外股票,必須針對單一地區開立銀行帳戶,
例如買港股要去香港銀行開戶,買美股要開立美國證券帳戶,
買日股要開立日本銀行帳戶...等。
香港和美國相對問題比較少,香港近,請假2天去玩一玩,
就能順便開好戶頭;美國可以用郵寄解決。
韓國、新加坡不清楚。
但針對日本,上網搜尋會發現,日本銀行排外性很高,
留學生都不容易找到可以開戶的銀行,何況是觀光客。

3. 手續費高,但其他費用少
海外複委託雖然手續費高,
但買賣時不用其他費用(配息手續費大家都有,費用也相同,看市場),
但其他海外帳戶不同。

我同事買港股,
選擇香港匯豐銀行(應該是很多人都會選擇的,香港最大)。
香港匯豐銀行規定,帳戶內金額(聽同事說,
含股票市值)必須大於20萬港幣,
否則每個月都要收取保管費,這筆錢複委託並不需要。

美股的話,除非人到美國去開戶,否則需要匯款,
匯款需要一筆不低的手續費,
我當時計算,如果「每次買美股都匯款」,
那手續費其實接近海外複委託的美股手續費,
因此網路上都說,
一次匯入大筆金額後,再進行操作,
而像我這樣靠薪水投資的,並不合適。

另外,如果我沒記錯的話,匯款是有時差的,
好像需要2~3天,
海外複委託的操作都是台灣的銀行的外幣帳戶操作,
放錢到可以操作,大概2~3個小時即可
(這應該是證券公司帳戶資訊沒更新,
我從銀行帳戶看,是立刻就有錢)。

4. 可靠度高
這點網路上的人都提過,透過海外複委託購買可靠度比較高,
比較不怕證券公司倒閉或者股票不見,
在網路上有人提到過,他透過美國的線上證券公司買股票,
結果股票不見的事情。
針對這點,網路上的人是說,
你可以找有加入「投資人保障協會」的線上證券公司,
但問題是,當你真的發生問題時,
你要如何和投資人保障協會聯絡?要怎麼把股票拿回來?
你的操作紀錄都在線上證券公司裡,
它股票都能不見,你怎麼能保證它操作紀錄還在?
那你怎麼舉證你的股票?

基於上述原因,
我最後選擇透過海外複委託買股票,
不過對我來說,
最主要原因還是因為我要買的是日股而不是美股或港股,
但我想,未來我要購買港股或美股,我不用因此跑到香港,
或者郵寄、匯款到美國搞很久,就能直接購買了,
這應該在便利性上也會好很多。

2011年4月4日

OpenOffice Calc BASIC Macro位址、名稱轉換

在OOo Calc中寫OOo BASIC時,會遇到個問題是,
要取得Cell時,常使用getCellByPosition() Method,例如:
oCell = oSheet.getCellByPosition(0,0)
oCell.String = now 'This function returns the current date and time

這樣可以取得A1這個Cell,並修改它的內容。

但getCellByPosition() Method使用的是0 Base,且X、Y都是數值,
可是在Calc當中,
我們一般操作都使用A1這樣的字母+數值,且是1 Base,
為了解決這個麻煩的小問題,我寫了個簡單的轉換函式,如下:
Function CellPositionToName(X As Integer, Y As Integer) As String
Dim LETTER_ARRAY As Variant
LETTER_ARRAY = Array("A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","AA","AB","AC","AD","AE","AF","AG","AH","AI","AJ","AK","AL","AM","AN","AO","AP","AQ","AR","AS","AT","AU","AV","AW","AX","AY","AZ","BA","BB","BC","BD","BE","BF","BG","BH","BI","BJ","BK","BL","BM","BN","BO","BP","BQ","BR","BS","BT","BU","BV","BW","BX","BY","BZ","CA","CB","CC","CD","CE","CF","CG","CH","CI","CJ","CK","CL","CM","CN","CO","CP","CQ","CR","CS","CT","CU","CV","CW","CX","CY","CZ","DA","DB","DC","DD","DE","DF","DG","DH","DI","DJ","DK","DL","DM","DN","DO","DP","DQ","DR","DS","DT","DU","DV","DW","DX","DY","DZ","EA","EB","EC","ED","EE","EF","EG","EH","EI","EJ","EK","EL","EM","EN","EO","EP","EQ","ER","ES","ET","EU","EV","EW","EX","EY","EZ","FA","FB","FC","FD","FE","FF","FG","FH","FI","FJ","FK","FL","FM","FN","FO","FP","FQ","FR","FS","FT","FU","FV","FW","FX","FY","FZ","GA","GB","GC","GD","GE","GF","GG","GH","GI","GJ","GK","GL","GM","GN","GO","GP","GQ","GR","GS","GT","GU","GV","GW","GX","GY","GZ","HA","HB","HC","HD","HE","HF","HG","HH","HI","HJ","HK","HL","HM","HN","HO","HP","HQ","HR","HS","HT","HU","HV","HW","HX","HY","HZ","IA","IB","IC","ID","IE","IF","IG","IH","II","IJ","IK","IL","IM","IN","IO","IP","IQ","IR","IS","IT","IU","IV","IW","IX","IY","IZ","JA","JB","JC","JD","JE","JF","JG","JH","JI","JJ","JK","JL","JM","JN","JO","JP","JQ","JR","JS","JT","JU","JV","JW","JX","JY","JZ","KA","KB","KC","KD","KE","KF","KG","KH","KI","KJ","KK","KL","KM","KN","KO","KP","KQ","KR","KS","KT","KU","KV","KW","KX","KY","KZ","LA","LB","LC","LD","LE","LF","LG","LH","LI","LJ","LK","LL","LM","LN","LO","LP","LQ","LR","LS","LT","LU","LV","LW","LX","LY","LZ","MA","MB","MC","MD","ME","MF","MG","MH","MI","MJ","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NB","NC","ND","NE","NF","NG","NH","NI","NJ","NK","NL","NM","NN","NO","NP","NQ","NR","NS","NT","NU","NV","NW","NX","NY","NZ","OA","OB","OC","OD","OE","OF","OG","OH","OI","OJ","OK","OL","OM","ON","OO","OP","OQ","OR","OS","OT","OU","OV","OW","OX","OY","OZ","PA","PB","PC","PD","PE","PF","PG","PH","PI","PJ","PK","PL","PM","PN","PO","PP","PQ","PR","PS","PT","PU","PV","PW","PX","PY","PZ","QA","QB","QC","QD","QE","QF","QG","QH","QI","QJ","QK","QL","QM","QN","QO","QP","QQ","QR","QS","QT","QU","QV","QW","QX","QY","QZ","RA","RB","RC","RD","RE","RF","RG","RH","RI","RJ","RK","RL","RM","RN","RO","RP","RQ","RR","RS","RT","RU","RV","RW","RX","RY","RZ","SA","SB","SC","SD","SE","SF","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SP","SQ","SR","SS","ST","SU","SV","SW","SX","SY","SZ","TA","TB","TC","TD","TE","TF","TG","TH","TI","TJ","TK","TL","TM","TN","TO","TP","TQ","TR","TS","TT","TU","TV","TW","TX","TY","TZ","UA","UB","UC","UD","UE","UF","UG","UH","UI","UJ","UK","UL","UM","UN","UO","UP","UQ","UR","US","UT","UU","UV","UW","UX","UY","UZ","VA","VB","VC","VD","VE","VF","VG","VH","VI","VJ","VK","VL","VM","VN","VO","VP","VQ","VR","VS","VT","VU","VV","VW","VX","VY","VZ","WA","WB","WC","WD","WE","WF","WG","WH","WI","WJ","WK","WL","WM","WN","WO","WP","WQ","WR","WS","WT","WU","WV","WW","WX","WY","WZ","XA","XB","XC","XD","XE","XF","XG","XH","XI","XJ","XK","XL","XM","XN","XO","XP","XQ","XR","XS","XT","XU","XV","XW","XX","XY","XZ","YA","YB","YC","YD","YE","YF","YG","YH","YI","YJ","YK","YL","YM","YN","YO","YP","YQ","YR","YS","YT","YU","YV","YW","YX","YY","YZ","ZA","ZB","ZC","ZD","ZE","ZF","ZG","ZH","ZI","ZJ","ZK","ZL","ZM","ZN","ZO","ZP","ZQ","ZR","ZS","ZT","ZU","ZV","ZW","ZX","ZY","ZZ","AAA","AAB","AAC","AAD","AAE","AAF","AAG","AAH","AAI","AAJ","AAK","AAL","AAM","AAN","AAO","AAP","AAQ","AAR","AAS","AAT","AAU","AAV","AAW","AAX","AAY","AAZ","ABA","ABB","ABC","ABD","ABE","ABF","ABG","ABH","ABI","ABJ","ABK","ABL","ABM","ABN","ABO","ABP","ABQ","ABR","ABS","ABT","ABU","ABV","ABW","ABX","ABY","ABZ","ACA","ACB","ACC","ACD","ACE","ACF","ACG","ACH","ACI","ACJ","ACK","ACL","ACM","ACN","ACO","ACP","ACQ","ACR","ACS","ACT","ACU","ACV","ACW","ACX","ACY","ACZ","ADA","ADB","ADC","ADD","ADE","ADF","ADG","ADH","ADI","ADJ","ADK","ADL","ADM","ADN","ADO","ADP","ADQ","ADR","ADS","ADT","ADU","ADV","ADW","ADX","ADY","ADZ","AEA","AEB","AEC","AED","AEE","AEF","AEG","AEH","AEI","AEJ","AEK","AEL","AEM","AEN","AEO","AEP","AEQ","AER","AES","AET","AEU","AEV","AEW","AEX","AEY","AEZ","AFA","AFB","AFC","AFD","AFE","AFF","AFG","AFH","AFI","AFJ","AFK","AFL","AFM","AFN","AFO","AFP","AFQ","AFR","AFS","AFT","AFU","AFV","AFW","AFX","AFY","AFZ","AGA","AGB","AGC","AGD","AGE","AGF","AGG","AGH","AGI","AGJ","AGK","AGL","AGM","AGN","AGO","AGP","AGQ","AGR","AGS","AGT","AGU","AGV","AGW","AGX","AGY","AGZ","AHA","AHB","AHC","AHD","AHE","AHF","AHG","AHH","AHI","AHJ","AHK","AHL","AHM","AHN","AHO","AHP","AHQ","AHR","AHS","AHT","AHU","AHV","AHW","AHX","AHY","AHZ","AIA","AIB","AIC","AID","AIE","AIF","AIG","AIH","AII","AIJ","AIK","AIL","AIM","AIN","AIO","AIP","AIQ","AIR","AIS","AIT","AIU","AIV","AIW","AIX","AIY","AIZ","AJA","AJB","AJC","AJD","AJE","AJF","AJG","AJH","AJI","AJJ","AJK","AJL","AJM","AJN","AJO","AJP","AJQ","AJR","AJS","AJT","AJU","AJV","AJW","AJX","AJY","AJZ","AKA","AKB","AKC","AKD","AKE","AKF","AKG","AKH","AKI","AKJ","AKK","AKL","AKM","AKN","AKO","AKP","AKQ","AKR","AKS","AKT","AKU","AKV","AKW","AKX","AKY","AKZ","ALA","ALB","ALC","ALD","ALE","ALF","ALG","ALH","ALI","ALJ","ALK","ALL","ALM","ALN","ALO","ALP","ALQ","ALR","ALS","ALT","ALU","ALV","ALW","ALX","ALY","ALZ","AMA","AMB","AMC","AMD","AME","AMF","AMG","AMH","AMI","AMJ")

If X < 1024 Then CellPositionToName = LETTER_ARRAY(X) + (Y + 1) Else MsgBox "Out Of Range" End If End Function

傳入X、Y 2個數值,回傳A3這樣的名稱,
因為X最大是AMJ(0~1023),因為數值並不大,
我直接定義成變數查表即可。

注意:已經自動轉換Base 0為Base 1,傳入時不用刻意加1。

2011年4月3日

007先生的交易歷程 的 讀後回文

本來在找匯率表之類的,就找到這個有趣的Blog,
007先生看來年紀跟我差不多,不是同年就是小個1~2歲,
整個Blog看下來後,我認為007先生實際的以金錢去做了個實驗,
實驗證明了,程式交易並不是神,
僅僅依靠程式交易搭配特定演算法就要套利,
結果就是直接被市場KO,
我後來想了想,覺得007先生這麼做,並以日記形式寫成Blog,
應該可以作為不錯的反向教材,
而在倒數第二篇文章中,因為007先生的不甘心,
提到「一定是哪裡出了問題」,
因此我把我這段時間的想法寫成回文,
這段回文,算是目前我對交易市場和程式交易的想法。


沒做過外匯,只有最近(算前陣子)台幣升值時有換一些美金玩玩。
我是看到「我知道必定是哪裡出了錯...」這句話,才想回應的。

我對程式交易有興趣,但我只打算用程式交易做股市中長期(月為單位、長期持有定存股),代替人工下單(上班沒時間)。
我目前認為,除非遇到系統風險或異常超跌,否則在交易市場要套利,應該很難和大戶或法人玩。

我目前認為,程式交易會失敗有幾個關鍵因素:
1. 常見的程式交易,都是用EasyLanguage去寫的,你仔細想一下,事實上它能做到的條件很死板,它的條件幾乎都是軟體寫好提供的,感覺有點像是說,給你玩個沒規則的遊戲,但只給你幾個條件去搭配判斷,這聽起來就很受限,只要我知道你能夠使用的條件,我想贏你的機會應該很大

2. 目前沒有任何聖杯,可以保證獲利,沒有任何條件套用在金融市場是百分百正確的,我們透過一連串無法保證的條件去判斷,並期望它要有6成勝率,那可能用亂數感覺還快些

3. 去年發生過一次美股異常交易的事件有上新聞,大家都知道,有人說可能是高頻交易引發的連鎖效應,我查了高頻交易,才知道國外很多大型投資公司用高頻交易套利,它們利用電腦,以「每秒400次成交」的速度,高速的進行買跟賣,利用利差來套利,甚至我認為,能以此掌握最短期的市場變化,在設備、環境、程式、資金大小、消息面都不對等的情況,我不認為我的程式有辦法跟這樣的程式作對

4. 程式是人寫的,換言之,它只能代替人去按照特定模式交易,既然你我都沒找到一個勝率達6成的模式,又怎麼能要求程式能有6成勝率?

最後,我想我可以把最近幾個月的想法說一下,我認為,憑空希望能透過投機的方式來獲利,不如注意系統風險的發生。
你買了這麼多書,相信有提到一點,交易市場會有系統性風險跟非系統性風險,系統性風險不可預期,且影響巨大,像金融風暴、次級房貸...等。
事實上你稍微注意一下會發現,當遇到系統風險時,該投資標的很有機會跌到非常不錯的價格,只要不破產,此時買入並長期持有(預期至少1~2年),那麼我認為績效應該都不會太差。
你前面常提到,有錢人一開始也是從無到有的,這點我認同,但不完全認同,一些人它可能父母有庇蔭,一開始就有一筆不少的資金,當他剛好遇到某個系統風險時,大膽的投入,運氣不好可能破產,但此時只要沒破產,勝率很高,且因為資金大,獲得的獲利非常可觀,原因是,在交易市場,你玩了這麼久就知道,它的獲利是以%數計算的,他有資金,又在系統風險最低點投入,上來時,那種以%數計算的獲利非常驚人。
最後,我們生在台灣,天生就不平等,你想想,我們辛辛苦苦一個月不過3,4萬,一個月有辦法也不過存2萬,美國人薪資是我們的2~3倍,扣除開銷和稅金,還是比我們多很多,他們的資金水平和我們不是同一個水平,對賠率的容忍度比我們高,這是沒辦法的事,但好消息是,跟對岸或東南亞國家相比,薪資水準、物價水平我們又好一些。