PageRank



轉移公告

計劃把 http://blog.hoamon.info/ 文章全部轉移至 http://www.hoamon.info/blog/ 這裡,而本 Blogger 站台的文章近 500 篇,我預計在 2014-12-31 前移轉完畢,完成後 http://blog.hoamon.info/ 將只作代轉服務,一律把舊連結如 http://blog.hoamon.info/index.html 轉成 http://www.hoamon.info/blog/index.html ,敬請舊雨新知互相走告。

新文章只發佈在 http://www.hoamon.info/blog/

何岳峰 敬上

2009年5月31日 星期日

將三個網址全托管給同一個 GAE(google app engine) 程式

在我還將網頁程式全部放在 Ubuntu 中以 Apache 服務時,針對不同類型的資料,我會給定不同的網址像是: www.hoamon.info, down.hoamon.info, ssvn.hoamon.info, book.hoamon.info …等。但是現在我的策略是把所有個人化的網站全部交給 GAE 處理。

既然如此,難道我要一個網址就開一個 GAE spot 嗎? 如果我的各項個人化網站的資料是超過 500mb 的話,在不想花錢的情況下,的確是一個網站開一個 GAE spot ,但我的個人化網站的資料量都不大,這麼作太浪費了。

這次我想整合的網址是 down.hoamon.info, ssvn.hoamon.info ,它們兩個網址原本就只是在作靜態檔案的分享,一個是鬆散無結構化集成的檔案,另一個則是有作 subversion 管理的檔案。

因為在我其他已存在的文章、網頁以及我正使用的名片上,早就標明那些檔案的下載網址,像是: http://ssvn.hoamon.info/OpenTrunk/hoamon.pgp.aschttp://down.hoamon.info/resume070403.tex …等。所以我不能變更這些已存在的 url ,而是讓 GAE 能分辦那些 url 要求是要跑到原本 www.hoamon.info spot 的,那些 url 則是直接以靜態方式存取的。

我打算讓 http://down.hoamon.info/(.*) 的 url 會被 redirect 成 http://down.hoamon.info/_d/(.*); 而 http://ssvn.hoamon.info/(.*) 的 url 則被 redirect 成 http://ssvn.hoamon.info/_s/(.*) 。

這樣我就能在 app.yaml 設定如下:

...
...
...
- url: /_s
static_dir: ssvn_dir

- url: /_d
static_dir: down_dir
...
...
...
- url: /.*
script: index_views.py

那麼如何讓 down.hoamon.info 開頭的網址能 redirect 成 down.hoamon.info/_d 的呢? 我們就必須在 index_views.py 動手腳了。在 GAE 中,要讓 python 程式得取目前的 http request 是以什麼 url 作要求的,就是從這個變數 request.headers['HOST'] 下手,不過這個變數目前好像只存在於 webapp.RequestHandler 中,所以我處理的方式如下:

class Index(webapp.RequestHandler):
def get(self, args):
# 在這裡判斷使用者要看的是那一個網站,然後再作 redirect 的動作。
HTTP_HOST = self.request.headers['HOST']
if 'down.hoamon.info' == HTTP_HOST:
self.redirect('/_d/%s' % args)
elif 'ssvn.hoamon.info' == HTTP_HOST:
self.redirect('/_s/%s' % args)
# end

...

_DEBUG = True
application = webapp.WSGIApplication([
('/(.*)', Index),
], debug=_DEBUG)

def main():
run_wsgi_app(application)

因為我只會在 webapp.RequestHandler.request.headers['HOST'] 中抓到使用者要求網址,所以就會把 dispatch 邏輯寫在 view(MTV)/controller(MVC) 中,這樣的程式能完成工作但不算漂亮。

GAE spot 的程式完成後,記得還要把 down.hoamon.info, ssvn.hoamon.info CNAME 到 ghs.google.com *,這樣就成功合併了。

PS1 額外提醒! 這個動作是要到你的 domain name 服務商的設定介面處理。不過,你也得在 GAE 的 [admin 介面]
> [Versions]
> [Add Domain]
> [填入 hoamon.info(請不要照填 hoamon.info ,這是我的托管給 google apps 的網址,你的一定不是這個。且作這一步驟,你得先有 Google Apps 帳戶才行)]
> [填入密碼]
> [Add new url(像是 down.hoamon.info, ssvn.hoamon.info 等)]
才行。

2009年5月27日 星期三

指數化投資的一大優點: 個別市場風險小

聲明:我提「安隆企業」事件,並不是要影射巨大機械是安隆翻版,我的重點在於,別把人生或是金錢賭在一家公司上,因為他們大股東自己都不知道未來是如何的!


引自: http://pchome.syspower.com.tw/stock/?stock_no=9921&item=24

雖然我是巨大的股東之一,不過,這個從快漲停到跌停鎖住的情況,卻也沒嚇著我。

我對這件事的看法是,太多散戶在 MSCI 調整權重後對 9921 股價的期待相當高,而這個期待也導致巨大的強勢,只不過大家都看短,不想當最後一支老鼠,所以在它正式生效前、尾盤幾乎拉到漲停價前,不約而同地以跌停價賣了,又剛好底接的人不多,也就只好撮合在跌停價了 *

以上我認知的原因,可能是錯的,但就算巨大在端午佳節中,宣佈破產倒閉,在下周一開盤時,我的報酬率也還會是正值。原因就在於我沒把雞蛋放在同一籃子裡,之前所提到的 60% 的漲幅即是我的後盾之一。我的投資組合中,產業別多、公司多,就理論上,它們是可以規避個別風險的,雖然系統風險避不開,但在發生系統風險時,整個台北股市也沒幾個人逃得開,我又何必擔心呢!!

前陣子,看了「安隆風暴」後,不禁讓我想到,一家偽造財務報表的公司,可能過去它也是一家績優企業,只是不知道在什麼時候,開始對本業沒那麼擅長,而對股價「擅長」。或許那些大股東自己都忘了當初公司成立的理想,而以為只要股價有漲就代表著對自己的荷包及投資人負責了。

基本上,散戶是猜不透大股東的想法,而且別以為那些大股東、市場主力真的握有「賺錢妙方」,他們炒股票能賺錢,完全是散戶自己的愚蠢及貪婪。高風險才有高報酬,高報酬則激發高風險。

PS 覺得很多人在看盤時,會講有「大單在作進出」,而我卻認為這是一種錯誤的認知,像今天巨大(9921)的最後一盤成交近三千張,他們會覺得這是有主力刻意在出貨,但我想這不過是巧合而已,這只是一堆散戶加主力在短時間內所下的賣單,因為時間差極短,所以只能一次撮合所造成的表象。

2009年5月26日 星期二

Zotero 2.0 Beta: 提供 Sync 功能

開始要寫論文了,在文獻管理上,當然是要推 Firefox 的外掛套件 Zotero 了。

只是之前的 Zotero ,在檔案管理上,都是要放在目錄中。這對我有多台電腦的人來說,備份及管理都不方便,後來,我把它丟到 hg 去,這才稍為減少備份工作。

現在 Zotero 推出 2.0 Beta ,其中對我最重要的功能就是它也提供一個 sync server ,讓你輕鬆點一下,就能同步在其他電腦上所作的文獻管理資訊。

這太方便了。

== 後記 ==
令人失望的是,它只能同步文獻資訊,不會同步它的附帶檔案。

小曹想打「全壘打」大賽!

這是一則相當有趣的新聞,我們的職棒投手大多在進入成棒/職棒時期後,就不再拿著球棒上場了。但投手自行打擊這件事對某些傳統棒球人來說,還是件非常吸引人的事。

看到小曹對打擊這麼有興趣。我倒是覺得中華職棒或許可以把「指定代打」制度作某程度的調整。像現在球隊只剩下四個,所以總冠軍的打法,又回到上下球季冠軍競賽的局面。既然賽制將一個完整的球季切成兩個,那我們乾脆區分開上下球季的競賽規則。在上半季中,所有比賽(包含因故延至下半季時間的場次)一律取消「DH」; 而在下半季中,則一律使用「DH」。這樣一來,到了總冠軍戰時,在上半季冠軍主場比賽時也不使用「DH」,而輪到下半季冠軍主場時,則恢復「DH」制度。

這樣的比賽是不是更有看頭! 光是想到陽建福要打嘟嘟的球,就讓我想要買票進場。

PS 為什麼是上半季取消「DH」,而不是下半季呢? 我的看法是:「要讓投手們在球季開打前好好地作跑壘及打擊的練習,讓「跑壘腳傷事件」比較不會發生。

2009年5月25日 星期一

把我的個人網站搬到 Google App Engine

自從上次運作 http://www.hoamon.info/ 的 Ubuntu 主機硬碟掛了後,就一直怗記著要把 Djange base 的個人網站改到 GAE 去。畢竟我還是比較相信 Google 的工程師在主機維護上的能力。

這個週未,終於花了點時間作移植。有點累。

與 Django 相比,到也不是比較難,而是 GAE 用了很多與原本 LAMP 不一樣的管理/程式概念。像是資料表方面,雖然 GAE 有提供 Data Viewer ,但這與傳統方式觀看資料表又不一樣,轉資料是我花最多時間的地方。

另外這一次比較重大的改變,則是我把原始資料格式從 html 改成 rST 了。如此一來,與我其他文件可以作更快速地轉換了,而這個 python-docutils 的函式庫與 GAE 相容問題也讓我花了不少時間。有機會,再向各位介紹了。我累了,要睡了。

2009年5月19日 星期二

2009年5月18日 星期一

Goog News: Mercurial support for Project Hosting on Google Code

from Mercurial support for Project Hosting on Google Code

...The primary reason was to support our large base of existing Subversion users that want to use a distributed version control system. For these users we felt that Mercurial had the lowest barrier to adoption because of its similar command set, great documentation (including a great online book), and excellent tools such as Tortoise Hg. Second, given that Google Code's infrastructure is built for HTTP-based services, we found that Mercurial had the best protocol and performance characteristics for HTTP support. For more information, see our analysis.
...


Yes! My next wish is "Mercurial library" can natively works on Google App Engine.

2009年5月16日 星期六

reStructured Text + CJK Latex: footnote 破壞文句階層問題

之前考博士班時,曾把自己的履歷用 Latex 寫出來。但是這太麻煩了。文章結構不難,但要多打很多我記不起來的標準語句,雖然可用 vim 樣版解決,但寫 latex 版的文章機會實在是太少了,除了履歷、期刊論文外,一些 blog 文章、計劃書、說明檔都是用類 wiki 的語法寫下來的。所以會少了很多時間記住 latex 語法。

最近開始寫報告及論文了,重新把 CJK Latex 安裝回我的 Ubuntu ,並回顧(複習)之前的 Latex 語法,覺得十分生疏。也就研究一下 Linux 上如何把 rST 格式轉 latex 的技術。還滿簡單的。我是結合 vim 來作轉換的動作。

但是在一個使用 footnote 的地方,無論我怎麼設定,它(rST)在轉 latex 時,就是會跑掉。

我的文句如下:
    在歷史的不透明性中,我們只能把垃圾資料送進模式(不一定正確)中,並得到垃圾預測 [#]_ 。

.. [#] 既然從歷史資料,我們無法歸納準則,從而避免錯誤,達到以古為鏡,可以知興替。
那麼整個歷史學科還有存在的必要性嗎? 這一點,是我這個歷史門外漢的疑點。

最後在第四部中,說明幾個如何面對「未來不可預測」的方法,
像是儘可能地嘗試,別擔心小失敗。

轉成 pdf 後,發現「最後在第四部中…」這一句也會變成 footnote 中的文句。

而如果使用:
    在歷史的不透明性中,我們只能把垃圾資料送進模式(不一定正確)中,並得到垃圾預測 [#]_ 。

.. [#] 既然從歷史資料,我們無法歸納準則,從而避免錯誤,達到以古為鏡,可以知興替。
那麼整個歷史學科還有存在的必要性嗎? 這一點,是我這個歷史門外漢的疑點。

最後在第四部中,說明幾個如何面對「未來不可預測」的方法,
像是儘可能地嘗試,別擔心小失敗。

則「最後在…」的文句其階層不同於「在歷史的不透…」。

最後,我終於找到解法了,就是把 footnote 解釋文句放置於該段落的最後段,如此一來,它就不會破壞文句階層了。其最後結果如下:
    在歷史的不透明性中,我們只能把垃圾資料送進模式(不一定正確)中,並得到垃圾預測 [#]_ 。

最後在第四部中,說明幾個如何面對「未來不可預測」的方法,
像是儘可能地嘗試,別擔心小失敗。

.. [#] 既然從歷史資料,我們無法歸納準則,從而避免錯誤,達到以古為鏡,可以知興替。
那麼整個歷史學科還有存在的必要性嗎? 這一點,是我這個歷史門外漢的疑點。


嗯~這個排版問題,我花了二個小時。可見我多麼要求排版品質

2009年5月13日 星期三

電機系學生要不要轉系?

林百里唱衰電機系 學弟妹早知道,這新聞有趣。

買賣過股票的人,大概聽過「景氣循環」這個概念,某些產業的利潤並不單靠技術的提昇而來,而是因為供需理論,簡單講就是有錢賺的時候,一堆人跳進來作,導致大家都沒錢賺; 沒錢賺的時候,因為一堆廠商倒閉,所以就有某些優質廠商又開始賺錢。

因為產業經營有好有壞,所以股民在買賣股票時,可以這個時間點買的是航運類股,過二個月後買的是金融股,再過四個月又回到鋼鐵,這資金不斷地流動造就了股票市場的熱鬧。買賣股票沒什麼沉沒成本產生,所以只要股民有賺到錢,他高興這樣輪動,沒有人會反對。

但是對學生來說,該讀什麼行業的書,就不能是這麼操作了。因為熱門才去唸這行業的書,然後等冷門的時候,再叫學生們跳到別的行業; 或者是反向操作,因為冷門才去唸這行業的書,然後在畢業時,這行業剛好會熱門起來(我就是這樣選擇土木的)。因為讀書的沉沒成本很高,除非你是經濟轉財金、社會轉社工、營建轉土木…,這些類型的科系同質性高,轉換就沒有成本。但如果像是物理轉歷史、經濟轉電機,那我想不多花個2~3年,你該如何追上其他同學呢!

所以唸書應該看的是「興趣」,惟有「興趣」的支持,你未來在漫長的生活(少則10年,多則40年)中才能同時忍受「時程及業績壓力」、「老闆莫明要求」、「小孩子幼稚的想法」以及「老婆的感性(非理性)述求」。

錢通常不是一項「長久性」激勵因素。

2009年5月12日 星期二

愈來愈離不開 PC home 了

今天下午在我們家附近的書局粗略看了「黑天鵝效應」一書後,覺得值得買下它。所以回到家就在博客來及金石堂上比了個價,最後決定在金石堂買下它,一本 373 元。

晚上,看到老婆在拆 PC home 寄來的口罩後,想想,或許它也有賣這本書,一查之後,我真是後悔呀! 一本才 355 元,而且 24 小時內到家。還好金石堂的書還沒調貨,趕緊取消它,換到 PC home 去。

PC home 真是棒呀!

個人運用指數化投資的一大缺點:流動性風險太高

今天我買了 500 股的美利達(9914),結果零股交易量是 603 股,我佔了八成三的交易量,而且收盤價在 47.3 ,但零股成交價卻在 48 元,這原因就出在我用 50 元的價格來買,拉高了 7 碼,天呀! 如果再少幾個人賣,會不會就撮合在 50 元呀,實在是太吃虧了。不曉得將來我要賣美利達時,會不會再遇到一次流動性問題。

「政治文」:民主中國

Guns N' Roses 08 專輯 Chinese Democracy (民主中國) 發表了。本來應該責無旁貸,給它買一張的,畢竟他們是讓我渡過青春期的一部份原因,但是就像 X-Japan 來台一樣,我也沒有積極地作些什麼。我想是對於青春期而言,我還保留著一份美好的回憶,但要我再回到青春期,那就免了。

人總是會變的,可能是因時間,可能是因對象,可能是因了解。

所以某天一位網友說我的政治傾向是「泛藍的」,我先是驚訝地懷疑我自己:「我的思想變了嗎?」 從高中以來,我不是一直支持台灣獨立的嗎? 難道現在不是了嗎? 想了想後,發現我的確是不一樣了,就統獨議題上,我的選項除了「民主台灣獨立」外,還有「民主中國統一民主台灣」的選項。

當我們選了一個居住台北多年的人來當台灣總統時,我們該擔心他會不照顧大台中地區的選民嗎? 同樣地,我們選了一個居住北京多年的人來當中國總統時,我們該擔心他會不照顧台灣的選民嗎?

重要的是「民主」,雖然我不喜歡民主(多數暴力),但卻找不出比它更好的政治制度,所以我能接受民主。

在台灣島上,原住民13族、閩、客、外籍、外省人們都可以和平共處,有什麼理由不相信和「民主中國人」會無法相處呢? 畢竟我們的官方語言還算是通的。

當然,要作到「民主中國統一民主台灣」前,首先,中國要先民主了,再來是台灣島上的二千三百萬人要表決通過。

但是要求中國得是民主國家前,我們自己的民主制度有作得好嗎? 看看這則新聞挺扁!!死忠扁迷留守板醫。莫明奇妙,載個紅口罩也有事。討論議事時,我們該對事不對人的,但就是有些人會動手,就是有些人會以「不是台灣人」作人身攻擊,我實在看不出這是我想要的民主。

從高中時,我就一直覺得台灣人的民主教育不夠,因為他們不懂自己要的是什麼; 但現在還是覺得台灣人的民主教育不夠,因為他們只在乎自己要的是什麼因為我贊成 Thinker 所提的「透過個人利益的最大化,以達到群體利益的最大化」,所以刪除的那句話要改成「過了 10 多年,現在大部份的台灣人仍舊是不懂自己"應該"要的是什麼!」

2009年5月10日 星期日

60% 的漲幅

我大二就開始有買賣股票的經驗了。但是我從沒有一檔股票能夠讓我賺到二成以上的報酬。原因是過去買賣股票我都是只單買一~二支,如果有賺,我無法忍到二成以上,我害怕這一波漲完,就是它下跌段的開始,甚至是像台鳳那樣,只炒作股票不專心經營公司導致公司下市。

但是使用了指數化投資的概念後,當我買了股票,只是把它擺著也不會去賣它,畢竟如果有一家公司下跌甚至下市,我都還能接受,因為我的籃子裡還有其他股票。

也就是這種投資概念,我的股票從 5000 點反彈至今,一張都沒賣。而目前讓我賺最多的,則是某些投信口中有疑慮的公司: 新光金。雖然這 60% 的漲幅不過讓我賺了幾千元,而且加總了其他股票的報酬率(有正有負),整體報酬率並不算高,但這卻是一種令人感到輕鬆的投資方式。

= 後記 =
現在是 100% 的漲幅了。

2009年5月7日 星期四

FOClass: 債券殖利率曲線計算

前篇文章中,我們已可算出零息債券的殖利率,但如果要套用在實務上的應用中,我們必須將觀察到的各點作一迴歸函式,讓我們可以找到各天期的殖利率。

閱讀更多…

2009年5月5日 星期二

FOClass: 零息債券殖利率計算

市場上,我們能觀察到的公債交易標的多半都是附息債券,而此附息債券因為有息票收入的關係,所以無法視為即期利率。在本文中,我們將利用存續期間(Macaulay duration)調整法來消除息票影響。

存續期限最先由 Macaulay(1938) 提出。依 Macaulay duration 之定義,存續期限相同的債券,不論 Coupon rate 為何,不論是附息或零息債券,皆視為有著相同「有效」到期期限 (effective maturities) 或「真正」到期期限(true term to maturities)之債券。

也可將存續期限視為回收本金時間。

閱讀更多…


2009年5月2日 星期六

使用 PGP 來建立人際信任網

當我們可以使用自己生成的 PGP 公私錀來作加解密及簽章驗證的工作後,事實上,我們還能將 PGP 運用得更淋離盡致: 我們把整個人際關係展現在我們的公錀上。

當你把公錀四處發放的時候,實際上,你正在宣告這個世界,這把公錀可以代表你的身份,用這把公錀所加密的訊息只有你才看得到。而只要相信了「這把公錀就是對應著你的身份」這個關係後,也代表「這把公錀」所驗證成功的某個訊息,必定是由「你」所發佈的。

以上,就是 PGP 信任網的基礎: 一把公錀代表一個人。

所以,如果有一個 A 用他的私錀 Sa,為另一個 B 的公錀 Pb 作簽章而得到 Pb'(這也就是為什麼一把公錀生成後,會有變動發生的原因),那麼我們可以透過 Pa 來作 Pb' 的驗證,驗證成功後,我們將了解到 A 這個人完全為 B 的新公錀 Pb' 負責,因為 Pb' 是 A 所簽章過的。也就是,我們可以合理地相信 A 這個人一定認識 B 這個人,而且他也同意 Pb' 是屬於 B 這個人的公錀

所以,本來我們可能只認識 A ,相信 Pa 是 A 的代表,但是透過 Sa 對 Pb' 的簽章,我們間接地相信 Pb' 是 B 的代表,就算原本我們根本不曉得 B 是何許人也,就算 B 也沒告知我們他的公錀編號,但我們可以透過 A 來相信 Pb' 代表 B 了。

簡單地講,你可以使用個人私錀為「認識(信任)的人的公錀」作簽章 *1,簽章後,別人就會知道你一定認識這些人。

註1: PGP 信任網中,所謂的信任並不指的是一般的信任,並不是說你簽章了某個人的公錀,就表示你相信這個人是「好人」,這裡的信任,指的是你「確認」該公錀的確是這個人所擁有的。

這麼作的好處是什麼? 如果你想要寫一封信給歐巴馬(想當然耳,你一定不認識他),又希望你的內容只有他看得見且連他的幕僚也無法事先閱讀,那麼你就可以先下載他的公錀,用他的公錀來加密。但在加密前,得先確認他的公錀有沒有經過你認識的人作過簽章,如果有,則表示這把公錀的確是歐巴馬所擁有。

有沒有可能你不直接認識歐巴馬,但卻透過你的朋友的朋友來認識到歐巴馬呢? 因為他的公錀被 A 簽章過,而 A 的公錀又被 B 簽章過,而 B 的公錀又被 U 簽章過,最後湊巧你認識 U 這個人。這真的是有可能的,請參考六度分離理論 *2。

註2: 六度分離理論告訴我們,地球上的任二個人,他們之間只被 6 個人隔離,也就是你必定能透過某人的朋友去認識某人的朋友再去認識某人的朋友再去認識某人的朋友再去認識某人的朋友去認識某人的朋友來認識地球上的任何一個人。

了解了 PGP 這麼偉大的信任網概念,那麼該如何實現呢? 很簡單,你只要為你所認識的人的公錀所簽章,那麼就能協助體現 PGP 信任網了。

一樣來到「金錀管理程式」的介面。(不知道如何叫出嗎? 請參考如何使用 PGP (Linux/Mac/Windows 皆適用)來加解密及簽章驗證)



選擇一把欲簽章的公錀並按下[簽章],然後再按下[Sign this key]並選擇使用那一把私錀來簽章。完成後,你就會看到該公錀下出現你金錀的資訊,這代表已簽章成功。



** 在為某些公錀簽章時,可能會出現失敗訊息,原因可能是 FireGPG 尚未支援該公錀的額外資訊簽章,如:相片資訊(是的! 公錀也可以放相片。要看別人公錀中的相片請打 gpg --list-options show-photos --list-keys {XXX})。

所以這時候,可以使用命令列來作,如下指令:


# gpg --sign-key {XXX}

並回答它所提出的問題即可。{XXX}代該公錀編號。
**

接下來把該簽章後的公錀匯出至伺服器,並告知該公錀的擁有者:「你已經確認了這把公錀就是代表他這個人,請他可以更新自己的公錀」。

那如果是別人簽章了你的公錀後,請務必記得:「如果你認識這個人且確認他的公錀是那一把的情況下,絕對要用你的私錀去簽章他的公錀,因為這是禮貌」。當然啦, PGP 並沒有強迫你一定要這麼作,但如果你這麼作了, PGP 信任網會更完備。

在簽章他人公錀時,請務必記得:「這個簽章不是恩惠,是一種信任,唯有你認識的人才作簽章。不認識的人請不要簽章。」

除了用自己的私錀去簽章他人公錀外,我建議各位也可以利用 PGP 信任網的概念,為自己的私錀買保險。

什麼是買保險? 之前我提過,如果私錀搞丟了,是不是之前別人用它對應公錀所加密的內文,你完全就看不到了。沒錯,的確是完全看不到了。但是逝者已矣,來者可追,你還是得繼續用 PGP 來過你未來的生活呀! 但是如果你原本的公錀已經有 200 個人為它作過簽章了,那麼你的新公錀難道要重新再去找這些人作一次簽章嗎? 是的,你必須再麻煩當初的 200 個人為你重新再簽章一次。但那些人如何確認你的新公錀的確可以代表你呢! 你勢必得再經歷 200 次由第三方管道(面對面確認、電話確認等非網路形式的確認)提供公錀編號讓對方知道你的新公錀的確代表你的動作,嘩! 這會累死人。

所以,我建議各位多生幾把金錀,並彼此互相簽章,如下圖:



amornose@gmail.com 這把金錀已被 hoamon@hoamon.info, hoamon@gmail.com ... 等金錀給簽章過了。所以如果我的主要使用金錀 HOamon@hoAmon.iNfo 不小心搞丟了,那麼我就用 AmOnroSe@Gmail.Com 的信箱寄信給那 200 個人,並告知我的公錀必須更換為 AmoNrosE@GmaiL.com 了,因為早在之前 amoONrose@gmail.com 已被 hoamon@hoamon.info 所確認過了,所以,那 200 個人可以很容易地相信我這個人已把 hoamon@hoamon.info 公錀更換成 amonrose@gmail.com 了。這就是買保險的意思。

最後,再提醒各位一次,私錀搞丟了,的確是很麻煩的一件事,請慎重保管呀!

「股酬交換」運用在具法規限制的市場中

這則新聞當中,激發我對於「利率交換」的額外應用,只不過在查了「碩博網」後,才發現這東西早有人在作研究了,那就是「股酬交換」。

近日,我國政府在研擬開放中資購買台灣股票,其主要原則在於不允許中資握有上市公司的經營權以及從中獲得技術能力,只允許中資在購買台灣股票後,能享有企業成長後的獲利。而次要原則是開放中資合法進入台灣後,不會造成匯率市場及股票市場的暴起暴落。

因此,我認為在此二原則下,積極建立「股酬交換」初級及次級市場可達到間接開放中資(或其他外資)購買台灣股票。因為股酬交換不需作名目本金的交換,這減少了熱錢的流進流出,另外,股酬交換不牽扯股票所有權的移轉,這有助保護上市公司的經營權,這樣完全滿足政府開放中資購買台股的原則,實在是一項非常好的金融商品呀!

那什麼是「股酬交換」,簡單地說(真的是很簡單喔!詳細請自行查閱 G 大師),「股酬交換合約」的內容主要是明定一名目本金、二個計價標準及多個計價時點的法律契約。合約的其中一方是以特定時期 LIBOR 利率為計價標準,另一方則是以某股票或某股票組合的價格為計價標準,在固定或不固定的計價時點上,分別計算雙方的得失,如果股票收益差價大於 LIBOR 利率收益則使用 LIBOR 利率的一方要付差價給對方,反之亦然。

例如:一個名目本金為 1 億、計價時點為 1 年並維持總共 10 期的合約,一方以 LIBOR 3% 利率為計價標準,一方以 1 億可買下 50 元台積電股數為標準。若在第一期計價時點上,台積電股息+股票差價總共多了 250 萬,則此收益減去 300 萬(1 億*0.03),則表示在第一期時間點上,使用 LIBOR 3% 為計價標準的一方可收到另一方的 50 萬元。

所以在使用「股酬交換」合約後,匯率市場不會有 2060 萬人民幣(約 1 億新台幣)的匯入匯出,只會有 10萬3 人民幣(約 50 萬元新台幣)的匯入,這大幅減少匯率的波動; 也因為中資買的不過是一個交換合約,所以台積電的股權依舊是掌握在某個台灣券商的手上。

這實在是個好東西呀!

如何使用 PGP (Linux/Mac/Windows 皆適用)來加解密及簽章驗證

最簡單的方式就是安裝 GnuPG, Firefox, FireGPG但為什麼要用 PGP 呢?

GnuPG: 是作業系統上的應用程式,其功能是以 PGP 公私錀作文章或檔案的加解密及簽章之用。其操作介面為命令列模式。
FireGPG: 是 Firefox 的外掛套件,它的功能是提供操作 GnuPG 程式的圖形介面。
Firefox: 不用說了吧! 現在還有人不知道 Firefox 是幹什麼的嗎?

上面程式都安裝好後,請打開 Firefox > 工具列 > 工具 > FireGPG > 金錀管理程式,如下圖:



我已經有一些金錀(有些是公錀,有些是私錀,但一律顯示公錀編號)了,綠色框是名稱及註釋、黑色框是 email 、黃色框是金錀編號、紅色框是信任程度。

如果是自己產生的金錀,則同時擁有公私錀,如果是別人給的金錀,則只有公錀。我們都是拿公錀來加密,然後用私錀來解密的,或是用私錀來簽章,再用公錀來驗證。

如果你還沒有金錀,請按下[New Key],然後填寫
  1. Name(最好是別人認得出你的名字)
  2. Email(必須吻合你使用的email,否則使用你公錀的人會誤會這把公錀的真實使用者是誰?)
  3. 註釋(可簡單說明你是誰)
  4. 密碼(這是用來鎖住私錀的,以防止你的私錀不小心落入別人手上,如果沒有這個密碼,別人也無法拿這把私錀來作解密的動作。同樣地,如果你忘了這個密碼,那麼你的公錀也就無用,且過去別人用該公錀加密的內容,你也解不開了,請慎重。)
  5. 建議點選金錀永遠不失效(Never Expire)。
再來就是按下[產生金錀]了。請耐心等候一段時間。並在此時胡亂開啟你的程式,亂打一些指令或文句,讓這把金錀不致於與別人的金錀重複。

成功產生後,要測試加解密的功能,可打開 Firefox > 工具列 > 工具 > FireGPG > 文字編輯器。

請在文字編輯器中,鍵入文句,完成後請點選加密,此時會詢問你用那把公錀,可以 Ctrl 鍵作複選,完成後,該文句就會變成一堆奇怪的亂碼,此亂碼只有你當初選定的那些公錀所對應的私錀才能作解密的動作。

再按下解密鈕, FireGPG 即會找尋該密文所對應的私錀作解密,如果你的私錀當初有設定密碼,此時,會先詢問你密碼為何! 正確鍵入後,它即為你解密。

接下來,測試作簽章及驗證,一樣打開 Firefox > 工具列 > 工具 > FireGPG > 文字編輯器。

請在文字編輯器中,鍵入文句,完成後請點選簽章,此時會詢問你用那把私錀(只能選定一把),完成後,該文句後面會出現一段奇怪的驗證碼,此驗證碼只有你當初選定私錀所對應的公錀才能作驗證的動作。

再按下驗證鈕, FireGPG 即會找尋該驗證碼所對應的公錀作驗證,驗證成功後,會顯示私錀的公開資訊(名稱、註釋、email、公錀編號)及簽章時間。

上面的工作都可正確使用後,接下來,就是把公錀傳給其他人。有二種方式,一種是[匯出至檔案],一種是[匯出至伺服器]。

匯出至檔案後,你可以透過第三方管道(像是隨身碟、email、放在blog 上)把公錀傳遞給其他人,這樣別人在收到公錀後檢查它的 fingerprint 或是公錀編號是否與你真實公錀相同,相同時就可確定這把公錀的確是你所屬的。但此法的缺點是不容易更新公錀內容(什麼,公錀不是一開始產生後,就一直用下去嗎? 為什麼會有變動。欲知詳請,請待下篇分解)。

另一種方式[匯出至伺服器],則是把公錀上傳至某一伺服器( FireGPG 的預設值是 subkeys.pgp.net ),然後跟其他人告知你的公錀編號及 fingerprint ,讓其他人到 subkeys.pgp.net 去下載。此法在使用上比較便利,省去了自行傳檔的功夫,一律要求其他人到公錀伺服器上抓取。

當你把公錀上傳至伺服器後,你就要廣為宣傳你的公錀編號、email,慎重一點的,還可以註明 fingerprint 。像我的處理方式就是放在 http://hoamon.blogspot.com/http://www.hoamon.info/#AboutMe 中,以及我在實體名片及信件簽名檔上都放了公錀編號、 email 及 fingerprint 。方便其他人比對公錀的真實性。但請注意一點,如果你是用網路形式來比對公錀編號的話,它會有一定程度的不可信,因為你不知道你的閘道器管理員有沒有動過手腳,最好的確認方式是與公錀主人面對面比對 *1,再次之是電話比對(已經有風險了),其他方法的風險就更高了。

註1: 如果你看過天龍特攻隊的話,或許你就會知道「面對面比對」也是有風險的,因為你不知道對方是不是「小白」。

當大家都擁有你的公錀時,就能寄送加密文本給你,如此一來,絕對可以保證,發文者與收文者之間沒有人可以破解此一加密文本。

不過,以上兩種匯出方法,所匯出的都只是公錀,如果想要匯出私錀來作備份的話,就必須打指令了,記得公錀不用作備份,它是可以從私錀中產生的。但其實也非常簡單,指令如下(Windows 用戶請到你的 GnuPG 安裝位置中打該指令):

# gpg -a --export-secret-keys {XXX} > private_key.txt

{XXX} 可以是 email 位置,也可以是公錀編號。匯出後,私錀內容就存在 private_key.txt 中。請慎重保管此檔。

又如果你想要把某個檔案作加密,也是得使用命令列來達到,如下(可用多把公錀加密):

# gpg -r {XXX} -r {YYY} -e {some_filename_you_want_to_encrypt}

解密則直接下

# gpg -d {some_fileame} > new_filename

千萬不要相信任何一個網頁系統(包含 Google),除非你用了公私錀(如 PGP)加密

當我們在作業系統(尤其是 Linux)中使用 Open Source 軟體時,我們有一定的信心認為程式作者不會呼隆我們。因為只要有心,我們看得到程式碼。

但對於任何一個網頁系統而言,基本上,你必須將它們都視為壞人,它們絕對拿得到你所上傳的資料,包含密碼 *1。就算它標榜著 Open Source 出品,也不能保證它放置網頁伺服器上的程式碼與 Open Source 版本是一模一樣的。

事實上,在使用網頁系統時,請保持著一種信念:「若要人不知,除非己莫為」。放到網站上的資料,除了你,別人(閘道器管理員、系統管理員、程式設計師甚至是客服小妹)絕對有辦法打開看,除非你使用公錀加密內文。這一點,就連 Google 網站也不例外。

所以,當我看到無名網站上提供一種「密碼保護文章/相簿」的功能時,我覺得很好笑,看看它在 html form 上所設計的方式,完全是以明碼形式將密碼傳至沒有 https 的網址,這樣何謂「密碼保護」! 無名站上工程師絕對有能力看得到你所保護的內文以及密碼。甚至有可能那些性愛相簿外流的原因中,有部份就是離職員工搞的鬼,但是誰知道呢? 當你用明文形式傳遞密碼時,理論上,它就不叫「密碼」了,當你用明文形式上傳文章或相片時,它們也不會是「有保護」的。

要真正上傳儲存「有保護」的內容,以目前技術來說,最簡單的就是 PGP 加密了。像是下面的密文,你看得出我寫的是什麼了嗎? 雖然,我大方地 po 在 blogger 上,但沒有私錀的人就是看不到。

-----BEGIN PGP MESSAGE-----
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Use GnuPG with Firefox : http://getfiregpg.org (Version: 0.7.5)

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
ZvAf4PfWSCxGoarWUY+BGaGXCNUNifob+g==
=8e3M
-----END PGP MESSAGE-----

上面的密文,我用了三把公錀作加密,理論上,只有我、我老婆及 django-pgpauth 的私錀能解開。如果各位有興趣的話,我把 django-pgpauth 的私錀(我並未設定密碼)就放在 comment 中,請自取用。

如果你真的覺得要放在網站上的資料是需要隱私的,請不要相信該站所提供的密碼保護功能,用自己的比較安心。

至於如何使用 PGP (Linux/Mac/Windows 皆適用)來加解密及簽章驗證,請參考此篇

註1: 除非它們在認證網頁上,先用 One-Way Function(如: md5, sha-1) 先將明文密碼轉換過。
Related Posts Plugin for WordPress, Blogger...