2015年12月31日 星期四

A leader's framework for decision making

From wiki - Cynefin

前陣子公司內訓,Hubert 老師出了一堆經典的Paper讓我們讀: A leader's framework for decision making,英文不夠好看這種管理學的文章真是格外吃力,第一次讀完時感覺抓不到重點,還好有中文版 - 決策於渾沌之中看完才比較有感覺。


2015年12月6日 星期日

Docker on Mac Parallels 11

圖片來源:devops.com

話說上一次用Parallels 已經是兩年前(Parallels 9 ),那時候因為Parallels 會跟Virtualbox 打架,而且那個時後boot2docker 也沒有支援Paralles 的環境 ,所以只好放棄使用,不過技術演進非常快速,現在boot2docker 也被消滅了,取而代之的是docker-machine,而docker-machine 也支援Parallels 得環境了,趁著這次大降價趕緊買來試試看。

參考Parallels 放在github 上的 plugin - docker-machine-parallels教學 ,不過這邊要注意的是docker-machine 0.4.0 以前要使用另一個就專案 docker-machine + parallels driver,下面的教學是給最新版 0.5.1 + 使用的。

2015年10月26日 星期一

mac grep: warning: GREP_OPTIONS is deprecated; please use an alias or script



最近mac 更新到el capitan 版本,陸陸續續有發現一些小問題,其中一個就是升級了grep ,但是我使用的dotfile YADR 卻沒有更新設定,所以在使用grep 時會出現以下的warning訊息:

 mac grep: warning: GREP_OPTIONS is deprecated; please use an alias or script


找了一下YADR 的zsh 是使用prezto 的theme ,而GREP_OPTIONS這個參數是設定在:

zprezto/modules/environment/init.zsh

所以只要到這個檔案,參考patch 把原本的

if zstyle -t ':prezto:environment:grep' color; then
- export GREP_COLOR='37;45'
- export GREP_OPTIONS='--color=auto'
-fi

改成

if zstyle -t ':prezto:module:utility:grep' color; then
+ export GREP_COLOR='37;45'
+ alias grep="$aliases[grep] --color=auto"
+fi


打好收工~

YARD 得安裝檔可以參考我的gist - createMacEnv.sh

2015年10月21日 星期三

關於Azure CLI Tools 0.9.10+ 的認證問題




記錄一下最近遇到的問題,在ASM mode 下原本上傳檔案到blog storage 只需要AccountName 和 Account Key 就可以了,但是在Azure CLI Tool 在 0.9.7 以後出現了了一個Bug:
Trace source code 發現,必須要先azure account import  {subscription file} 或是 azure login 才能取得某些資訊,不然讀不到這個值就會出現這個錯誤....

不過到了ARM mode 下這個問題也出現了,而且更機車的是,這不是bug 而是change feature,他們為了Security  的因素強制一定要azure login 才行....囧 (我只是要上傳個檔案啊!!)

> azure group list
info:    Executing command group list
+ Listing resource groups
error:   Certificate based Authentication is not supported in current mode: 'arm'. Please authenticate using an organizational account via 'azure login' command.
info:    Error information has been recorded to ~/.azure/azure.err
error:   group list command failed

很多人都遇到類似問題:
在這些issue 中有人提到這是新的架構限制,請參考:Azure automation authenticating to azure using azure active directory

You should now be all set to manage your Azure services with an Azure Active Directory OrgID user and Azure Automation. Going forward, it should be easier to get up and running creating runbooks to automate your cloud processes. As part of this update, we’ve also updated all of our Azure Automation sample and utility runbooks to use this authentication to make it easy to not just get set up but also leverage existing content in our Runbook Gallery.

Probably you are using certificates for authentication. The ARM API uses tokens for authentication. You need to login using org id. azure login -u abc@yourorg.com It will prompt for password. Once you are logged in you should not see the above message. For verification purposes, you can see the tokens and certificates stored in a file named azureProfile.json in .azure directory located in your home directory "C:\Users.azure\azureProfile.json"

那workaround 的方法呢?就是要azure login,打了指令後會出現以下提示訊號讓你去登入:

info:    Executing command login
info:    To sign in, use a web browser to open the page http://aka.ms/devicelogin.
Enter the code B8UCDLERS to authenticate. If you're signing in as an Azure AD application,
use the --username and --password parameters.


這樣真的很麻煩啊 !!!!

---------------------------------
[Update:2015.10.23] 不過微軟的Support 真的很好,馬上就有找出其他方法:

1. 使用其他3rd-party 開發的工具 blobxfer

2. 在使用Azure blog upload 前先export 以下資訊

export AZURE_STORAGE_ACCOUNT=
export AZURE_STORAGE_ACCESS_KEY=
 






Tableau Public 初體驗


之前在趨勢做Data Market Platform 的時候就聽過Tableau,但是都沒有實際體驗過,只知道是一套強大但是不便宜的Big Data Visualization Tools,直到最近公司內的技術分享後,才真的花時間去玩他,發先真的做的很不錯!


Tableau public (free SaaS)版本 的概念就跟之前在趨勢作Data market Place 的概念類似(但是UI 強太多了...Orz..)

Free 版的tableau 可以允許你匯入excel , text file 和 ODate (Azure Market place 販賣的資料),然後你可以在你的Desktop app 上分析資料畫圖,如果你要存檔就只能儲存到他提供給你的cloud 空間share 給別人。

2015年8月22日 星期六

[筆記] 資料者愛好年會主議程 - 大數據的小故事


大數據的小故事 

  • 主講人:車品覺 / 阿里巴巴集團副總裁 (香港人)
  • 實驗
    • 利用LinkedIn 來撈取資料,找出潛在Data Scientist
    • 利用阿里巴巴面試官的評語還找出不稱職的面試官
  • About Data
    • Not every problem is data problem
    • Not every data problem is a big data problem

2015年8月2日 星期日

當JPA 遇到 JSON 偷懶是進步的動力



話說這篇壓了好久遲遲不敢放出來...不過想想放出來讓大家笑笑,讓大家少走點冤枉路也好~:P

上圖是一般系統開發常見的資料流程,不管是先設計Db schema 或是先設計 Object Model,到最後你可能都會遇到兩個問題:
  1. 怎麼把DB Table轉成Java物件
  2. 怎麼把Java物件轉成Json格式傳出去 (常見的就是RESTful API)

[筆記] SSL 檢驗與設定



最近再跟廠商串接服務,結果廠商通知我們的SSL不夠安全!?於是趕緊去找了網路上的SSL檢查服務發現我們等級只有C ,的確有很多修改空間。

有興趣的人可參考以下這兩個服務:

經過掃描發現我們的設定有幾個地方需要改進:

2015年6月6日 星期六

[開箱文] 如何從日本搬珪藻土地墊回來



這次從日本回來很多朋友都在問,且讓我一一為你解答:

1. 珪藻土地墊是什麼?


 參考可以參考這篇文章 - 珪藻土介紹,珪藻土就是珪藻(類似珊瑚)死亡沈澱堆積後變成的,他的特色就是:

a. 珪藻土的孔數是木炭的5千~6千倍,更是可以有效的吸附、分解空氣中有毒化學物質的
b. 除吸放濕氣的機能很優越,在溫度的調節能力也很好
c. 因為本身是鹼性,所以也不會發霉 or 滋生塵螨

2015年6月3日 星期三

[開箱文] 2015年 Dyson V6 Mattress (HH08COM)



說實在的這次去日本前沒有太多時間作功課,會買這台完全都是在飯店裡面研究的...XDrz...

因為家裡本來就有一台伊萊克斯Z3347的吸塵器,但是他實在太大,而且搭配動力吸頭吸起來又吵又熱,所以不太可能每天很勤勞的拿起來吸床,一個星期拿來吸家裡一次已經是極限,所以Dyson 無線充電系列對我來說就很方便,但是V6又有太多型號了,看了令人眼花繚亂,下面是我整理的價錢和型號表 (尚未折扣價)

台灣代購 台灣原廠 Amazon JP
(日幣)
日本BIC Camera
(日幣)
V6 Mattress(HH08COM) 45579 43800
V6 Absolute 18000
V6 Animal 15000
V6 Motorhead(SV07MH) 13300 23900 61679 59800
V6 Motorhead(SV07MHCOM) 71979 69800
V6 Fluffy(SV09HM) 27900 77178 74800
V6 Fluffy(SV09HMCOM) 87380 84800




其實我的需求很簡單如下:

1. 小台又無線,可以每天使用
2. 附的吸頭是專門為吸床墊/沙發材質設計

所以看來看去V6 Mattress 就符合我需求,又小又便宜,如果再加上BIC Camera 折價券

(我是用平版電腦給店員看,就算掃不出條碼,至少可以輸入序號)


另一台V6 Motorhead是幫人買的,大台的用托運,小台可以當手提行李上飛機







V6 Mattress 總共附四個頭,一個管子(不知道啥場景適用?)



使用心得:

1. 吸完枕頭和床墊真的看到香灰~~(恐怖啊)
2. 這台設計是按著按鈕才會吸,一放開就停,所以一直手持又一直按著按鈕手有點酸
3. 其實聲音蠻小聲的
4. 沒搭配動力吸頭的話感覺吸力還好? (反正我是專門用來吸塵螨的~:P)


以上報告~XD




2015年4月19日 星期日

Java Servlet Container Performance Tesing (2)

左邊是tomcat8-apr 右邊是 jetty9-nio

測試情境2

1. 當Web 收到Request 後,系統會產生一組Async 的CompletableFuture Task 去執行,產生CompletableFuture 使用newCachedThreadPool 。

2. 每個Task (Random 產生時間消耗 300~500 ms)

這次改用Ingram 大大推薦wrk 分別測試兩組數據:
wrk -t200 -c 500 -d180
wrk -t300 -c 800 -d180

產生了有趣的結果:

2015年4月18日 星期六

Java Servlet Container Performance Tesing (1)


最近實在好忙啊,都沒時間寫Blog...而且公司好多大大壓力真大~XD

不過我放上面那張圖並不是說我一秒鐘幾十萬上下所以很忙,而是我新接觸的產業對於系統效能是很講究,因為真的是一秒鐘幾十萬上下~:P

以前可以偷懶只要求功能有做出來就好,效能不要太差就好,但是現在的產品對於系統反應速度(Response time )可以說是錙銖必較,所以想盡辦法都得從每個地方榨出效能。

通常一個系統效能可以調教的部分主要有三個部分:OS, Web Server, DB,最近我就先從最基本的Web端著手。

2015年3月2日 星期一

自己的廣告自己測

廣告測試
-----Native Ad---

-----2----

------3---

------4---

------5---

-----------

2015年3月1日 星期日

Jenkins Docker Plugin - 讓你的Build 不用排隊太久的方法一

圖片來源:loof



關於什麼是Jenkins以及使用Jenkins的好處可以參考之前的文章 - 邁向自動建置佈署之路(2) -安裝 Jenkins ,在這邊就不多介紹。在本篇文章我們要介紹為什麼要使用Docker Plug-in? 為了解決什麼問題?

2015年2月22日 星期日

[地中海郵輪之旅] 土耳其 - Izmir


話說當初會選擇個個航程,也是因為想來土耳其玩很久了,但是卻遲遲沒有成行,只好趁這這次郵輪之旅先來見識一下這個迷人的國度,過過乾癮,為啥是過過乾癮呢?因為只有停兩個都市,而且停留的時間都太短了~(在地上翻滾)

這次土耳其總共會停兩個城市,一個是伊茲密爾(Izmir),一個是伊斯坦堡,第一站我們先來到lzmir,照慣例來到這邊之前我也是完全沒有做功課(我只聽過伊斯坦堡...XD),所以就選了一個最便宜的水岸觀光行程。

2015年2月7日 星期六

[地中海郵輪之旅] 希臘 -奧林匹亞運動公園



第三天的行程是到達希臘的卡塔科隆,老實說在來之前也是完全沒做功課的地方~XD

伊利亞(Illia) 省這一區是低度開發的區域,治安良好人煙稀少,希臘主要的出口物品橄欖油就是在這區生產的。

而卡塔科隆(Katakolon)就位於伊利亞(Illia) 省省會-皮爾戈斯(Pyrgos) 市的西方12公里處。卡塔科隆(Katakolon)近郊最有名的觀光勝地便是奧林比克運動會的起源地-奧林匹亞(Olympia),位於卡塔科隆 (Katakolon)東方28公里處。

雖然他是皮爾戈斯(Pyrgos)市對外的一個海港,但其實就是一個鄉下到不能在鄉下的地方,整個小鎮就是靠著郵輪載著,載著一批批為奧林匹亞(Olympia)的盛名吸引來的觀光客,只要遊客走了他們就可以下班休息了....XD


2015年1月15日 星期四

IntelliJ IDEA 與 Redmine 整合教學


接續上一篇 IntelliJ IDEA 自問自答快速整理裡面提到的Task Manager功能(類似 Eclipse  Mylyn)。

設定其實蠻簡單的,只是有些地方需要留意一下。

1. 進入Redmine\設定\認證,把要REST Web Service 勾選起來


2015年1月14日 星期三

IntelliJ IDEA 自問自答快速整理


從Eclipse 搬家到 IntelliJ 的感想....痛苦啊~~

把所有的遇到的問題都整理起來,希望可以幫助一樣痛苦的人(順便記錄以免以後忘了...)