2013年1月26日 星期六

Ingress 介紹



紀念一下,今天特地跑到八仙樂園去建立到奇岩站的連線,原本希望可以另外連到形成最北邊的大三角形,可惜一直拿不到Portal Key,所以沒辦法變成大三角形。

關於Ingress


在介紹之前先來看一下Ingress的介紹影片,看完就會很有fu了~



看完了是不是感到興奮!?許多人看完影片後都很想參與試玩,只可惜但現在還是公測階段,只可登記 Email,靜待 Activation Code,或者有其他網友意外的的到許多邀請碼分享出來才可以加入,這就跟當初Gmail在邀請人的狀況一樣~:P

Ingress 是 Google 所推出的遊戲結合現實與虛擬,玩家的遊戲世界不是虛擬的,而是一個個真實的場境,玩家必須利用 GPS 的地理定位,在現實的世界上進行一項項的任務 。故事大概是講述世界上出現一種新的能源(MX),它有可能控制人的思想,能源無分好壞,它們主要在一些標誌性建築和公共藝術品的位置(Portal) (舉例來說八仙樂園門口),玩家代表一個派別,可以是抵抗派(Resistance)或者是開明派(Enlightened),遊戲目的是要讓你支持的一方,在地球版圖上覆蓋更多地方。所以,你要為自己一方佔領Portal, 建立Links, 和建立Fields 去覆蓋版圖。同樣地,你亦要將敵方的Link,Field摧毀,搶奪Portal,削弱敵方勢力。

所以同樣是在打電動,Ingress就變成鼓勵阿宅門要走出家裡到外面的世界~而且最有趣的就是這個遊戲跟所有MMO Game一樣,有公開頻道可以聊天,於是你可能在打某個點的時候還可以跟網友相認(不過現在幾乎都是男性居多,需要多點女性加入!?)

下圖就是聊天頻道,有分全部(ALL)就是目前地圖區域內發生所有事件,誰打了誰,誰建立了什麼連線或是點,還有公開聊天。而Faction則是自己陣營內部的聊天頻道



對於新手來說入門順序是
  1. 從 Hack Portal 開始,收集經驗值和寶物(武器XMP Burster ,防具Resonator,Portal Key...等)
  2. 利用 XMP Burster 攻擊敵方Portal周圍的Resonator
  3. 把Resonator 打掉後,部屬自己的Resonator並且佔領
  4. 到自己陣營的點作連線,從點到線到面,形成一個Field

更多關於Ingress 的資源與情報:

所以..趕快去申請,並且期待收到Activation Code吧~XDD

2013年1月23日 星期三

Big Data Analytic - Weka vs Mahout vs R

圖片來源:自行繪製

俗話說的好 "計畫趕不上變化,變化又趕不上長官的一句話 ╮(╯▽╰)╭",所以我最近的首要任務變成要研究所謂 Big Data Analytic 相關的技術,不過這樣也好,因為我早就想把這些東西搞清楚了...(請叫我 Survey魔人.... (  ̄ c ̄)y·ξ )

(註:這不是一篇技術文,是筆記碎念文~)

Machine Learning ? Data Mining ?


第一個問題,談到所謂的Big Data Analytic馬上浮出腦袋的就是最近熱門的幾個名詞: Data Mining (DM)? Machine Learning (ML)? 我真的是傻傻分不清啊,到底DM與ML之前的相互依賴關係到底是如何?到底是互相獨立還是互補關係?剛好又在網路上找到某張圖在解釋何謂Data Science,Data Science需要用到哪些技術,不過看了只會更加混亂吧~(/‵Д′)/~ ╧╧)



後來又找到Data Mining探索這篇文章後,我才比較確定DM和ML應該算是相互獨立的技術,但是可以利用ML的技術來幫助DM,當做一種DM的工具。

WEKA? R? Mahout ?


第二個問題就是關於 WEKA? R? Mahout ? 這幾個技術到底差異在哪,以及各自擅長的領域為何?在此之前我只知道這些都是號稱用來處理Data Mining 的 Open Source Project 。

在網路上找到這些資料:

WEKA 官網的介紹如下:
Weka is a collection of machine learning algorithms for data mining tasks. The algorithms can either be applied directly to a dataset or called from your own Java code. Weka contains tools for data pre-processing, classification, regression, clustering, association rules, and visualization. It is also well-suited for developing new machine learning schemes.

所以WEKA的強項就是他擁有非常多的ML演算法可以提供使用,但是他只是和較小量的資料運算,一旦遇到大量分散式運算,就會遇到以下問題:
WEKA can spend days for a single learn-and-test cycle, or it can simply run out of memory; and not with an average machine, even with a really big server!
而相對的Mahout 則是設計來For 大規模分散式運算 (雖然他現在支援的演算法較少,而且適用範圍較有局限性),下面的描述節錄自 mahout mail list討論串

Both packages support supervised and unsupervised algorithms.  Due to scalability concerns, Mahout does not have much in the way of agglomerative algorithms.

The highlights of Mahout right now are:
  • very large scale SVD
  • very large scale clustering
  • scalable item-set detection
  • the beginnings of very strong supervised classifiers for large features sets x large training data
  • decent underlying math library
  • command line or API focus.  This is better than GUI focus for production work.

所以不管任何工具都有其優缺點和侷限性,於是Hybrid Model就因蘊而生,下圖就是目前找到的幾總組合

圖片來源:自行整理

相關的參考資料:

R + WEKA:
R+ Hadoop:
此外,硬是要把R跟Hadoop 結合起來,並不一定是Data Scientists 所需要的東西(可能還是太偏一般程式設計師的想法),在"Big Analytics with R, Cassandra, and Hive"這篇文章,作者提到:
Most of the data scientists I’ve spoken to don’t really want this, they really want ways to get data into R and use data sampling and other estimation techniques (for example hive sampling)
看了那麼多工具,方法,與介紹,是不是覺得越來越昏了?所以最後引用這兩篇文章"R Is Not Enough For "Big Data","Yes, you need more than just R for Big Data Analytics"的內容當做結論:

If you ask the wrong question, you will be able to find statistics that give answers that are simply wrong (or, at best, misleading).

On net, having a degree in math, economics, AI, etc., isn’t enough. Tool expertise isn’t enough.  You need experience in solving real world problems, because there are a lot of importat limitations to the statistics that you learned in school.  Big data isn’t about bits, it’s about talent.

This is a great illustration of why the data science process is a valuable one for extracting information from Big Data, because it combines tool expertise with statistical expertise and the domain expertise required to understand the problem and the data applicable to it

工具和資料都不是重點,重點是你想要解決什麼問題....hmm...

(不過我還是得繼續研究我有哪些工具可以用,這些工具分別用來解決哪些問題...Orz...)

延伸閱讀:
[1] Machine Learning with Hadoop
[2] The Search for a Better BIG Data Analytics Pipeline

2013年1月22日 星期二

從Apache CloudStack Community 觀察社群運作原理,與提案的產生






[此文同時分享於CloudStackTaiwan]

從上一篇文章 - "如何加入open source 社群" 發佈到現在已經一個多月了,每天的例行公事就是從上百封的mail list 中觀察社群的動向,並且找出有興趣,或是可以參與的主題,但是真的是很困難,很多議題不是插不上話,再不然就是發言沒人鳥(大概發言太廢~Orz..),所以只能繼續做潛水觀察員。

而最近CloudStack 比較火熱的主題就是所謂Intellectual property clearance (A.K.A IP clearance) ,這個議題是從這篇討論開始 [ACS41] Concerns about where development has happened ,主要原因是因為Citrix 偷渡 貢獻了許多程式碼和new feature到 CloudStack 裡,因為這些 source code 與 new feature一來沒經過社群討論 (Mail List),二來是從已經存在的產品Critrix Cloud Platform 拿出來的程式碼,所以可能會有 IP的問題,所以引發了社群的激烈討論,下面是其這個討論串發起人Chip Childers的描述:
I'm not sure where to go from here.  I guess we have 2 options: we
re-write the code from scratch as CloudStack code, or Citrix donates
the code produced for CloudPlatform (and it gets taken through the IP
clearance process).

而這一連串的討論, 也引發了其他人(新手小白如我)的緊張,到底怎樣的狀況需要IP Clearance,什麼樣的狀況需要宣告Donate source code? 於是就有人出來在這篇文章 "[PROPOSAL] Networking plugin to integrate the MidoNet SDN platform with CloudStack"解釋:

IP clearance is required only when your feature would have been developed outside the community intervention and you want to propose that feature to be merged with the asf/master branch.
(智財權釐清只有在你提供的新功能是在社群外開發才需要)

 If you have happened to discuss the functional spec for your feature with the community and answered the queries if any one might have in the community and done all your code commits through review requests , IP clearance would not be required at all .
(如果你的功能,是有充分在社群討論過,也被社群同意後才開始開發的,就不會有所謂智財權釐清問題,就算不是在所尾asf/master 開branch 開發也沒關係)


因為對於 Apache Community 一個新的提案產生正確的處理態度流程應該是這樣:

  1. 在社群Mail List 提出Proposal
  2. 在Mail list 被充分的討論後,並且交付表決,是否同意納入這個功能
  3. 如果同意後,到Apache cloudstack 的 wiki 撰寫你的 Proposal 與 Spec
  4. 開發,並且交由commiter review


參考範例:
Mail List :[DISCUSS] PaaS Enablement: Composite Application Blueprints
提案wiki:Feature Proposal -- Composite Application Blueprints

延伸閱讀:
[1] Open source participation - Remixing Angie Byron to create the next Million Mozillians
[2] Open Source Communities and Customers in Pictures