2016年5月29日 星期日

Arduino 的 Starter-Kit Project

Arduino 的 Starter-Kit Project,跟著試做已經進行到第5個教學例子。自從跟身邊朋友講起之後,原來也有些朋友有玩過Arduino,有學過電子的同事,學電腦設計的舊同學,點子活動中的新相識,都對這個有點認識。只是大概網上資源香港還是不多,主要仍然是台灣人架的網站,書店和圖書館也有少數台灣書可以找到。而香港除了我入手的RS Components外,還有深水埗黃金對面的福仁商場G37-Tell How Technology有賣。有一個叫Dim Sum Lab 的空間可以讓香港的同好交流,有點像Maker Bay的形式,但是不同的主題。

Arduino 是一塊電路板和編程語言的整合。但它卻讓很多沒有任何電工或編程經驗的人也可以開始動手做電子硬體的控制。它也是作為一個開源項目,讓社群的人可以在它的基礎上改善和發展,出現後推動了一股稱為自做者/創客的文化。它在電路上整合了微控制器(例如Arduino Uno上的ATmega328P),輸入輸出介面(各種Pin位、USB接口);當結合各種電子元件(如開關、感測器、LED、步進馬達),和配合Arduino語言(類似C)的程式開發環境,便可以嘗試自做一些電子機器。而特別令我感興趣的,是它讓自己可以連繫起軟體和硬體。看到網上的高手可以自行開發出很酷的東西:

<駭客只要用這個USB充電器,就可以竊取你的無線鍵盤輸入資料>
http://www.techbang.com/posts/21946

<將Arduino 變成Game Boy,還可自行設計遊戲的Arduboy>
http://www.techbang.com/posts/23764

<什麼樣的工程師能上太空?13 歲少年玩 Arduino,玩到被送上太空!>
http://buzzorange.com/techorange/2013/10/14/thirteen-year-olds-hack-their-way-into-space/

<簡易Arduino機器人製作>
http://www.makezine.com.tw/make2599131456/arduino13

說它是開源項目因為當初開發團隊的決定是開放這個項目的設計,只有Arduino這個名稱、標誌以及圖案是受保護的商標(不過,現在有關於 arduino.cc和 arduino.org的分別)。硬件的電子連接都是在創意共享Creative Common Attribution Share-Alike 授權條款去公開原設計文件,可以讓人模仿、以至修改成自己所需的底板或相容系統,他們的網頁上就有教如何自製一塊Arduino。就不同的需要,它們自家開發的就有初學者入手的Arduino UNO、細小便攜的Arduino Mini、可穿戴和縫紉在衣服上的LilyPad Arduino、有WIFI和增強了運算能力Arduino Yun等,其他人仕自行開發的有Intel Galileo, Webduino, 等。Arduino的社群中,在底板以上還有著不同的擴充板(Shield)可以擴充它的功能,如Motor Shield、Ethernet Shield等。而程式方面,用家可以在提供的IDE介面自行編寫控制程式(Sketch),而且還有各種的函式庫可以引用或自建。

2016年5月21日 星期六

Edx - TW3421x Credit Risk Management

Edx 上看到一個Credit Risk Management的課堂,報了打算讓自己溫習一下從前上課所學。最近這快要完成了,來總結這課堂所學的內容。

這課堂由Delft University of Technology的Dr. Pasquale Cirillo 講授。說話速度像是刻意放慢了,講解不會沉悶之餘,初時還有用RSA動畫的方式去解釋事情之間關係。內容方面,沒有涉及複雜的數學證明,某些公式出現時就重申:推導過程不在課程以內,然後直接使用。這令課程變得簡單之餘,也清晰了這是集中在讓初學者理解概念。
The computation of WCDR is performed using the formula you see on your screen. I do agree with you if you think that this formula has somehow fallen from the sky.
That's true: in this course this formula has fallen from the sky. The point is that, in order to derive this formula completely and formally, we would need - all - a big probabilistic apparatus that we do not have, such as for example the copula model. So, that's it: just take this formula for granted.

課程把信用風險放在從巴塞爾協定中開始講起。巴塞爾協定是對銀行業的其中一項重要條約。從巴塞爾協定二起,基本定立出三條支柱。
1) Minimum Capital Requirement (Credit Risk, Market Risk, Operational Risk)
2) Supervisory Review Process
3) Market Discipline

更仔細的在:http://www.bis.org/bcbs/basel3/b3summarytable.pdf

2016年5月8日 星期日

生活雙週 - 空手道, 魚仔板, Udemy, Arduino

這兩星期為之後的日子突然又下了幾個決定/行動。
同事推介一起上柔術的課,正正讓我面對一直在意的一個主意:重新空手道的練習。自從某天在地鐵上遇到大昭師兄後,大概都有了回去的決心。今晚剛剛回去了空手道的練習,身體和技術都未有怎樣生疏;征遠鎮和拔塞大的動作練幾次也記得了;但只有之前也記不上的那些套拳分解,仍是忘了大半。早兩年一直有為自己定下一些目標,但大概受著擔心和討厭今年就算定下了,也未會實踐這個目標,而一直未為今年打算。但現在開始了,這就好了。想做又應該做的事,不應該因為害怕令自己停步,「怯,你就輸成世」。

在Skatecity買了塊平價的Street牌魚仔板,晚上到吐露港沿單車徑旁的行人路試踩。記得是焜哥和店員所講的都是踩著前面釘位,不過第一晚試踩並不容易,人的重心和滑板的移動總是不配合。學習時未想在單車路上,行人路是紅磚式的地面,隙縫的阻力也很大,不斷只有幾步幾步距離地移動。到有個位置是旁邊有休憩處的,那地面就沒那麼粗糙,合適得多,試過這段路後,沿行人路回去時也順了點,後腳也放到板上。之後放在家時找些YouTube上的penny教學,記得幾段基本滑行、轉彎、Tictap。前晚就去了另一個公園的緩跑徑練習,慢慢繞過一圈後就感覺開始掌握到平衝感。然後繞了幾圈到凌晨才回家。今早到附近「觀星台」的空地練習,算每一次嘗試上板/滑前/轉彎(右)都可以了。

PMP 的 35 contact hours, 終於在Udemy 找到平價之選,LearnSmart LLC的Project Management Professional,只要 USD$20。標榜是PMI的Registered Education Provider (R.E.P.),完成課程後的證書可以作為報PMP考試要求的35 Contact hour 。 影片的講解尚算有條理及清晰,還可以在手機App下載起來,然後在上下班時去看,暫時完成了13%的進度。因為自己上年在考慮的時候己經把圖書館借來的書看完一次,不是只靠它的影片開始從零學習,所以只算是在用來覆習和要知道PMBOK5更新的部分。如果要備試的話我覺得更重要的還是做練習,現在尚未看它的習題,下載起首幾課的補充資源中就都有包括crossword puzzle/ flash card / quiz 等等,大概都是之後自學都會用的。

在看工聯會除了同事介紹的柔術外還有什麼課程時,自己又想找一些電子工程的知識學習。看到有教授Arduino的課堂,想起早幾天在圖書舘看過這名字的,於是再找想關的介紹或學習。找到其他電工會的課程也差不多價錢,而且連零件實習的還另需零件的費用,當想找找那裡可以買到時,原來官方也有出一套Starter Kit, 有一塊Arduino UNO, 可以跟著學習的Projects Book和相關電子零件等。在RS 這個電子零件商入手買了。不知是否香港不算著普及,少有個人提及Arduino,下單後也因為RS香港未有貨,而要等海外運送。在一個星期後終於送到屋企,相比電話聯絡時他們預估的快了兩天。

最後,還有7月義大利之行的機票,比之前搜尋時貴了,不過決定還是會去的。這個工作營從知道的一刻,一直在一個兩難的選擇的猶豫中,因為日子可能跟工作上的一個專案相撞。不過經番思量,這個工作上的機遇,就當凡事留一線吧。義大利:作為一直想看看的歐洲城市,一次非工幹的旅行,期望多些新鮮體驗吧。

2016年5月1日 星期日

賭波的初哥方式-Elo Rating System 的理解

之前在未了解背後數學之前先嘗試個應用。今個周未有空就來了解一下Elo Rating System背後是什麼理論,和如何得出那樣的公式了。

Part A)機率
先來看看「邏輯函数」Logistic Function。在很多地方都會看到它的身影,例如物種的人口增長,統計學上的對True/False這類二元結果的回歸分析。
「邏輯函数」 有這樣的一般型式:$$y = \frac{L}{ 1 + e^{-k(x-x_0)} }$$
$e$  :自然對數
$x_0$:x 的中間值
$L$  :y 的最大值
$k$  :斜度

例子一:Standard Logistic Function:$y = \frac{1}{1 + e^{-x}}$
例子二:國際象棋界 USCF 的 Elo rating system 的勝率期望值:$y = \frac{1}{1 + 10^{-\frac{1}{400}(r_A-r_B)}}$

我們考慮代入的是「分數差」(甲的分數-乙的分數), 即是$x=(r_A-r_B)$,$x_0=0$。一個函數可以作為「分數」 與「勝負機率」的轉換,大概很多$\mathbb{R} \to (0,1)$ 的函數都可以做到。而這「邏輯函数」還有以下特質::
  • 這函數可以輸入實數的「分數差」,而輸出0到1之間的機率值;而且數值是不斷上升的,所以差異愈大,贏(輸)機率就愈大。(這兩個特質就適合用來作"分數差" 和"輸贏機率"之間的轉換)
  • 零作為中間點是反向對稱的 $Pr(x)=1-Pr(-x)$,高分方的勝率等於低分方的負率。當雙方實力相等,也就是"分數差"在等於零的時候,輸贏的機率是0.5。
  • 而差異愈接近零的時候機率的變化的速度較大;但差異愈大的時候,這個機率的變化速度就愈不明顯。(這個有點像經濟學上「邊際效益遞減」的概念,現實上有點猶豫)


「邏輯函数」 在統計模型的重要性在於與「邏輯迴歸」Logistic Regression 的關係。

Logistic Regression Model與一般的「簡單線性迴歸」 Ordinary Linear Regression都是屬於GLM的其中一員,分別在於對「應變數」Dependent Variable的分佈,和所謂的「連結函數」Link Function有不同假設。Logistic Regression Model中,Y 的分佈是要配合"勝/負"這類二元結果, 連結函數的不同就得出機會率可以寫成Logistic Function的形式。Logistic Regression :
$$logit( E [Y | X] ) = ln(\frac{p}{1-p}) = \beta X$$
對觀察值Y的分佈假設為 $Y \sim Binomial (1 , p) $。上式經過移項後會得到:$p = \frac{1}{1 + e^{-\beta X}}$,也就是開始時所見的Logistic Function的形式。



終於,我們回來看看Elo Ratings中的機率公式:
$$S_{expect} = \frac{1}{1 + 10^{-\frac{1}{400}(r_A-r_B)}}$$
  1. 從 $e$ 變成 10的次方:因為  $10^x   =  {e^{ln(10)}}^x  =e^{ln(10)x} $,這只是在$k$值的影響。
  2. $k$:1/400,這個斜度是雙方選手的分數差如何轉換到 0-1的比例上。例如當同樣估計為A勝B,但估計的機率是60%還是70%就是這k值影響到。在線性回歸中我們會用OLS的方法去求取參數,在 Logistic Regression中參數是用「最大似然估計」Maximum Likelihood Estimation (MLE)找出來。
  3. $r_A, r_B$:選手的分數,這裡並不是一個可以直接觀察到的自變數,如何得出這分數就是Elo Rating 的另一重要部份。
**所以,簡單而言Elo Ratings 就是一套Logistic Regression model,(還有加上選手的評分方式,和如何不斷更新分數)**


Part B)分數
每名棋手會有一個初始分數$r_0$,然隨著實際對賽的結果,用以下公式更新棋手成積:

$$r_{post} = r_{pre} + K (S_{actual} - S_{expect})$$
$r_{post}$:對賽後棋手經調整後的分數。
$r_{pre}$:對賽前棋手原來的分數。
$S_{actual}$:實際結果,簡單可以設定:贏=1分,輸=0分,和=0.5分。
$S_{expect}$:預期結果,就是PartA計算甲會贏的機率公式。
$K$:這一般稱作attenuation factor,是調整新結果的影響和原有分數之間的比重。
一般會有這些考慮:假設比賽結果對新手影響較大,假設重要比賽的影響較大。

因為兩個等級的選手對賽,可以預期分數高的有較大贏面。棋手的分數要值得調整,他應該要表現得超越自己原有等級所預期的水準。Elo Rating更新分數的公式的設計就是為了達到這個效果。

另外,例如有 1200分的棋手A 和 1000分的棋手B 比賽:A,B的預期贏面分別算出是76%, 24%。 A勝出只會增加$0.24K$的分數,B勝出卻會增加$0.74K$的分數。所以:贏(輸)了該贏(輸)的比賽,分數不會有大幅調整;但如果出現戲劇性的結果,分數的調整就會較大。

Part C)應用
這套Elo Rating System在以下幾方面都有被應用:
遊戲:
    League Of Legends
http://leagueoflegends.wikia.com/wiki/Elo_rating_system

國際象棋界:
    World Chess Federation (FIDE)
https://www.fide.com/fide/handbook.html?id=172&view=article

足球:
    World Football Elo Ratings
http://www.eloratings.net/system.html

    FIFA Women's World Rankings
http://www.fifa.com/worldranking/procedureandschedule/womenprocedure/index.html
http://resources.fifa.com/mm/document/fifafacts/r%26a-wwr/52/00/99/fs-590_06e_wwr-new.pdf

     Footballdatabase.com (雖然無提供背後的模型,但如果沒有數據作自行測試的話也可以一看)
http://footballdatabase.com/ranking/europe/1

因為各方面的比賽有不同特質,所以模型參數略有不同。用以上的 FIFA Women’s World Ranking (WWR) 的模型去看足球方面的實際運作(這裡修改了官方符號方便表示)
$$S_{expect} = 1 / (1 + 10^{x/2})$$
$$ r_{new}  = r_{old}  +  K ( S_{actual} - S_{expect} )$$

文件中稱當中 $x = [r_A - r_B] / (\text{scaling factor})$。scaling factor是為了令新隊伍從1000分開始;對賽中每100分的差距做成64%的的機會勝出。用Excel模擬一下會得到它的scaling factor = -200,所以一樣是這條式:$S_{expect} = 1 / (1 + 10^{-\frac{1}{400}(r_A-r_B)})$


  • 它們對模型的修改上考慮到入球數目的不同:

  • 主場的優勢:主隊加100分
"A glance at the historical results shows that teams perform better at home than away; the home teams keep 66% of the points, while the opponents return home with 34%. To neutralise this effect, a correction is made by enhancing the rating of the home team by a value of 100 points (corresponding to 64%)."
  • 對於賽事重要性:

  • 參考的時間歷史:45年的比賽紀錄,在評分的角度上還可以接受,但我覺得對勝負機會率的目的來說就太多。現在的球隊隊員跟好幾年前的早就不同了吧。
"Solid foundation: some 6500 games since 1971"

  • 開始評分所需的數據:其實我覺得這套方式比較適合LOL遊戲平台上的計分,那時每次分數更新反映的是一個學習過程。但在象棋/足球這類大量練習,然後參加一場聯賽的情況中,每次分數更新就像是尋求反映真正實力的過程,這就要有足夠對實往績能達到效果。事實上,也因為Logistic Regression 的參數是用到MLE的方法,一般需要的樣本數也要較大。
"The ranking of a team is deemed official when:They have played at least 5 matches against teams with an official ranking. etc..."


------------
最後一部份,我是懷疑是否有關的,是這套評分和Exponential Distribution的關係。
因為:$A, B \sim Exp(1)  \Rightarrow   x_0 - \beta ln(A/B) \sim Logistic(x_0, \beta)$

設$R_A, R_B \sim Exp(\dot)$   A,B 是某種實力的量度。Exponential distribution 的圖明顯與Normal Distribution 不同的,它假設選手的$R_A, R_B$ 大多是在低實力區,高手則愈來愈少。它還有一個特點,是分佈上的「無記憶性質」(Memoryless):$Pr(X>m+n|X>m) = Pr(X>n)$ 。對給定的任意一個參考分數而言,比你高同樣n級的比例是一樣的。用一個效果比喻:無論是在哪一級的角色,在下一個等級之前,總是有面前的人當中最弱的3%等著你去超越。
( 以$Exp(1/30)$為例。平均等級是30級。R:pexp(1, rate=1/30) )

設$R_a=ln(R_A), R_b=ln(R_B)$ 。用$ln()$將實力的比例尺轉變成方便比較的分數,$log()$這個運算的起源,是當年在未有計算機的發明之前,有一樣叫對數表的工具,為了方便計算大數的乘法。
$a-b = ln(exp(Ra-Rb)) = ln(exp(Ra)/exp(Rb)) = ln(A/B) \sim Logistic(0,1)$
這就得出分數差會符合Logistic Distribution.

但這是否有什麼意義呢?未想清楚。。。
------------

2016年4月25日 星期一

賭波的初哥方式一檢討

八強賽事完結,結果是不好的了。但這初哥當初決定放入少許注碼,希望投入到去體驗,實際地知道到了什麼:

1. 注碼佔口袋裡錢的比例要更少。當一注是本金的 1x - 20%,輸幾注就感覺很危險。
(這是不符合Kelly Criteria嗎?原來是自己用錯賠率了)

2. Kelly Criteria 用的是淨賠率,是馬會顯示的賠率-1。
(其實修正過後大部份場都不值得下注。這可能是低估了機會率,或馬會的給的賠率太低了。)

3. 足球不能簡化為勝負二個賽果。在一般的:主、客、和。當兩隊實力相約,和的機率其實不少,不能不考慮打和。而且相比單純贏輸幾球,最好可以有估波膽形式般的預測,這樣才能享用較高賠率。

4. 可以分開:得、失球 的能力,有人用過去的Poisson Distribution作工具,這應該可以考慮加入得失球分開的辦法。 或 之前的Least square estimation也應該這樣。而且這類方法目標是要有機率,要知誤差。

5. 要了解ELO背後模型,如何才能用在主客和3種情況。ELO的初始參數要做校準,去調整合適的機會率和界線。

---------------------------

這些有的是八強首圈時發現的,但還未花時間研究如何修改。下一場快上演了,更重要的是不能拖著自己寫Blog的進度。

2016年3月31日 星期四

賭波的初哥方式-Least Square Estimation & Elo Rating System

星期三放假在家,空閒的時間再嘗試一下去年的足球博彩模型。當時因為自己讀過點數學和統計,一直想有點實際的應用;朋友V想用模型預測球賽結果和博彩,而我工作時又會弄點程式來方便日常工作,所以去年就和我嘗試提高預測球賽結果的賺錢機會,以及做點自動化的工具。

去年,加入的是一個為每隊評分的方法。假設每隊有一個代表綜合實力的分數-Rating,而得失球的差-Score只是兩隊分數的差。用過往每隊的對賽結果,放入一個方程組(System of Linear Equations) $\underline{HA \times teamRank=Score}$ 去求最小方差(Least square estimation)的解,就可以反求出這些分數。
$$
\begin{bmatrix}
1 & 0 & 0 & -1 \\
0 & 1 & -1 & 0 \\
-1 & 0 & 1 & 0 \\
0 & -1 & 0 & 1 \\
0 & 0 & -1 & 1 \\
-1 & 1 & 0 & 0 \\
0 & 0 & 1 & -1 \\
1 & -1 & 0 & 0 \\
1 & 0 & 0 & -1 \\
-1 & 0 & 0 & 1 \\
0 & -1 & 1 & 0 \\
0 & 1 & 0 & -1 \\
0 & 1 & 0 & -1 \end{bmatrix}
\times
\begin{bmatrix}
1.375 \\
2 \\
-2.5 \\
-0.875 \end{bmatrix}
=
\begin{bmatrix}
2 \\
8 \\
-5 \\
-1 \\
4 \\
1 \\
1 \\
0 \\
-3 \\
-2 \\
2 \\
4 \end{bmatrix}$$
當然,我們想做的是把這些運算交給電腦。當只要做好數據的準備,在R上除了數據的輸入和顯示外,重要的運算就只是一行Coding:
teamRank = ginv(HA) %*% score;
以2013-2014年度英超對賽的紀錄作計算,最好幾隊分別是:
  1. 曼城=1.625
  2. 利物浦=1.275
  3. 車路士=1.1
  4. 阿仙奴=0.675
  5. 愛華頓=0.55
假如曼城和愛華頓對賽,期望值為曼城勝愛華頓1.125球。但只用一個期望值還未能反映這些隨機變數的離散程度,所以要看見多大的期望值才有信心下注?在求出得失球差的分佈之前,這還是要靠主觀觀察/回溯測試來判斷。

2016年3月30日 星期三

GGC - Startup Challenge 後記:二

Day04-Google Weekend 2

因為前一晚在簡報方面有大變動,所以都預先也再和隊員夾定相關的準備。前一晚亦各自將ppt的內容寄給我們的Designer加工。今天的Pitching會在下午進行,會從14隊中挑選6隊進入決賽,而中午就要做採排和定好簡報,所以工作時間只有上午約2個小時。策略當然是先定好簡報,再不斷練習和改進講稿。簡報方面比昨晚構想中的5-6頁多,Slide的次序雖然有調動,但流程大抵不變。簡約的圖像是很好的表達方式,原來《獲利世代》那種思考商業模式的圖,用來作為計劃過程中的工具還好,但要放進一頁簡報中,就顯得太多文字了。我們練習時也從Mentor身上,學到很好的結尾方式:將我們最後整造的美好願景再有層次地擴大;最後一句話要用清晰有力的語調完結,更能讓意念在完結後留在聽眾腦海。

今次活動Day1開始前,主辦單位分享過兩段YouTube演講,一段有關設計的Designers -- Think Big!,一段是How frustration can make us more creative。今次的經驗體驗到第二段片的講法,我們臨時湊合的組員,除了能力背景的Diversity外,當然有著不同性格。有時會有爭論和說話態度上的不同。但的確當可以解決到不同人的想法時,會有更大效益。

一個問題之前一直未清晰的確是:我們到底是在做一場Campaign?還是一個賣產品的公司?而到今天,大概摸索到一種類似的NGO在主公司下設營利部門的模式(Foundation - Business Division)我們想影響的對象是大眾,但買單的顧客是企業。我們的核心價值是想推動一種風氣,在這主公司的角度下並不應該很介意日後沒有新客源或有競爭者。而營利部門是一方面向買家提供其他服務,另一方面吸引一批連帶的用家加入我們想推動建立的風氣。這種將推廣和營利分開的模式,從Green Monday的結構可以也可以看到。當要現實地考慮如何持續營運,同時參考了其他NGO的年報,就很好奇為什麼如綠色和平等一些NGO可以只靠捐款營運。

我的確覺得我們的Pitching做得很好,有很合適的講者和簡報,做到簡約、故事式、以想推動的價值觀打動聽眾。在公佈入圍的六隊時,數到我們時我自己未有很大的激動,為什麼一直會有這感覺,覺得應該會入圍呢?



Day05-Final Pitching

在Final Pitching 是在一星期後的星期六,最忙碌的日子就是這周,好幾天都是收工後繼續開會做準備,星期一和鄰隊來協助的去了MakerBay 準備飯盒的設計和期望可以製作一個初型。那邊可以用到的工具而技術上最可行的大概是3D Printing,MakerBay其中一個平日的有趣活動就是3D Printing 製作一部3D Printer。昨天新聞就提到NASA剛帶了一部可以在無重力下使用的3D Printer 上太空站,期望可以在太空自行製造零件而減輕運載升空的成本。不過當日也了解到一般3D Printer成品的質素仍未算理想,要加工磨走粗糙的地方,和打印時凌空部分的接駁(無重力的Printer應該解決到這問題?)。當日想到的飯盒設計如果有螺旋的接駁位,而非榫位的話,就應該未必適合3D printing。如果要推動人們的這個行為,整個設計也要考慮實用和外觀。設計一個特色的飯盒或許還容易,但要配合到餐廳的工作和用家的實用美觀,一個設計很難符合每種需要⋯⋯另外兩晚都到觀塘的工作室開會,就我們最弱的營利模式去設計活動,最後提供的服務算是面向HR的⻆度。另一方面,也簡單的寫下未來三年內按季的「現金」流向和相關活動,看著這張表,我認為經過這個準備,才會比較清楚之後要落實計劃時,有什麼先後程序上的鋪排。另外,我們想改變的是平日生活的習慣,所以都希望這星期大家親身嘗試體驗。

最後一日的決賽-以目標創業這件事就不是最後一天。大會向瑞信借場,在ICC上的寫字樓舉行。因應場地的熒幕尺寸,我們還是急急地再調整powerpoint。今次的評分方式不太一樣,是每位評審手上有不同比例的籌碼,總數十萬元,評審們以手上籌碼作評分之餘,也直接反映為每組最後的獎金。好處是可以直接反映他對該組的支持/模擬資金投資的角度;但另一方面人性上有分散投資這傾向的話,結果會趨向較為平均。相比「贏者全拿」的結果,應該誰也不會有足夠資金推動計劃,需要隊伍自身有很強的意念和力量去推動項目,以把這次獎金只視為部份資助,;但另一方面少了擔心單隊隊伍全拿後一筆過失敗的風險。這種模式在協助 "Greenovation" 和投資 "Startup" 的角度去考慮,如果我要保守地作出決策,大概現在這套也是好方法⋯⋯我們得到第二高的獎金,1st runner up。還有的是SaSa贊助的Voltra名額、香港航空機票、工匠灣會藉。

 
無論如何,設計和演說的部份告一段落,下一步是最難的落實和運作。我所知道從投資角度看的創業是絕大部份失敗收場的。之後,好的眼光和高效率的運作缺一不可。要從想法進入到實際的階段,我看現在是需要一個領袖角色推動大家「做」這件事,需要一個擅長活動統籌和公關的角色實地「做」事。記得第一日workshop仁人學社的Mentor分享說:「記往:Ideas Are Cheap」。只有Idea做不了什麼,實際做得出來才重要。剛看完了《精實創業》,這刻感受最深的幾章都是:

實驗
        精實創業法將初創事業的作法當成一連串的實驗重新看待,每一項實驗的目的,都是為了找出一個以願景為藍圖讓企業永續經營的方法。
[關鍵概念]

        - 立即實驗
        - 實驗即產品
測試 
        「最小可行產品」與雛型產品或產品概念測試不同,它不是用來回答設計或技術上的問題,而是為了要測試重要的商業假設。
[關鍵概念]
        - 品質與設計在最小可行產品中扮演的角色

評估
        初創事業的任務是:第一,積極評估自己現在所在的位置,然後勇敢面對評估出來的殘忍事實;第二,設計可以學習如何將實際數字推向目標的實驗。
[關鍵概念]
        - 可行指數與虛榮指數


2016年3月24日 星期四

GGC - Startup Challenge 後記:一

3月初的這兩星期很多時間都放了給GGC Challenge 密集的日程中,這篇回顧發覺也打得太長了,先放一半上來。過了「決賽日」現在的回顧,今次應該是體驗到一種類似Startup weekend的活動。當初參加的動機,因為大會的主題"Greenovation" -綠色創新是我有興趣的主題,想實際地能用自己自學的電腦知識解決一些現實問題,而且希望遇到什麼有趣、有本事的人。活動開始時,我不是帶著自己想要推行的計劃而來的。參照現在所知的startup weekend 流程去比較,GGC會經過的階段大致為:
1) 活動簡介&Workshop => 2) 分享個人Idea & 組隊 => 3) 周未的Development/Prototype & Pitching => 4) 一星期的改進 => 5) Final Pitching

2016年2月28日 星期日

[Math] Office Work - Single Precision Error from Decimal to Floating

電腦是以1、0表示所有資料,基本如數字也是這樣,為了在同樣容量下儲存更多或更準確的數字,便先要指定格式。例如以32Bit的單位下,如果我們想記錄「整數」,先有1 Bit用了表示正負數,餘下的31 Bit就只可以記錄$2^{31}$個數,所以32 Bit最大的正整數是$2^{31}-1 = 2147483647$。如果電腦要紀錄更大的數值,就要指定要其他的儲存容量(例如Long Integer:用多一倍的單位64Bits)或其他的儲存方式(例如Float:$1.0 \times 2^{128}$)。

以印尼银行(Bank Indonesia - 印尼的中央銀行)的印尼盾匯率為例:印行會用當日雅加達時間上午8.00-9.45銀行間同業交易的USD/IDR即期匯率,計算加權平均,然後在上午10.00公佈該這個參考價-雅加達銀行同業即期匯率(JISDOR),和現時22種貨幣的參考匯率,發佈的數字只有買入價、賣出價,並沒有中間價。

要知道一般大眾看的就是中間價。談到日元歐元下跌又是旅行良機時,你不會分別說買入賣出價是多少。某數據供應商亦合理地有提供中間價 ( =(買入+賣出)/2 )。只是,數據商預設準確至2個小數位(2 d.p.) ,當我們留意這個數據的準確性時,卻偶然出現細小的誤差,例如:


2016年2月20日 星期六

[Math] Office Work - 從編排更表到Hungarian Algorithm

因為會處理歐美收市和亞洲收市,所以我這組人的繁忙時間是清早和晚上兩端,需要有輪班制,工作分早晚兩更,據英文堂所學這種工作時間有個形容詞是antisocial hour, 人手足夠時就可以讓同事返九點左右的正常時間。編更上如何令大家滿意,這問題幾似數學Operational Research / Graph Theory中的 Matching problem。大概最近FB見到恆隆同伯賴段片,數學應用的頭腦靈活過來,想到還是可以用典型的Hungarian Algorithm。這演算法所處理的情況是:假設有n個任務需要分派給n個人,每人要完成各個任務都有某個成本,問如何編配任務才能讓總成本最少。

例如成員 i 要處理任務 j 的成本是cij,這些成本可以寫成矩陣C表示。例如第一個人p1處理任務一task1要成本1, p1 處理 task2 要成本5, p1 處理 task3 要成本3;分派方法可以寫成矩陣A,這簡單例子的最佳分配可以直觀得知如下, 總成本為6。而Hungarian Algorithm 的步驟是這樣,大致有以下程序:(一)將所有數值減去該行最小的數,然後再將所有數值減去該列最小的數,今每行、列都有零存在。(二)[Trial and Error] 找出一個"Independent zero"的組合,用最少條線穿過所有零。(三)如果剛好存在於n條線上,該"Independent zero"組合就可以得出答案;如果只需少過n條線,修改矩陣重覆步驟二。

$$
C=\begin{bmatrix}
1 & 5 & 3 \\
4 & 2 & 8 \\
7 & 9 & 3 \end{bmatrix},
A=\begin{bmatrix}
1 & 0 & 0 \\
0 & 1 & 0 \\
0 & 0 & 1 \end{bmatrix}
$$

2016年2月10日 星期三

北區 : 聯和墟-馬屎埔-華山-坪輋/坪洋


同焜哥定好新年假期由粉嶺出發,試行我們的北區計劃有什麼地方可以去/可以寫。最緊要係仲會帶定營帳睡袋嘗試今晚上華山露營。

上午大約10.30在粉嶺火車站出發,先到聯和墟的茶餐廳食個早餐。聯和街一帶有不少街坊食店,舊街市入面的小店地圖都有介紹。我地隨便選了間仍有早餐的光顧。第一站先往粉嶺聖若瑟堂參觀 (http://www.catholicheritage.org.hk/tc/catholic_building/st_joseph_church/index.htm 檔案室內有些1953年6月7日報章 紀錄當時的模型) 這教堂1953年落成,奉聖若瑟為主保,以工匠的手藝養活家人的聖若瑟,想到附近的手作村。入口前的銅牌寫著粉嶺聖若瑟堂是三級歷史建築物。不過有更耐歷史的是走廊上的三個大鐘,大鐘是戰時的九龍城聖方濟堂遺物。九龍城一八六零年代在當時海旁已經設有傳教站,並在一八六九年建立的聖方濟各沙勿略堂(記念十六世紀到東南亞開教的耶穌會士聖方濟各沙勿略),到後來一九三零年代興建機場,政府以換地形式在附近批出土重建,資助人亦將聖堂改名為聖五傷方濟各堂。到日治時期日軍為擴展機場,教堂再被拆去(現在最近原址附近的聖方濟各堂己經要數深水埗區) ,另一個當時為此而被炸毀的還有沙中綫土瓜灣站發現的聖山遺址。 回到現在,粉嶺聖若瑟堂是一些新人行婚禮的心水地點。右後方露出一角的是新鴻基2014年落成的單幢樓項目──瓏山一號。
新鴻基地產即將推出粉嶺樓路項目──瓏山一號

新鴻基地產即將推出粉嶺樓路項目──瓏山一號



2016年1月29日 星期五

Glocal Greenovation Challenge Application


近兩星期看到到Voltra有這個活動 http://www.glocalgreenovation.com/ ,雖然自己已經過了對MT Program有興趣的年紀,但對Makerbay和 可以遇到什麼有才能的人就很感興趣。還有,像是那些IT界的Hackathon是怎樣的感覺?發揮自己的興趣和想法,在工作以外再創業是可行的嗎? 

反正這個Self-Introdcution Profile要放上網再用遞交連結,一併放在這裡。

^^ -----------------------------------(我是分隔線)----------------------------------- ^^

2016年1月15日 星期五

[Python] Facebook page 的 Like 與 Crawling

網上找Facebook上做Web crawling 的方法,記得之前試過某Coursera教Twitter上的Crawling,用到服務本身提供的API和Authentication Token。Twitter/Google map的教學的都有Coursera上的課堂,但FB提供的只有網上找到零碎的教學,當時是一個外國Vlogger like Emma Watson posts的Script。試明白後把這段code貯起來做參考,想不到這星期剛好有用得上的時候。用到以下的第三方SDK, 安裝後用 import facebook 載入。


Python 的facebook SDK: https://github.com/pythonforfacebook/facebook-sdk

更多的Facebook SDK: https://developers.facebook.com/docs/apis-and-sdks

了解背後的FB Graph API的用法: https://developers.facebook.com/docs/graph-api/overview


找取 & like page 的post:
- 'toke here' 的token 可以在GRAPH Explorer中得到, (Keep it secret!!)
- "ejmonthly" 是信報財經月刊的Facebook name, 看網址就會找到了。

對於ejmonthly 這個profile, 當用get_connections連繫上它的posts資料, 就可以對它的資料內容
資料做事了。抓取內容時,其本上是一層層的dictionary 結構。做動作時就用到sdk內的function, 如put_object() 去對某個post 給like。

2015年12月29日 星期二

忙完聖誕年尾的Project, 收爐。

雖然話收爐,但紅日都要返工的我們,不是放長假的話,聖誕都係要繼續開工。只係當年尾假期旺季,外面人人都休息,大定的工作量都不會太大,基本上都係抱住輕鬆心情返工。

最近公司忙着一個新pricing service的Project。聖誕前趕起做完那兩星期的UAT,EUC由開始幾日行唔到、配合唔到服務,到順順利利試好整個流程。完成最後一個Test case當日,OT只有兩小時,在那兩星期中算少了。當寫個email 總結各team人完成時,相比之前每日都有新發現的Highlights/Comments,懶得草草地寫完就收工。

經常聽到財演們在年尾,面對低交投的悶市時,會說基金經理都放假收爐。我這個雖然係banking界的後勤角色,但都覺得:「是的,假期後再算吧。」下星期新一年開始,新Pricing正式上Production, 好像還有陸續有來的暗湧,不過今個星期未想找新的碴,安頓好眼前的執頭執尾的工夫,期待周未假期的休息。

想起年尾的跌市的令市況氣氛都淡了不少,財經界大多有明年前瞻的分析,除了肯定要為2016年尾的二手樓市作點準備,投資方面自己還未仔細想好方向,但大概新一年該做點重置資產分佈的Rebalancing,現實很能體會到行為金融學所寫的,很多認知和心理的因素會影響人無法紀律地執行計算上的買賣指令。當然一方面也是對這模型的信心未夠大,但更多應該是個人傾向保守而不作為。從個人建構的模型認為從長線投資的角度看,現在恆指的估值應該是偏低得可以買入了,不過要面對買入時機的判斷,還是要嘗試怎樣才能配合個人行為心理。

2015年12月27日 星期日

[Python] wxpython: import wx 找不到模組

 
《用Python玩轉數據》最後一個星期的課是用Python 寫GUI,例子整合了之前所學的東西寫成一個道指成份股的價格查詢工具:
 

GUI用的套件是wxpython,可惜當 import wx 時,Python都會出現錯誤,回應說找不到module,一直重裝都是這樣,到發覺一件奇怪的事:用 which python 指令找到的不是Mac/Lib/Python2.7,而是指向一條Anaconda的路徑。

$ which python
/Users/ryanli/anaconda/bin/python

2015年12月18日 星期五

雙子座流星雨2015

做個追遂流星的孩子,這星期有兩晚都去了大美督。
雙子座
15/12凌晨2am是雙子座流星雨的高峰期,跟Polo, Aimee約好當晚在大埔追星。下課後回家草草地吃個即食麵,12點便出發。坐車先到三門仔一段跑步的堤壩,但環境太光不適合,於是轉戰大美督。當我們的車一駛入燒烤場路口,就發覺停泊的車有很多,白普理的迴旋處有警車維持秩序。主壩上聚集的人比假期的日間更多,每幾步路有一設好腳架的相機,間或就有扎營等待的營帳。想不到睇流星雨會是這樣的熱鬧。

2015年12月11日 星期五

聯和墟舊街市-「北區文化節」

上星期因為青協的香港旅俠活動到訪聯和墟舊街市,三間小白色建築,分別寫著魚市場、菜市場、和中間的聯和市場招牌。但開放部份只有約一半,不用半個多小時便走完一圈。不過翻查它的建墟歷史後,覺得這比眼前的三間白色建築有趣多了。

聯和墟源起,要數當年北區只有上水石湖墟一個墟市,粉嶺一帶鄉民一直在上水石湖墟交易,但就好似經濟學讀的壟斷市場(Monopoly)的弊處,墟主對秤佣定價令部份檔主不滿,於是粉嶺區鄉民組成聯和置業有限公司集資另建新墟。最初由當地的居民組織作出規劃,隨後獲得政府的批地及支援。

相似地,今日一種由下而上的形式,自從《每當變幻時》上映後,開始有古蹟活化。2012年政府以象徵性收費租予社工李昌隆作環保回收工作,李昌隆再劃出聯和市場一部份地方,由幾個主辦單位成立聯和手作村。現時魚市場是回收中心,聯和市場介紹北區文化和農墟,菜市場幾個檔位經營起手作村。但當日所見其實少於10檔,仍只有開放活動時才會有遊人買賣,平日比較似一個提供工作室的空間。

2015年12月3日 星期四

[Batch] 辦公室技術文 - 抽取子文件夾中的檔案

每月都有一堆總結數字要整理作報告,之前已經做好自動化用Excel VBA 去對這些檔案作大量重覆動作,不過最近可能重整檔案的存放結構,屆時不能用VBA的 multiple select去一次過選擇需要的檔案去處理。
這些檔案按日子分佈在二十多個子文件夾之中,如果不想修改現有工具的話,就要想辦法:把這些檔案複製出來,集合到一個文件夾中。在研究這個轉變的時候遇上另一個batch檔的應用,很高興的想到這些檔案的處理用.bat的方法會更容易。像這問題只用一行Code就解決了。
for /R ".\" %%f in (*.xls) do xcopy "%%f" ".\result\" /y
Syntax
      FOR /R [[drive:]path] %%parameter IN (set) DO command
      XCOPY source [destination] [options]

2015年11月28日 星期六

週記 - Blogspot、GA、工作、CAPM

上星期總算趕起一篇文,希望有了第一步就可以繼續寫下去。而試用中的Google Analytic有數據收集回來了,雖然訪客很少,但為現時只為自學也可以的。到Coursera 的網頁課完了,便是時候照Google GA Certificate的影片來學習。(原來Coursera己取消了免費的 The Statements of Accomplishment, 只有付費的Verified Certificate 和 Specialization; 另一個主流的MOOC: edX 還有提供免費的證明: Honor Code Certificate of Achievement。可惜看過 edX 的課程很多是Microsoft開辦,不是是配合用Mac + Open-Souce Software 的使用者。)
 
工作方面亦有點面試/筆試的回音,更重要的是,有申請已經是對我的進展了......希望之後還有這樣合適的Job Adv,同有更實際的進展。學術路向方面,面試傾談時知道今次主要是數論而非統計/數據的研究,想來其實純數才是我的本科,但這刻如果走上純數這條路卻覺得是意料之外。

數數自己今個星期的待辦事項,還剩下的是CAPM的報名。這個當初打算9月從Voltra回來便要開始的,但想不到回來後好幾項目標都停滯不前。一直到生日都過了,這星期才有點起步的動靜。但當再睇到考試的開支,又猶豫應不應該報呢?上次睇完本書,學習方面其實在自學或書本中,我就有能力吸收到,但為了考試的話就要準備課金了 Membership Fee ($129-159) + 考試($225) + 35Contact Hour (~$100-200) 。我很清楚自學的話,35Contact hour只係為滿足報考要求而不是靠video學到什麼得著的。女友建議還是PMP認受較高,不如直接報PMP罷。對專業證照這樣東西,好像是花錢買個考試證明,而不是學習。這個我是明白的,卻又有點納悶。

青協的香港旅俠計劃申請成功了,原本星期日有個單車導賞團,可惜取消了,改成了工作坊,還好釀酒和香薰艾條也是感興趣的活題。很期待正式實行我們旅程的時候,和製作出怎樣的紀錄。

2015年11月21日 星期六

2015年夏 - 義遊柬埔寨 - 感受篇

8月參加了青年廣場和義遊合辦的計劃,受資助去柬埔寨參加一個教育項目,回來後匆匆交了功課(原文),但自己仍然想好好寫完這篇感想。 就正好繼續這個閒置了幾年的學寫Blog試驗吧。
"School is the Answer"
Tuk Tuk 司機Tee背的細字: "School is the Answer"