2014年1月30日 星期四

峇里島之旅 - Lia Cafe JIMBARAN 海鮮餐廳



話說都住在金巴藍了怎麼能不好好來享用一下這邊的海鮮呢!我推薦這間在 Tripadvisor 評價非常高的餐廳 Lia Cafe,經濟實惠又好吃,尤其是他的龍蝦和螃蟹一定要點來吃!點法也很簡單,菜單上有寫各種海鮮類每公斤的價錢,然後再餐廳門口選好你要吃的東西和份量就 ok,英文爛也沒關係,店家很貼心的準備海鮮的英文與圖片對照表。


2014年1月29日 星期三

各種虛擬化技術支援AES-NI 狀況

圖片來源:GRT (不管怎樣都要找張圖來就對了~XD)


什麼是Intel AES-NI


Intel® 進階加密指令集 (Intel® Advanced Encryption Standard New Instructions,Intel® AES-NI) 是Intel在2008年3月提出的在x86 CPU 上的擴充指令集,主要是想透過硬體來幫忙加速AES的加密解密,根據官方說法比起單純用軟體軟體加解密還要快上3~10x倍,下圖是datacenteroverlords的實測結果。



2014年1月28日 星期二

Uber 叫車服務初體驗

圖片來源:Uber

用手機叫賓士來接送,下車就是這種感覺帥氣吧!?

話說 Uber進入台灣市場也有一陣子了,不過一直都沒有想用的慾望,所以也沒有花時間去了解他,不過今天帶小貝回醫院打預防針,等待的時候剛好看到Facebook牆上有人貼出分享連結,而且點這個邀請連結就可以得到300元試乘禮金,想說申請一下來試試看也無妨,之前一直有的印象這是高級車接送(台灣區目前都是賓士),那應該會很貴吧?不過Uber有一個強大的地方就是預估花費,你先輸入上車地點,和目的地,他就會給你預估的金額。

從石牌做計程車到台北長庚要三百左右,用Uber叫車預估也是300-400之間,只比計程車貴一點!?再加上有第一次是乘禮金那何不趁這個機會試試看。

首先要先安裝手機App:

註冊最重要的就是填手機號碼和信用卡卡號,Uber是採用信用卡收費,然後會把帳單寄到Email信箱。

一進入APP首先就會看到你目前所在位置,然後附近有哪些Uber的車再行駛,以及預估叫車後大概多久車會到。 (因為車子不多,像是中午和下班尖峰時間通常比較難叫到車~:P)當你點下去設定上車地點後,他會會跳出另一個畫面要你選擇目的地。



第二步就是選擇目的地。



一旦確認以後他就會開始幫你搜尋和呼叫附近的車子,根據我在車上的觀察是,他會把叫車訊息broad cast 到附近的所有車子,然後由司機來按下確認按鈕決定要不要接這個客戶,所以也有可能的狀況就是搜尋了很久,沒有車子或是沒司機想接你~XD


一旦確認後,就會顯示司機的資訊(評等、車號、車型),以及車子在哪裡大概還要多久才會到。



除了App畫面上會顯示外,當預定確認後系統也會自動傳訊息給你。




過幾分鐘後你就會看到一台賓士來接你啦~:D




另外設定頁面有個優惠的地方,可以輸入Promote Code 如果你有拿到的話。





下面是從網頁版登入的畫面,這種邀請機制跟Dropbox 的方式很像,每邀請一個朋友,如果他做過車你可以得到300元的獎金,然後上限是15,000元 (也就是最多邀請50人)



看完是不是很有興趣呢? 以後帶小朋友出去,或是去見重要客戶都可以嘗試看看Uber叫車唷,如果覺得這些資訊還不錯,還請幫忙用我的邀請連結申請~XD



https://www.uber.com/invite/1950h



2014年1月27日 星期一

各種語言熱門 CMS(Content Management System) 整理一覽表

圖片來源:enterprisedojo


不會寫程式也可以輕鬆架網站?這應該就是CMS(Content Management System) 最吸引人的地方吧,而且老實說很多時候就算你會寫程式和網站,也不一定真的需要自己重頭刻一個,如果能Based on CMS 上面在去客製化速度也比較快。(以接案或Time to Market 的Startup?) 

對於長時間都寫後端的工程師也算是一種救贖吧?Orz...

PHP版


大家最耳熟能響的CMS應該就是以下這三個,我想也不需要特別在介紹

Java版


Java 界一如往常的,Solution 多的眼花撩亂,隨手列出幾個比較熱門的Solution


NodeJS版

那現在最火紅的NodeJS呢?Google 了一下也真不少耶...不知道會不會有全面取代PHP的一天
  • keystonejs
    • Node.js content management system and web application platform built on express and mongo
  • calipso
    • Calipso is a simple content management system, built along similar themes to Drupal and Wordpress, that is designed to be fast, flexible and simple ... and of course this site is running on Calipso!
  • Hatch.js 
    • Hatch is an open source CMS platform, fast, flexible and extendable, built from the ground up to support today's expectations – simple, beautiful, responsive and social.
  • Apostrophe 2
    • Apostrophe is a content management system designed for maximum flexibility with a minimal learning curve.The interface is ergonomic. All content editing is performed in context.
  • Nodize
    • Nodize is an open source Content Management System for Node.js, written in CoffeeScript.
  • ghost (比較像 Blog 平台)
  • jslardo
    • jslardo is a sort of a social cms, based on node.js and mongodb. users are able to register to the application, create their own models (mongoose schemas), views, controllers, websites and pages. all management is done without writing code, and all user contents (the data, but also models/views and controllers) are shareable between registered users.

Ruby on Rail 版


  •  Adva-cms
    • adva-cms lives in vendor directory and keeps your main app directory clean and dandy. So you can reclaim app directory and use it
      only for your own application files.
      
  • Browsercms
    • BrowserCMS supports larger teams of editors, has a robust set of features as part of its core, allows for varied permission models, and is customizable via modules.
  • Casein
    • Casein is an open-source CMS for Ruby on Rails, originally developed by Spoiled Milk.
  • Locomotivecms
    • LocomotiveCMS is designed to save your time and help you focus on what matters: front-end technology, standard development process and no-learning time for your client
  • Radiant CMS
    • Radiant is a no-fluff, open source content management system designed for small teams
  • refinerycms
    • Refinery CMS is perfect for creating custom content manageable websites. We use "The Rails Way" where possible so you have to learn as little as possible to get started!
 看到了這麼多種選擇,下一步就是選擇自己擅長的語言,然後找個好上手和修改的來用摟..:P

2014年1月26日 星期日

2014年物資捐獻整理一覽表

圖片來源:nipic

又到了歲末年終大掃除的時候,在打掃的時候是不是會發現多有用但是很少用到,或是有用但是卻不再需要的東西?丟掉又很浪費,甚至對地球也是一種傷害....(每次再大掃除時都會覺得人類實在太會製造垃圾,尤其是很多無用的雞肋小贈品...Orz..) 但是如果要回收或是捐獻又不知道有啥管道,所以趁這個機會把網路上可以收集到的物資捐贈活動都整理一下,給大家參考參考。

整理了一下發現真的很有很多意想不到的需求,如USB充電器,SD讀卡機,LED燈泡...等,真的建議大家有空可以點開來看看,因為我覺得看到我Blog的應該以科技業較多,所以特別標記有需要3C用品的。

捐書



捐物資




捐衣服



其他




2014年1月25日 星期六

峇里島之旅 - Ahimsa Beach Villa Bali



峇里島~充滿 Villa 的度假勝地,正因為Villa 太多了 (保守估計應該有上千間吧?) 要如何做出選擇選也是令人苦惱的,常見的選擇策略有幾種:

  1. 跟團(or 自由行) 
    1. 就由旅行社決定吧!
    2. 在固定的組合內由價錢決定吧!
  2. 自助旅行
    1. 瘋狂吃到飽策略:一天一Villa(誤),不過既然是要來度假何苦把自己搞的那麼狼狽呢?
    2. 旅遊達人粉絲策略:相信網路上那些部落客或是旅遊達人就對啦~
    3. 矩陣分析策略:根據自己的需求分析(適合做功課控)

而我們最後選擇的就是矩陣分析策略, 列出幾點我們認為很重要的條件來加以篩選:
  • 要有Private Pool (這樣給小朋友玩水比較方便)
  • 要有機場接送
  • 要有飯店班車服務
  • 要有嬰兒服務
  • 最好是有適合一群朋友/家人在一起的Villa (我們一團六人,所以最好一棟有三間)
  • 價錢合理 (畢竟太便宜沒好貨,什麼都好的一定也都很貴)
  • 最好離海灘近一點
  • 最後再參考各大旅遊網的評分,參考標的:
    • Agoda
    • Tripadviso
    • Booking.com

下圖就是我們的篩選出來的評比 (旅遊不忘分析啊~遠目)




最後我們選擇了Ahimsa Beach Villa Bali,現在回想起來真的一點也沒讓我們後悔!

Ps. Agoda 不知道位啥把Ahimsa Beach 翻成非暴力海灘...XD

地理位置


由下圖可以看到,Ahimsa Beach Villa 位於金巴蘭區,離海邊走路大概5分鐘,離超商小夜市走路大概也是五分鐘的距離,非常方便。此外不論要到Bali Collection (Shopping mall),水明漾區,Kuta區做計程車大概6USD以內都可以到。



室內景觀


一走進Villa 第一眼看到的就是專屬的Private Pool (每天都會來清理~很乾淨)~ 叮咚叮咚~




面對Private Pool的客廳裡擺著可以讓人慵懶的躺在上面的沙發。



客廳旁就是廚房和小吧台


在吧台上喝著Villa奉上的果汁,馬上就有放鬆的感覺~



在往裡面走就是餐聽與房間,我們這棟Villa有三間房間。



非常寬敞舒適的房間!


廁所也是異常的大...在這邊上廁所會有...在室外上廁所的fu...XD


可以看到外面天空的浴缸,在裡面泡澡也讓人有放鬆的感覺~


走出Villa不到五分鐘的路程就到了海灘,離海灘遠一點的好處就是不會瘋一吹到處都是沙子


黃昏的海灘最適合情侶來漫步(感謝林董友情入鏡),而前方不遠處就是金巴蘭有名的海鮮餐廳區唷~下一篇再來介紹海鮮餐廳




如果我們列出來的條件剛好也都符合你的需求,就別猶豫趕快來預定 Ahimsa Beach Villa Bali  開始規劃你的假期吧~XD

或是透過Agoda來訂房:


(利益揭露:如過透過這個連結到hotelscombined 或 Agoda 訂房,我可以拿到一點回饋唷~)


2014年1月15日 星期三

[筆記] Software Define Network (SDN) 的歷史緣由



前一陣子有SDN的領導廠商來公司演講,主題是SDN的發展與近況,聽了以後還蠻有收穫的,所以趁有空把筆記整理一下,SDN的崛起主要有兩大原因:

近乎壟斷的市場 - CISCO 霸業


傳統Network Device 廠商,為了要應付相容性問題,所以都必須要implement 非常多的Protocol(幾百個),這是非常花錢又費工的,因此過去20年高端網路設備幾乎都是由CSICO所掌控。

虛擬化的困境


“With Virtualization, we cloud create a VM and attach 1TB storage to it with 60 second, but then we have wait 24 hour for the network administrator to make change” - Peter krey , Private Cloud ,

在虛擬化的世界網路遇到的問題:
  • Network should be deploy in real time (你可以create vm 但是你不容易deploy vm ,都被網路限制)
  • Network bandwidth should expand on demand (vm 的network traffic 都是被 core router 所限制)
  • Network function should be deploy on demand.
  • VM should migrate across internet (hybrid cloud concept)
  • Not Enough VLAN tag (以前傳統VLan 的tag 只思考到4000左右的規模,但是現在規模更大,就完全不夠用)

因此從2009年隨著虛擬化議題的炒熱(到後來炒的Cloud),網路問題越來越大,也有越來越多的相關領域都受到網路的限制,如:
  • 4G (因為速度跟wifi一樣快,會消滅enterprise wifi ,以後mobile VPN 就會非常重要 )
  • Mobility
  • Data Center virtualization
  • Video Digitization
  • Cloud computing (Iaas—>Paas—>SaaS)
  • Big Data

這些問題的Root cause 就是就算整個Infrastructure 都虛擬化了,都可以dynamic調配,但只有Network 仍然是fix 無法動態變動。

另外一個問題就是要如何根據Business model的規模,要隨時動態調整你的Infrastructure?在過去任何的Business 都是先規劃預估網路流量,會需要多少Router,多少IP,然後再去規劃建置網路,但是隨著Cloud 的興起,越來越多的Startup 都希望Infrastructure 能隨著Business model 的改變與企業規模的增長動態與快速的改變,VM可以多開,機器可以多買,如果一旦牽涉到要搬家,換DataCenter 那可就是大工程,網路可就沒那麼容易調整。


SDN如何解決問題?


SDN 讓switch 不是做決定,而只是follow order,然後把decision 都centralize,這樣一來還有幾個好處,傳統網路硬體都是vertical Integration,但是換成SDN 就是horizontal 去切API,所以硬體就都只是white box device ,硬體都比CISCO 還快,所以這些新公司只要專注再軟體,也就是硬體可以由任意廠商開發(白牌),其他一切要執行的就由控制軟體來決定。


後面就是他們產品的介紹,就不方便多透漏了~:P



2014年1月14日 星期二

[記錄] Use virFree in order to release memory acquired from libvirt

圖片來源:digitalnewsasia


這幾天都在嘗試解一個Bug...Libvirt-java Binding Library (透過JNA)在 windows 64bit 的環境執行會一直crach,但是32 bit 環境卻不會?!不過老實說當看到以下jvm crash dump 訊息,還真的一點頭緒都沒有...

# A fatal error has been detected by the Java Runtime Environment:
#
#  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00000000770532d0, pid=2984, tid=7160
#
# JRE version: Java(TM) SE Runtime Environment (7.0_45-b18) (build 1.7.0_45-b18)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (24.45-b08 mixed mode windows-amd64 compressed oops)
# Problematic frame:
# C  [ntdll.dll+0x532d0]
#
# Failed to write core dump. Minidumps are not enabled by default on client versions of Windows
#
# If you would like to submit a bug report, please visit:
#   http://bugreport.sun.com/bugreport/crash.jsp
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#

---------------  T H R E A D  ---------------

Current thread (0x0000000001e9d800):  JavaThread "main" [_thread_in_native, id=7160, stack(0x0000000001f20000,0x0000000002020000)]

siginfo: ExceptionCode=0xc0000005, reading address 0x0000000001eeaa38
.
.
[略]
.
.
Stack: [0x0000000001f20000,0x0000000002020000],  sp=0x000000000201f1b0,  free space=1020k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C  [ntdll.dll+0x532d0]

[error occurred during error reporting (printing native stack), id 0xc0000005]

Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
j  com.sun.jna.Native.free(J)V+0
j  org.libvirt.Library.free(Lcom/sun/jna/Pointer;)V+4
j  org.libvirt.Domain.getOSType()Ljava/lang/String;+23
j  test.main([Ljava/lang/String;)V+279
v  ~StubRoutines::call_stub

.
.
[略]
.
.
---------------  P R O C E S S  ---------------

Java Threads: ( => current thread )
  0x00000000095c8000 JavaThread "Thread-0" [_thread_blocked, id=4192, stack(0x0000000009ea0000,0x0000000009fa0000)]
  0x0000000007e02800 JavaThread "Service Thread" daemon [_thread_blocked, id=4056, stack(0x00000000091d0000,0x00000000092d0000)]
  0x0000000007dfb800 JavaThread "C2 CompilerThread1" daemon [_thread_blocked, id=4460, stack(0x0000000008a90000,0x0000000008b90000)]
  0x0000000007ded800 JavaThread "C2 CompilerThread0" daemon [_thread_blocked, id=2424, stack(0x0000000009060000,0x0000000009160000)]
  0x0000000007dec000 JavaThread "Attach Listener" daemon [_thread_blocked, id=5272, stack(0x0000000008800000,0x0000000008900000)]
  0x0000000007dea800 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=4508, stack(0x0000000008f10000,0x0000000009010000)]
  0x0000000001ddf800 JavaThread "Finalizer" daemon [_thread_blocked, id=2548, stack(0x0000000008da0000,0x0000000008ea0000)]
  0x0000000001dd9800 JavaThread "Reference Handler" daemon [_thread_blocked, id=3800, stack(0x0000000008bb0000,0x0000000008cb0000)]
=>0x0000000001e9d800 JavaThread "main" [_thread_in_native, id=7160, stack(0x0000000001f20000,0x0000000002020000)]
.
.
.
.

一大堆系統資訊根本看不出所以然,唯一比較看的懂得只有標記紅色的部份,看起來似乎是JNA 在Call Free Memory的時候出問題。

於是乎開始瞎子摸象,可能是JDK 版本問題? JNA版本問題?Libvirt 問題? Windows DLL for 32bit or  64 bit?

還好我又弱又懶不死心的Google相關的關鍵字,找到了這篇[libvirt-java] [PATCH] Use virFree in order to release memory acquired from libvirt,已經有強者遇到者個問題也解決了!!結果答案是...
The root cause is that the libvirt DLL uses MSVCRT as its runtime
library, whereas the jnidispatch DLL of JNA uses a different one.

At runtime, when calling org.sun.com.jna.Native.free() the OS function
RtlFreeHeap is called with an invalid Pointer that was actually
allocated by MSVCRT's malloc.

ps. MSVCRT .DLL is the Microsoft C runtime library

God....這讓我非常好奇要具備怎樣的本職學能才可以由這些dump 中看出這些問題?並且找出這是使用兩種不同的DLL造成的(Libvirt DLL 與 JNA 的 jnidispatch DLL ),更不用說還能提供Patch...

特此記錄一下...Orz...

2014年1月9日 星期四

你知道為什麼 .io 網域正夯嘛?

最近發現一個有趣的現象,就是越來越多網路startup公司都改用 .io的網址(最近比受矚目的就是 github.iospring.io),這難道是繼.com潮後的.io潮嘛? 上網搜尋了一下,原來大家換 .io是因為以下原因:

  1. .com 的網域日漸飽和,要搶到一個好記得名稱已經很難了,但.io 還很多
  2. .io 比 .com更短更好記 (我覺得這是行銷說法..XD)
  3. .co 的網域比較貴,目前也比較少網路蟑螂去收刮囤積 (49 美金/ 72 英鎊起跳...)
  4. 因為.io 剛好有I/O (Input/ output)的意義,所以剛好很多網路公司拿來當API網域用

下圖是 The Rise of .io Domain Names for APIs統計的進幾年來 .io 的申請趨勢,不過以數量級來看的確還在很早的階段(離泡沫和瘋狂還很遠~:P)



不過這應該也是賣網域業者的炒作?相關的文章都是出自於賣網域業者~:P


更多延伸閱讀:
  1. .io 查詢網站 nic.io
  2. How to set up your first .io domain (with Heroku)

2014年1月7日 星期二

Hadoop 終於要進入JDK 7的時代了




離上一篇文章 何時Hadoop 才能正式轉換至 JDK7 ? (2013.4.25)又快過了一年了,讓我們繼續來追蹤更新的進度吧,根據 HadoopJavaVersions wiki 最後一次更新日期 (2013-10-25 17:10:21 by JunpingDu),Hadoop 已經正式可以使用在JDK 7 上面了,不管是Hortonwork 和 Cloudera 都已經有正式支援與驗證的版本。

其實現在才發現已經有點Lag了.....只是今天剛好看到Cloudstack 也在討論是否要換到JDK7 - [Proposal] Switch to Java 7,才赫然發現wiki已經更新了....Anyway...讓我們拍拍手進入JDK7 的時代~XD

2014年1月5日 星期日

[自助旅行101] 從台北看峇里島 - 地理位置比較

圖片來源:Goolge


話說如果要選擇台灣人出國海島度假的前幾名一定有峇里島,根據Balidiscovery 2013年初的資料,台灣人是峇里島觀光來源排名第七名。

 圖片來源:Balidiscovery

但是相信很多人可能都是跟團旅行,再不然就是下了飛機就窩在Villa沒有出來了,對於峇里島可能都不是很瞭解。

不過如果選擇以自助旅行的方式去峇里島玩,那最重要的第一件事就是把峇里島的地理資訊搞清楚,包含:
  • 重要的地名(行政區)
  • 景點的位置
  • 景點與景點的相對距離
因為有了這些資訊才比較好規劃該住哪裡,可以去哪裡玩,可能會花多久時間,因此參考許多旅遊書我把峇里島區分為三大塊,分別是
  • 布列連區 - 最原始自然的峇里島,適合深度旅遊的背包客去
  • 克隆孔區 - 阿貢火山下的古王國歷史區
  • 觀光區 - 傳統旅客最常聚集的地方,包含大家熟悉的烏布、金巴蘭、水明漾...等



知道了大概的行政區劃分,下一個問題就是要搞清楚大小和距離,不然如果住在南部的觀光區,不小心又排了一天來回看火山,那應該會瘋掉。

首先Wiki上看到峇里島的資訊 5,780平方公里....到底有多大其實一點概念也沒有,好在現在有Google map ,以等比例跟台灣比一下,原來峇里島大小大概是台灣從基隆到苗栗這麼大,所以看到後就知道不該排一個住在基隆然後一天來回苗栗的行程~:P


不過像我們這種第一次到峇里島玩的,應該就只會先在南區玩,所以我們在把地圖放大一點跟台北市比較,北區到南區大概也有新店到陽明山的距離,所以在拉車上應該也要有所注意。



最後再把南區的幾個重要景點區框出來,這樣就對峇里島就比較完整的概念啦!接下來就比較容易規劃要住哪裡和去哪裡玩摟



最後最後...又是造福Ingress玩家的時間啦~XD 讓我們來看看峇里島上的Portal 分布情形!!果然觀光客比較密集的地方也是Portal比較密集的地方。



放大看南部觀光區的分佈,看樣子最密集的就是在水明漾和塔庫區...呼呼..峇里島我來摟..



謎之音:玩Ingress就是要這樣才好玩,不要再那邊小鼻子小眼睛的搞小動作...