網頁

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


2013年1月18日 星期五

[筆記] Cloud Security Alliance Conference



今天聽同事報告參加Cloud Security Alliance Conference 的心得分享,覺得蠻有收穫的所以在這邊分享一下我的筆記。

關於雲端安全聯盟(CSA, Cloud Security Alliance)


雲端安全聯盟(CSA, Cloud Security Alliance)成立於RSA Conference 2009, 為全球性的非營利組織
致力於在雲端運算環境下提供最佳的安全方案。自其成立起,雲端安全聯盟 發佈的雲端安全指南及其開發成為雲端運算領域令人矚目的重要文件。

雲端安全聯盟CSA的宗旨:
  • 提供用戶和供應商對雲端運算必要的安全需求與資安認知。
  • 促進對雲端運算安全最佳做法的獨立研究
  • 發起正確使用雲端運算和雲端安全解決方案的宣傳和教育計畫
  • 創建有關雲端安全保證的問題和方針的明細表 
關於CSA的更多資料可以看台灣分會創辦人暨研究小組召集人蔡先生的 "淺談國際雲端安全聯盟組織" 。

Cloud Security Alliance Conference 2012

 
關於Cloud Security 通常有兩種議題,而CSA Conference 主要在討論的是Security for cloud
  • Security form cloud 
    • 例:利用Cloud Computing的運算能力提供Security 防護分析功
  • Security for cloud 
    • 例:提供給AWS這種雲端Service的防護,如TrendMicro的Deep Security

以下為幾個有趣的議題:

Sharing Security Information


CSA 建議企業間應該要建立一種資訊交換機制,讓彼此間可以分享資訊安全的訊息,那是要分享哪些資訊安全的訊息呢?其實很多時候,很多公司組織是時常被被攻擊的,但是為了企業形象和不讓客戶擔心,通常他門都會選擇沉默不發聲,所以外界的人都不會知道這些事,而攻擊手法又都是日新月異,如果這些受害者不出來分享這些資訊,只會造成更多的受害者,所以企業和企業之間應該要交換這些資訊 (也許可以成立匿名交換資訊的機制?)


客戶最煩惱什麼 - Compliance (政府法規/業界技術標準)



資料隱私法


Privacy Law for Data Processor 這個議題目前在全世界都備受爭議,因為世界各國的法律更新速度都還跟不上科技更新的腳步,舉例來說,在以往Data Controller 和 Data Processor 這兩種角色大都屬於同一企業或公司,比如說某某企業自己有機房和網路服務,處理著自己客戶的資料,所以想當然這間公司就必須對這些資料的安全隱私和合法性負責,但是到了雲端運算時代,這一切可能都不一樣了,這兩個角色被分開來了:
  • Data Controller - Cloud customer (真正擁有資料的客戶)
  • Data Processor - Cloud Provider (如IaaS provider 提供 S3,EC2等服務)
當客戶把違法的資料放在雲端上,或是運用雲端科技作違法的事該罰誰?根據現行法律 Privacy law is putting more focus on data processor,因此就會衍伸出許多有名的案例:
  • The right to be forgotten (如:Facebook)
  • Mega Upload case (被抄站全美少了20%流量) - who is the data controller ?

BYOD (Bring Your Own Device)議題


當Smart phone 盛行之後,企業目前面對最大的問題就是關於BYOD的議題,因為隨著Smart phone的快速發展,辦隨著關於Smart Phone的 anti-mare / Security hole 也大量產生,所以在安全上面就有很大的隱憂,此外企業還會有以下考量:
  • Data Leakage
    • 當手機透握WIFI進入公司網路後,如果手機上有anti-mare 那就會有安全疑慮
  • Data Integrity
  • End of Life and Mobile Device lifecycle
    •  例:如果用自己手機收公司的信,之後手機報廢丟掉了,使用者往往不會作嚴謹的處理,所以公司的這些資訊還是有可能會被取出 (如陳冠希事件~:P)
  • Privacy, e-Discovery
但是又不能限制使用者不能帶自己的手機近公司,所以CSA作了建議:
  • 任何法規要著重在Content 的管理,而不是Device
  • 要教育員工有關 Mobile Device Security - 發生任何事情,要提供SOP保留所有證據
此外在處理 BYOD 的議題,漸漸由MDM轉向MAM,所謂的MDM (Mobile Device Management)就是直接管理員工手機,如果手機遺失,系統透過中央的Server下指令遠端把手機清空銷燬,但是如果系統錯誤的判斷就讓手機資料被清空呢?所以員工都不會想要用這種東西,因為大家不想要讓自己的私密資料都被刪除。 因此新一代的管理方式是MAM (Mobile Application Management),只著重在這個Application 所管理的資料安不安全。

EDoS - Economic Attack



原來除了DoS和DDoS外,現在又多了EDoS,所謂的EDoS就是Economic Denial of Sustainability Attacks,他的攻擊手法是只要用足夠的流量把你的budget花光,舉例來說許多Startup或是小公司,每個月可能都會編列一定的預算在IaaS的花費,用多少花多少,但是今天如被攻擊果流量突然暴增,可能就會造成你公司的營運成本大增,在收入不足的狀態下可能會讓公司提早結束營業,所以這個商機也造就了許多IaaS Billing 監控服務的start-up,而 Amazon 本身也提供Billing Alert 讓你監控你的花費。

最後列出關於雲端安全的七大威脅 (7 deadly sins of cloud computing 七宗罪)
  • Shared Technology Vulnerabilities
  • Account/Service Hijacking
  • Data Loss / Data Leakage
  • Insecure API
  • Malicious Insiders
  • Interception or Hijacking of Traffic
  • Nefarious Use of Service 


延伸閱讀:
[1] 雲端安全聯盟台灣分會
[2] 蔡一郎的部落格

2013年1月16日 星期三

Subdomains 和 Subdirectories 對於SEO的影響? 想太多先合併再說....

圖片來源:photobucket

先來檢討一下之前為什麼要分站?其實是想作個實驗,依據之前文章"精實創業之虛榮指數(Vanity metric)"裡面提到的,所有所有的決策都是要根據實驗結果,也就是:
  • 觀察→假設→實驗→分析→結論
  • 觀察→新假設→實驗→分析→結論
而每個實驗都要有個前提假設,我的假設是不同的Topic 開不同的Blog 對於讀者來說比較友善,也更可以集中訪客族群,我的幻想情境如下:

情境一:

一個靠著搜尋合掌村點燈日情報的訪客來到這個部落格,也許會想找找看這個部落格有沒有其他有趣的文章,卻發現都是一堆看不懂的東西,於是馬上離開,管你有沒有跟旅遊相關的其他資訊,也不會想要訂閱,因為這不是旅遊部落格。

情境二:

一個靠著搜尋Agile 相關議題,如Scrum大師講座 (Emerson Mills) 連進來的訪客(應該是個工程師來著~),可能會想看看這傢伙還有研究啥東西,卻意外發現還有遊記和情報!?這時這個訪客可能會因為技術文章而訂閱,但是自動忽略旅遊文章 。

所以觀察結果呢?

透過Google Analytic (見笑死)觀察,查詢合掌村情報的烙跑率100%~XD
(好啦~也許是這篇真的很廢,看完覺得沒啥東西馬上就跑了...),所以至少情境一命中,而情境二也命中,也就是來看技術文的,至少還會點一下目錄看看還有沒有其他東西可以看...


因此根據情境一的假設,我自己解釋如下:

如果我不分站則透過搜尋旅遊文近來的人不容易成為我的訂閱戶,沒辦法建立旅遊品牌 (反正你是能多常出去玩~ ╮(╯▽╰)╭),還不如多多建立專業技術形象。

所以不管是Sub-domains 和 Sub-directories 對於SEO的影響這對我來說只是個假命題,因為一來我流量根本沒有那麼大,自以為不同Topic開不同站對讀者比較好只是自找苦吃,還是乖乖顧好一個就好。

可惜Blogger都沒辦法像Git 或是 Subversion一樣,爽就開branch,做完實驗就Merge回去。(廢話!誰像你這麼無聊),所以實驗完了,現在應該要把好威啪啪走Merge回Trunk了。

最後應該還是要回歸當初要寫blog的自我期許,而不是走火入魔的在沉迷於所謂的SEO,畢竟內容才是王道,如果寫了一篇篇空泛的文章,SEO 作在好又如何?又不是真的靠這個賺錢....

如果還想了解Sub-domains 和 Sub-directories 對於SEO的影響,請看以下延伸閱讀吧

延伸閱讀:
[1] Blog Placement for SEO: Subdomain vs. Subdirectory (and Other Options)
[2] Subdomains vs Subdirectories – What is best for SEO
[3] Subfolders, subdomains and new domains: Where your blog should live
[4] 搜尋引擎最佳化: subdomain OR subdirectory

2013年1月13日 星期日

正式升級howie.tw



新年新希望,既然都想要好好的經營blog,要玩就玩真的不要玩半套的,所以最近就開始嘗試著去了解關於SEO、網站經營...等知識。

另外讓我苦惱的就是我到底要不要把專業文,跟旅遊文分開,因為收視族群應該差很多,但明明就是一個流量小的部落格,再拆分下去流量應該更會小的可憐吧,在跟網路行銷專業的Believe討論過後,才了解到如果要經營部落格名氣,甚至要拉廣告贊助,業界注重的是PR (Page Rank),而PR都是針對Domain Name在綁定的,如果我的blog都放在blogspot這樣只是把rank送給blogspot,但是我又不想自己架站,blogspot在Google的加持下,真的越來越好用,也非常的穩定,因此最簡單的方法就是去申請自己的Domain Name,所我就馬上去申請了屬於自己的Domain Name。

目前規劃如下:

主站 - 好威的Living Lab  (以前叫做阿貝的Living Lab)
副站 - 好威啪啪走 (主要負責旅遊相關文章)
副站 - 人體實驗中心 (理論上應該是Gwen小姐負責...)

希望掛在共同的Domain Name下面真的有加乘效果~:P

其他的就慢慢研究慢慢改進吧~


[限時情報]累積里程數的撇步 - Agoda 訂房優惠

圖片來源:達美航空

常有人在問為什麼我,我又沒常飛來飛去,也不是信用卡大戶,為什麼可以累積那麼多里程數換機票呢?要怎樣靠累積哩程數換機票出去玩呢?在這邊分享一下,主要靠三種途徑:

所以想要累積里程數,隨時就要注意這些優惠訊息,如果嫌麻煩至少也要在計劃出國前幾個月開始收集資料,在決定要做哪間航空公司之後,就要開始思考要刷哪張卡,有無其他累積優惠方案...等

今天要介紹的就是所謂的聯合促銷活動,話說Agoda是我最常訂旅館的網站,他也許不是最便宜的,但是由便利性和價錢來考量算是最得我心的,而且又有積點現金回饋活動,所以好好規劃一下真的可以省下多錢,而最近Agoda 跟好幾家航空集團都有合作推出加速里程集點活動,所以要在這邊分享一下,如果最近有要出國的可以注意一下唷~

我比較常累積的是亞洲萬里(Asia Miles),不過我也有累積一點達美航空的里程數(這邊另外寫一篇來介紹達美航空SkyMiles)

亞洲萬里 Asia Miles


亞洲萬里官網訊息如下:
Agoda.com加入「亞洲萬里通」 帶來三倍里數優惠
為慶祝Agoda.com加入「亞洲萬里通」成為旅遊及消閒夥伴,現推出三倍里數優惠!只需於推廣期內透過Agoda.com預訂酒店並完成住宿,消費每10港元(或其相等幣值)可賺取3倍「亞洲萬里通」里數。

推廣期:
2012年11月15日至2013年3月31日
由此處去訂房:Agoda asiamiles

Delta 達美航空


達美航空限時優惠,即日起至2013年2月28日止,只要您惠顧「飛凡哩程常客計劃」合作夥伴,無論是預訂假期活動、大啖美食或是線上購物,皆能再享25%的額外哩數。

由此處去訂房:Agoda SKYMILESR Partnership


[聲明:我是小咖,小站,所以這不是廣告文~所以歡迎Agoda來找我下廣告...XDDDD]


2013年1月12日 星期六

[教學] 關閉瀏覽器Java Applet 功能避免安全漏洞

圖片來源:java security exploit

[2013.01.14 Update:可以更新Java SE 7 Update 11 Released 解決這個問題]

昨天看到許多看起來恐怖的新聞標題(例如:Inside:Java 出現重大安全漏洞,美國國土安全部呼籲全球使用者停用奇摩新聞:美國土安全部警告:Java爆重大安全漏洞!任何PC恐遭攻擊 應立即停用),寫的好像電腦裝了 Java 就會被入侵,那這樣全世界成千上萬的系統都是用Java寫的那不就慘了!? 但是實際去 CERT網站 -  Java 7 fails to restrict access to privileged code,說嚴重其實也沒那麼嚴重啦 (老師有交代危險的網站不要亂逛~:P)

原來主要的原因是由JRE plug-in provides its own Security Manager 造成的漏洞,會使不被信任的untrusted Java applet 取得權限完整的存取權限,進而去做壞事,那到底怎樣的系統容易出問題?會被拿來幹什麼是?根據CERT網站的描述:
By convincing a user to visit a specially crafted HTML document, a remote attacker may be able to execute arbitrary code on a vulnerable system. Note that applications that use the Internet Explorer web content rendering components, such as Microsoft Office or Windows Desktop Search, may also be used as an attack vector for this vulnerability.

簡易解決方法就是關閉瀏覽器Java Applet 或是 Java Plugin,因為其實真的很少用到:

  • Chrome – 再URL列輸入 “chrome://plugins/” . 你可以看到所有被enabled 的Plugin, 找到Java然後把它關閉.
  • Firefox – 從 工具( Tools) > 附加元件(Add-Ons) . 在 Plugins 到到Java 然後關閉它 [1]
  • Safari –  從 Safari > Preferences. 到 Security 設定把“Enable Java”的選項勾掉. (但是要注意 Safari 因為他跟作業系統已經綁的很緊密,所以其實還是有一定程度風險)
  • IE - 你還還在用IE啊?....XD

進階解決方法:

在安裝JRE的時候透過參數設定 (WEB_JAVA=0 ) 關閉在瀏覽器使用Java
Oracle:Setting the security Level of Client


只是恐嚇沒有提出解決方法的文章是不道德的~~╮(︶︿︶)╭

誤人子弟的教學文更是不道德~~所以如果我有寫錯還請指教~~(抖)

Reference:
[1] How to turn off Java applets (FireFox)



2013年1月9日 星期三

Agile Meetup - 失敗的 agile 經驗 與 Agile East 2012 巡禮



這次應該是第三次還是第四次參加AgileCommunity.tw Meet-up了吧?話說 Agile Community tw 算是個年輕的組織,一直一來都在摸索找尋更好的分享與討論方式,因此本著Agile Incremental improvement 的精神,每次聚會完大家都會一起檢討並且找尋改進的可能性,所以這一次聚會除了5min sharing talk外,還增加了TAD Talks為了就是讓每次聚會更有主題性。

因為根據前幾次5min分享的經驗,來參加的人來自各種不同類型公司,有開發專案的,有開發產品的,有大公司的,有Startup, 所以分享的主題可能就會非常多類型(發散), 而且實行的程度也有蠻大的差異,有些人跑完整的Scrum,有些用Kanban,更多的人是只取Agile的精神,或是執行其中的幾個方法(Daily meeting or User Story ...等),不過這也更讓大家了解到台灣業界的狀況,以及大家遇到的困難。

2013年1月3日 星期四

利用Maven 開發 Hadoop 系統,要注意的版本問題



圖片來源:自制


昨天犯了一個低級的錯誤,害我浪費了一整天的時間在檢查到底是Maven出錯,還是Mac 的Eclipse 有問題,還是我架設的artifactory沒設定好,結果最後發現的原因讓我吐血.....因此特別記錄起來提醒自己,希望大家不要跟我一樣犯同樣的錯誤...Orz...


昨天發生的問題就是我在Maven設定Hadoop相關Lib的版本(Hive,Hbase....等),以為大家的groupId應該都是一樣的,設定好後發現Eclipse 一直再噴Warning說缺檔案,但是最神奇的是去local Repository看,該有的檔案都存在,只是很明顯都是錯誤的jar檔(每個檔案都只有幾KB),所以我就開始懷疑是不是公司網路有檔?還是我Artifactory有設錯?甚至我都懷疑到Mac 的 Juno是不是還有Bug....混戰了一整天之後才發現原來是Hadoop某個版本之後groupId大搬風,所以我的設定根本是錯誤的....WTF....


首先是Hive的版本

0.8.0 之前的版本設定如下:

<dependency>
    <groupid>org.apache.hadoop.hive</groupid>
    <artifactid>hive-common</artifactid>
    <version>${hive.version}</version>
</dependency>


而0.8.0之後的版本設定如下:

<dependency>
    <groupid>org.apache.hive</groupid>
    <artifactid>hive-common</artifactid>
    <version>${hive.version}</version>
</dependency>


沒錯就是他搬家了~~~> <


再來是Zookeeper,這純粹是腦殘,我原本以為設定如下:

<dependency>
    <groupid>org.apache.zookeeper</groupid>
    <artifactid>zookeeper</artifactid>
    <version>${zookeeper.version}</version>
    <exclusions>
        <exclusion>
            <groupId>javax.jms</groupId>
            <artifactId>jms</artifactId>
        </exclusion>
        <exclusion>
            <groupId>com.sun.jdmk</groupId>
            <artifactId>jmxtools</artifactId>
        </exclusion>
        <exclusion>
            <groupId>com.sun.jmx</groupId>
            <artifactId>jmxri</artifactId>
        </exclusion>
    </exclusions>
</dependency>

但是實際上應該是這樣:
<dependency>
    <groupid>org.apache.hadoop</groupid>
    <artifactid>zookeeper</artifactid>
    <version>${zookeeper.version}</version>
    <exclusions>
        <exclusion>
            <groupId>javax.jms</groupId>
            <artifactId>jms</artifactId>
        </exclusion>
        <exclusion>
            <groupId>com.sun.jdmk</groupId>
            <artifactId>jmxtools</artifactId>
        </exclusion>
        <exclusion>
            <groupId>com.sun.jmx</groupId>
            <artifactId>jmxri</artifactId>
        </exclusion>
    </exclusions>
</dependency>



另外要注意的,就是Hbase cdh3 之前的版本會depend on thrift 0.2.0 但是在目前外面的public repository上是找不到的,所以我目前的解法就是把它exclude掉,然後另外include 0.5.0以後的thrift

<dependency>
    <groupid>org.apache.hbase</groupid>
    <artifactid>hbase</artifactid>
    <version>${hbase.version}</version>
    <exclusions>
        <exclusion>
            <groupId>org.apache.thrift</groupId>
            <artifactId>thrift</artifactId>
        </exclusion>
    </exclusions>
</dependency>


<dependency>
    <groupid>org.apache.thrift</groupid>
    <artifactid>libthrift</artifactid>
    <version>0.5.0-cdh</version>
</dependency>



結論:

使用前請先參考Cloudrea 的Repositoty

https://repository.cloudera.com/artifactory/cloudera-repos

[1] Using the CDH3 Maven Repository

[2] Using the CDH4 Maven Repository


2013年1月2日 星期三

[行前規劃] 濃飛巴士定車票攻略




2013年開工第一篇就是如何訂上網濃飛巴士的車票 (代表接下來這一年我要努力玩!?)

話說到高山或是白川鄉最省錢的方法就是做巴士,而經營這條線的就是濃飛巴士,關於去合掌村的線路圖請參考這個時刻表

不過很奇怪的是,濃飛巴士官網雖然有中文介紹很親切,但是卻沒有線上預約系統,要預約請到J-bus網站去預約,下面是預約的教學畫面,要預約前記得要先註冊,請參考好威啪啪走的 --> 日本旅行訂位-如何產生中文姓名的片假名

這邊要注意事項:J-bus只開放一個月前預約,所以只能出發前一個月上網預約,如果要訂來回票,就必須等到回程的一個月前才能預約 (所以這幾天我超緊張,等著搶票)

首先進入會員頁面,選擇上面的空席照会進入預約流程









首先會看到這個地圖,但是不要理他,畫面再往下移,会看到文字版每一個區的路線。





選擇 (東海-->濃飛乘合自動車)






在這一頁選擇(高山●白川鄉-金沢)這個連結。





再來就是選擇你出發的地點,和出發的時間,然後查詢是否有空位


我選擇的是1/31從金沢站前出發,可以看到有三個時段可以選擇,目前都是有空位的。如果你只要單程票就選(片道予約),如果要選來回票就選(往復予約)。









因為我選擇的是來回票,所以接下來就是要選擇回程票的時間





同樣的回程票道金沢站前有三個時段,選擇你想要的時段





兩個時段都選擇好後,他會要你填乘車人數,以及你的基本資料,一個人最多六張票,然後最重要的就是你的Email要填對,這樣預約好才能寄資料到你信箱


全部都填好会讓你做最後的確認


預約好後,就可以到信箱收信摟,那之後要去哪裡領票呢?


其他情報:

[1] 有關濃飛巴士到白川鄉的訂票問題
它是由與乘車日的乘車時刻算起一個月前至上車前半小時,在他們各售票窗口都可受付!但讓遲至十分鐘前可能位子會被補位的坐走囉,每預約一段車程它給你一個預約編號,進出白川鄉正常要預約兩段(一進一出),兩段都各有一個預約編號。只要有這個編號後,到當地的售票處(高山濃飛Bus站,白川鄉的濃飛Bus站,金澤的北陸鐵道Bus站)將這個編號給他們後,就可以花錢打票了。
[2] 濃飛巴士,金澤到白川鄉
金澤的取票地點在金澤火車站東口左側的FORUS百貨中心一樓,北陸鐵道公司取票。
[3] j-bus 拿票問題

1.在網站上預約好車票後,系統會給你一組密碼(予約番号),到了日本後,找家便利商店(この路線はセブン-イレブン・FamilyMart・ LAWSON(JTBHTA)での発券をお取扱いしております,如果是以上顯示,就表示7-11、全家、LAWSON等都可付款取票),便利商店里會有付 款取票的端末機。
2.在端末機上依網頁上的教學流程,及予約番号,一步步操作,最後端末機會印出一張付款取票單。

3.拿著這張付款取票單到便利商店的櫃台付款,店員會用另一台印車票的機器,印出電子車票。

4.搭車當天帶著電子車票,直接到車站搭車,把票交給司機或收票員即可。

或者:
不透過便利商店系統付款取票,搭車當天直接到車站售票處,以予約番号向售票員付款買票也可。


[4] 金澤→白川鄉→高山交通方式 (圖文版)