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年3月30日 星期一

三秒膠塗傷口!

http://www.nownews.com/2009/03/30/341-2429631.htm

投手教練居然能允許這種事發生,中華職棒還是不要打好了。只是要贏一場例行賽,賭這麼大。果然是薪資低就沒好策略,人(年薪約200萬)用爛了反正也不會損失多少錢嘛。

又開始猶豫今年要看到 10 場例行賽嗎?還是期待中華職棒早點倒,讓我們的球員到國外去找工作會不會更好些?

支持球員工會也支持自由球員制。

2009年3月27日 星期五

如何在收信人不知情下,讓寄件人得知信件是否已開啟?

基本上,這問題的目的已經接近怪客行為了。因為你讓電腦使用者在不知情的情況下,傳遞某些訊息。

不過,因為問這問題的人不是為了收集 Email 位置,而是要確定收信人是否'''誤報'''信件接收狀態(也就是明明有收到,卻假裝沒收到來逃避作事)。所以,我提供一個廣為周知的方法來點醒他一下。

方法是'''利用圖檔'''。大家在使用 Gmail 時,有沒有發現為什麼某些信件格式是 html 且內含圖檔的信件都會被 Gmail 隱藏圖檔呢? 然後再提供一個顯示圖檔的連結, Gmail 何必脫褲子放屁,多此一舉讓使用者麻煩呢? 因為它是全球第一的 mail 服務商,別小看這個動作了。

因為圖檔是必須再連到某個伺服器來觀看的,所以如果這圖檔的 src 是 "http://some.where.from.you/?user_id=234455&mail_id=45" ,則 http 伺服器勢必得到外部使用者的一個連線需求,且這連線還傳入了兩個變數:某個使用者及某封信件編號,如此一來,寄信者不就得到了收信者在瀏覽信件時所發出的連線需求。這樣就能確定收信者的確有收到此信。

但問題是,這個簡單的刺探動作早就被許多 webmail 或是 mail client 軟體給阻斷了。那又有什麼用呢? 是的,我們只能相信人類,人多是愚蠢的,所以如果你在信中放的是某些有趣/養眼的圖檔,誘惑他自己按下顯示圖檔的按紐,那他就中招了。

2009年3月16日 星期一

老手無法交(教)給新手的技能:主動地學、主動地思

學而不思則罔,思而不學則怠。這是提醒我作學問、寫程式、工作的行動準則,思學相伴,方以為長,而這學與思都是需要主動的,如果總是要別人要求你「學」、要求你「思」,也就無用了。

對新手而言,「要學什麼」、「要思什麼」是可以由老手作「提示」的,但「要不要思」、「要不要學」那就是新手自己的決擇,沒人幫得上忙。而新手蛻變為老手的重要契機就是「主動地學、主動地思」,當想通了這件事,新手總會變成老手的。

所以如果我已提點,但還是不能照著提問的智慧向我發問,或念完我要求的基礎知識,我對他的態度不太會是和顏悅色的。有時候,我覺得這些新手是被人慣壞了,那些慣壞他們的人都是有求必應的,卻以為完全的幫忙是對新手有益的,其實那不過是給條魚而已,而我想給的是「如何釣魚」!

行文至此,想給各位看看一篇好文:「態度」。該文作者說話常不留情面,但我想他的學識是夠的,值得聽他一席話。

所以當新手抱怨:「你為什麼不友善一點; 要講答案為什麼不一次講完,為什麼那麼小氣; 我無法完成這個程式都是因為你的態度。」當下我真的無言。

不過,我想新手如果不靠這學問吃飯,要學不學、要思不思都可以,但如果他得靠這過活,我想他應該改變自己的決擇。畢竟認知這些東西後的收獲不是我的,而是新手個人擁有。

設定 screen


UN*X 的使用者多半會是 screen 的愛好者,而我也不例外。

一個設定良好的 screen 是非常令人賞心悅目的。不過,我之前一直想要在不同的 window 上秀出它當下的資料夾位置,卻找不到如何設定 screen 的方法。

今天讓我發現原來可以在 .bashrc 中設定。只不過,在設定後,一直有一個小小的困惱,它會在 shell 提示符號前多輸出 134134 的字串。

以下是我的 .screenrc
startup_message off
hardstatus alwayslastline \
" %-Lw%{= BW}%n%f %{-}%+Lw %=| @%H %{-} %= %{= KR} %l %{-}%{= KG} %y-%m-%d %{-}%0c:%s"
maxwin 10


.bashrc
case $TERM in
xterm*|rxvt*)
PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME}: ${PWD/$HOME/~}\007"'
;;
screen*)
#若刪除 \134 ,則 screen window 就不會出現資料夾位置
#但保留 \134 ,則 shell 提示符號會多出現 134134 的字串
PROMPT_COMMAND='echo -ne "\033k\033\134\033k${PWD##/*/}\033\134"'
;;
*)
;;
esac

2009年3月14日 星期六

Google 在不久的將來會推出 Google Voice

相關新聞請見: http://www.zdnet.com.tw/news/web/0,2000085679,20136833,00.htmhttp://www.ithome.com.tw/itadm/article.php?c=53945http://tech.chinatimes.com/2007Cti/2007Cti-News/Inc/2007cti-news-Tech-inc/Tech-Content/0,4703,130509+132009031301011,00.html

這個服務其中有一個非常重要的功能:「語言轉文字」。為什麼 Google Voice 為推出這個功能呢! 除了它實際對用戶是有幫助的外,它最大的一個目的是把不容易分析的語言轉成容易儲存及解析的文字後,方便作資料挖掘(Data Mining)。那 Google 要對這東西作 Data Mining 是要幹什麼? 請看我之前所寫的「給 google 的建議(構想篇)」。

當 Google 提供的服務愈來愈多,你會不會害怕自己的隱私權愈來愈小呢? 別害怕,這世界上,有一個叫 PGP 的玩意,有空了解一下吧!
Link

2009年3月13日 星期五

「投資銀行」這名字用得真好!

以前就覺得在摩根史坦利、高盛這些投資銀行工作的人好像很厲害,沒想到今天一查 wikipedia:投資銀行 ,才知道原來投資銀行在台灣就叫證券公司,頓時差了一截。

不過,時至今日,美國傳統五大投資銀行(貝爾斯登、雷曼兄弟、美林、高盛與摩根士丹利)全部已轉型或被收購了。

2009年3月11日 星期三

螞蟻與蚱蜢

大家小時候應該都聽過「螞蟻與蚱蜢」的故事,面對蚱蜢的好逸惡勞,應該沒有人會認為他值得在寒冷的冬天活下去吧!

不過,換成是人的故事,就有點難以選擇了。請看這一則新聞:「美國失業風暴,失業族租衣櫥當家」。

麥克戴爾在「DELL的秘密」一書中提到,他的高中老師會教導他們如何報稅,讓我覺得我們的高中課程實在是太糟糕了。對美國人而言,大部份人在唸完高中後,就會面對職場的挑戰,所以這個時候,是非常適合讓高中生了解人民的義務該如何作到。反觀國內,在我所受教育的地方(國中、高中、大學、研究所),除了喊喊口號:「受國民教育、服兵役、納稅是人民應盡的義務。」沒有一個可以讓我上到如何繳稅給中華民國的課程,要學會這個,得自己找東西看。

繳稅也不難,對我來說自己看絕對沒問題,不過,在國高中教育中,提「繳稅」,它的意義不是讓學生學會如何拿錢給國家,而是體認到,只要活著,你就必須拿出一部份的錢給國家,不管你是窮是富,所以在賺 100 塊錢的時候,要記得留下 6 塊錢等著繳稅。

事實上,我覺得除了納稅課程,在義務教育中,也應該融入理財課程,教導學生與錢相關的知識。之前的「雙卡風暴」及「連動債問題」就是凸顯了「窮人不懂理財,富人不懂投資」的情形。

所以,在這一波全球金融風暴期間,任何螞蟻逢低買下其他蚱蜢的資產本應該是美事一件,但總有人不甘心而讓這場慶典失焦。

我只能說別以為「出蠻力工作」就會是一隻螞蟻,如果不學習複利概念、資產/負債比、現金流等金錢觀念,其實你也快要是隻蚱蜢了,因為現在是知識經濟時代,不是工業時代。

2009年3月7日 星期六

「政治文」 - 劉揆說:「真正的母語教學,應該在家庭裡面學,我們不要把大人的想法加諸在小孩子,讓他們的未來其實反而是減少他們的競爭力。」

X你X累(這句話就是在學校學的),就衝著劉揆這句話,我覺得馬英九選閣揆沒選錯。

請看相關新聞: http://www.nownews.com/2009/03/07/301-2418623.htmhttp://www.rti.org.tw/News/NewsContentHome.aspx?t=1&NewsID=146482

我一直認為學校推行母語教育是一件相當不對的事。文化、習俗、語言是眾人約定俗成、一代傳一代的東西,如果你的上一代根本不會用筷子吃飯、用台語聊天、出門坐轎子,那為什麼我們這一代就得在學校多學一樣在家裡用不到的東西。

母語教育既然叫母語,那就應該是媽媽來教才對,為什麼要鄉土文化老師來教呢? 因為母語也有口音之別,像我們家講「粥」時是發「ㄇㄜˊ(這個注音拼音有點不準確)」,為什麼要學別人講「梅」? 況且,在小學上母語課,你認為是什麼族就上什麼母語課嗎? 你錯了,那還是要看學生數是否有沒有超過可請特定母語教師的人數,才會開課的。如果一個父母都是排灣族的小朋友,但卻在客家人居多的班級上課,你認為他上的會是「母語」嗎? 那當然是別人的母語。

如果政府將母語教育改列在社會教育當中,且是被動推廣,我則是舉雙手贊成。讓喜愛/想要學習母語的人,可以從圖書館,地方協會…等處,選擇自己應該學會的母語,進一步傳承文化。這當然沒問題。

事實上,我認為過於主動強調「母語教育」是對族群和諧有傷害的。本來,中華民國就只有一種官方語言,大家好好地用「官方語言*1」是沒事的,但是一強調母語之後,就容易分族群了,閩南人講客家話的機率不多吧! 所以,只要刻意用母語溝通一下,很容易發現對方是不是「我之族類」,如果是則感情好,如果不是則可能另眼相待。這樣不是對中華民國憲法第七條:「中華民國人民,無分男女,宗教,種族,階級,黨派,在法律上一律平等。」有所抵觸。你看看,許多時候,某些立委就會拿著會不會講台語來考驗政府官員愛不愛台灣,這不是一種變相種族歧視嗎?

PS 其實我也不是很喜歡馬總統在我國的正式場合中秀他的好英文,能使用官方語言,這也是一種國族自信,不是嗎?

註1 因為這篇文章,所以我把文章中的「國語」改成官方語言。目前我們的官方語言可能不算最好的語言,不過,也只能湊合著用,或許將來,我們可以把閩、客、十三族語全列入官方語言當中,到時候,大家講話就更沒有障礙了,因為從小你就學會了 14 種語言。

「魔球」與「股價預測」的關係?

花了半天把「魔球」看完。沒有想像中的好看,原本以為會從這本書得到相當多球團經營的技巧或是觀念,但其實很簡單,這本書所講的就是「尊重球員的歷史數據」就行了。

人們很容易記住在四場總冠軍賽中拿下三場敗投的投手,但卻不容易記住他的被上壘率、四死球率。所以在評估選手時,往往落入個人偏好的陷阱。再加上個人偏好容易從眾,所以你喜歡的球員也往往是他人喜歡的球員,如此一來,簽約成本勢必墊高。

如果一切回歸數據,那可以保證它的結果絕對客觀,不過,歷史數據能反應當下表現嗎? 驗證方法很簡單,我們在 2008 年時,回頭檢視 2000 年的數據並預測 2001 、 2002 年的表現並與真正的 2001 、 2002 年比賽情形對照,結果得到非常好的預測成果,由此推斷,只要使用正確的統計指標,那麼球隊的整季表現的的確確是可以預測出來的。

從歷史數據預測未來事件的方法,除了在球賽勝負上適用外,有沒有可能可以在股票價格上運用呢? 我開門見山地說:「沒有」。為什麼? 明明棒球比賽的預測就滿準的呀! 其原因有五個:環境變數少且變異小、決定性的突發事件少、自變數本身不受預測結果影響、數據容易量化、中央極限定理。

環境變數少且變異小


因為棒球比賽是有既定框架套住的,一個球季只有 162 場比場、對手差不多都是那幾個、投手丘到本壘板是 18.44 公尺, 所以 2000 年的環境約與 2001 年、 2002 年相同。而股票價格所面臨的環境往往差異很大,如最近的全球金融風暴,前年及大前年就沒發生這種事。而房貸衍生商品所造成的嚴重虧損也會影響汔車銷售,這與棒球比賽不同,金融風暴會影響球團收入,卻不會影響王建民的投球表現。另外,市場內的公司來來去去,競爭對手是會變動的。

決定性的突發事件少


對棒球比賽來說,較常發生的決定性突發事件(只影響單方,像下雨是兩方都影響的)是球員意外受傷,這裡指的不是郭泓志的手傷,而是像王建民的腳傷,因為郭泓志的傷不是突然發生,早在進美職時就有了,所以它已間接納入歷史數據的統計中,但王建民的腳傷卻是突然地讓他無法為洋基製造出局數進而影響洋基整體表現。所以說,棒球比賽突發事件少,不若股票市場大,實在是有太多決定性的突發事件發生在市場當中了,像是 911 、 921 、 331 、奈及利亞叛軍佔領油田,甚至對單一個股而言,某些人為炒作、掏空是你根本想都沒想過的。

自變數本身不受預測結果影響


胡金龍的長打率、上壘率不會因道奇的勝場數而有所影響。但大家預測巨大機械股價會上漲,卻會影響它的股價。

數據容易量化


像我們已經知道上壘率對球隊是很有影響的,而在比賽中,我們也絕對可以計算出歷史比賽的球員上壘率來比較。但在股票價格中,就算我們已知道董事長品德對公司營運有極大的影響,但我們卻無法測量他的品德率有多高,又或者經營團隊的 IQ 、 EQ 、 XQ 都很重要,但你,一個平凡的股民卻拿不到,就算拿到了,你也不知道該公司對手的 IQ 、 EQ 、 XQ 是多少,甚或,大部份公司的對手是誰都還是不明確的。


中央極限定理


一個球隊的單季勝場數是由其下的 25 位球員的各項數據而來的,因為樣本數接近 30 ,所以由這些數據所合成的結果應符合中央極限定理並呈一鐘形常態分佈,所以預測結果會滿準的。然而單一公司的股價若是由去年營利率、營業額…所預測的,因為只有自己的數據,樣本數過少,那誤差就會比較大。但若是將多個公司組合起來預測,變成像是指數之類的東西的話,那準確率應可提昇。不過,就算預測指數比預測個股準,但它們還是受前四個因素影響是不會太準的。

所以,還是認真看棒球,賭運彩(不過就算猜得中,還是會輸給賠率的),而股票就隨便看,用指數化投資就好了。

2009年3月4日 星期三

return HttpResponseRedirect with Post Data?

This is an example to solve the question from Django User Group

In the specification of http status code 302, there are no way to pass a post data to user's browser. But we can use AJAX method to reach this requirement. The principle is using the AJAX request to do some thing must run in the server and return a json data to browser, then the callback function that defined in the html will shape a html form and submit this form.

def readReturnHttpRedirectWithPost(R):
if R.GET.get('var', None):
# do something what you want
return HttpResponse(json.write({'action': 'https://your.web.sitek/', 'vars': {'var1': 'var1', 'var2': 'var2'}}))
html = """
    <html><head><script type="text/javascript" src="/media/jquery.ui-1.5.1/jquery-1.2.6.js"></script></head>
        <body>
          <ul><li><input type="text" id="var"></li>
              <li><input type="submit" id="updateFormWithPost"></li></ul>
          <form id="post_form" method="POST"></form>
          <script>
            $(document).ready(function(){
                $('#updateFormWithPost').click(function(){
                    var value = $('#var').val();
                    $.getJSON('/u/readreturnhttpredirectwithpost/', {'var': value}, function(json){
                        var $post_form = $('#post_form');
                        $post_form.attr('action', json['action']);
                        for (var i in json['vars']){
                            var $input = $('<input type="hidden" name="'+i+'" value="'+json['vars'][i]+'">');
                            $post_form.append($input);
                        }
                        $post_form.submit();
                    });
                });
            });
          </script>
        </body>
    </html>"""
return HttpResponse(html)

2009年3月3日 星期二

from subversion to mercurial

It's enough for me to test/learn/use mercurial, i decide to convert my old subversion repositories now.

To convert subversion repository, you need the '''python-svn''', '''python-subversion''' plugins in the Ubuntu.

Then you should check the working subversion repository has no need to type username/password at the status of '''svn update''', or you will get the '''XXX does not look like a Subversion repo''' message from '''hg convert'''.

When you are ready, just type '''hg convert -s svn your_svn_repo_dir''', and you can get a dir named '''your_svn_repo_dir-hg'''.

Congratulation! It's a peice of cake.

為什麼我用 Netbeans + jvi 作網頁程式開發平台

這都怪 NetBeansMercurial 整合的太好了。

原本我都是用 Gvim 來寫 Web-base 程式的,事實上,我的 Gvim 也調校的不錯,有 File Tab 、 Class/Function Navigator 、 Tab Complete ,而重要的是它還有 1G, G, yy, dd, cw, <ctrl>+f, <ctrl>+b, H, M, L...等。

不過,當我要比對修改後的程式時,單純只用 hg diff|colordiff|less 就顯得有點薄弱了。

而這時,我發現 NetBeans 編輯器可以整合 vi key-binding ,天呀! 這是多麼棒的一件事,之前我在試用 Eclipse 時,就覺得它的 vi key-binding 效果不是很好用,而且還要花錢買,讓我打消了轉換平台的欲望,但這個 NetBeans + vi 的功能就實實在在地滿足了我的需求。







更棒的是, NetBeans 整合版本控制的功能比 Eclipse 好。在 Eclipse 中,所謂的版本控制只不過是把我在 shell 裡用的指令,放進它的 menu 中而已。但 NetBeans 卻可以讓你在 Editor 中,實際看到程式差異並選擇回復。而在設定方面, Eclipse 的 menu/option/perspective 實在太多了, 常常讓我搞不懂,這玩意到底要到那去找。

令人驚奇的是 NetBeans 還結合了 jdbc 的功能讓我可以把它當作是 Mysql/PostgreSQL 客戶端介面使用。這也一併讓我省了設定 phpMyAdmin 的功夫。 NetBeans 真的作到了 One Stop Shopping 。

在安裝上, NetBeans 6.5 也比 Eclipse 3.X 來得簡單, Python, Mercurial 它已內建,我只去了 http://jvi.sourceforge.net/ 下載 vi plugin 。況且,之前我在安裝 Eclipse 時,有些機器會遇到裝不起來的情況,這也讓我頭痛呀~ 害我先將安裝成功好的 Eclise 打包起來,然後看誰需要,就整個給他。

只是使用 NetBeans 我得付出一個代價, NetBeans Editor 的反應略比 Gvim 慢一點,雖不致造成我的困惱,但就是感覺得到(誤,已補正)。我想這也是沒辦法地,因為 NetBeans/Eclipse 之類的 IDE 平台還得即時看你輸入的單字去找它相關的說明,以及檢驗文法是否錯誤。
Related Posts Plugin for WordPress, Blogger...