2011年12月27日 星期二

[筆記] Connect java client to a node.js server with Thrift

Thrift是由Facebook開發的一套RPC system, 廣泛的被很多軟體應用, 像是HBase, Hadoop, Cassandra... 也支援了許多語言 , 可以跨語言做RPC
但....Thrift的document真是么壽的少...少的實在有夠可憐....本來想說實作一個java client連到node.js寫的server, 搞半天東挖挖西挖挖後才搞定.....
首先是安裝到我的mac就把我搞暈了(加上感冒本來就暈), 一開始我用macport裝, 但裝完後, 找不到libthrift.jar, 所以只好上網站抓source來build, 所幸可以只build java library的部份, 不用整個thrift都build, 這部份倒不難, 用ant就搞定了
裝完thrift後, 寫好程式, build java版本時就出了問題了, javac說TClient不是個interface, 追進code才發現, 我自己build的jar是最新版的 (0.8), 但port幫我裝的是0.6, 產生的codes完全不相容, 後來改用brew裝(就是不想從頭從Source build), 終於是0.8版的了(port上的也太舊了吧)
這邊實作一個簡單的加法器, Server side是跑node.js, Client是java, 有空在來試試別的組合, 建一個新檔"computer.thrift", 內容如下:


這邊定義一個簡單的Service - "Computer", 只含有一個方法"add", 內容很簡單, 就是用來回傳a+b的值, "namespace java com.thrift.gen"的用途就是指定產生的java code的package, 如果沒指定就是沒package, i64指得就是64bit integer
接下來就是要用thrift產生對應的程式碼:
thrift --gen js:node --gen java computer.thrift
這行指令同時產生for node.js的版本(在gen-nodejs目錄), 跟java版本
Server implementation
先安裝thrift module (for node.js)
npm install thrift
實作server.js:


在Server裡面實作add, 由於是asynchronous的, 所以結果由callback回傳
至於Client端的部份也蠻簡單的:


在網路上找到的sample, 都使用TSocket, 但用TSocket在這範例, client/server都會掛掉, 追了server code發現, node.js server default應該是用Framed transport, 所以在Client端加上TFramedTransport就OK了

2011年12月8日 星期四

[開箱] 送自己的遲來的生日禮物 - 來自奧地利的耳機 AKG K-701 (非Beats喔.. XD)

想買個生日禮物給自己想半天終於決定是這個了, 只是今天收到已經早過生日很久了.. :P

剛收到, 聲音雖然還沒開, 不過已經很不錯了, 不過現在評論還太早, 所以先來寫寫開箱文吧..

P1060973

耳機大, 盒子大是很正常的, 不過這包裝的設計不錯, 有種開箱的驚喜感...

一打開箱子看到第一個字是:

P1060974

"Expect".....的確...還蠻期待裡面的東西...

再來的是

P1060976

"and discover".....這層開下去就真的會發現耳機了.....

P1060977

喔耶..我買K-701而非K-702就是因為這個"白"....而且這又多一個底座(雖然這也沒很好)....整個就有高尚感(我不要潮Beats.. :P)

P1060979

耳機拿出來之後又有這個字: "Perfection"

Expect...and discover...Perfection!

P1060980
全身照
P1060981
白色大耳罩...挺舒服的
P1060982
上頭這應該是皮的吧

 

剛剛聽了一整個小時, 有流行樂, 古典, 爵士....有層次每種樂器分離感不錯, 鋼琴聲好清脆喔.. :P

2011年12月3日 星期六

[開箱] Electrolux伊萊克斯ZUS3960超靜音塵蟎吸塵器

今天家裡多了部 Electrolux UltraSliencer, 這是我們家第二部Electrolux的吸塵器, 前一支是手持立式的

本來先是去大遠百的專櫃看, 不過價錢比起老婆在網路上看到的還貴很多, 也沒附塵蟎吸頭, 加上專櫃小姐解釋半天, 我還是搞不懂, 三萬多的吸塵器跟一萬多的到底差哪裡, 買東西還是要買實用, 總不能說貴的就好

後來跑去老婆在網路上看到的, 竹北簡單生活館(在經國路上), 價位跟百貨公司的還差真多, 多了一支價值五千的塵蟎吸頭的價錢還跟百貨公司沒附的一樣價錢, 贈品還一堆, 老闆親切, 而且解說詳細, 讓我們覺得買這隻就很夠用了, 不過買到三萬多那麼頂級的, 加上這個是為了容易過敏的小遠, 這台就已經滿足該有的功能了(靜音, 吸力強, HEPA 12濾網)

先看看贈品:

P1060927

塵蟎吸頭, 多送的HEPA 13濾網, 膳魔師保溫瓶, 集塵袋...還頗夠誠意的

外包裝盒

P1060928
P1060930

第一層

P1060931

第二層, 本體出現

P1060933

外觀 & 集塵袋

P1060941
P1060944
P1060945

HEPA濾網

P1060950

塵蟎吸頭

P1060957

來張全身照

P1060968

跟iRobot Roomba合拍一張吧!

P1060970
最後...靜音測試:

聲音似乎好像還蠻小的, 跟一般吸塵器比起來, 比起Roomba似乎還安靜一點