2013年12月19日 星期四

Neo4j: Cypher語法筆記:Match語法

MATCH syntax in Neo4j is for search.
Search the node, relationship...

*******

基本上Neo4j的語法組成跟SQL很像。
MATCH跟SELECT的功能有點像。
就是挑出符合條件的資料,最後可以配合WHERE過濾。
MATCH符合的內容,最後被RETURN。
就是一個簡單的Cypher語法。

Neo4j官方有提供「沙盒」(Sandbox),你可以任意操作。

先介紹節點的搜尋
如果你想要Neo4j列出所有的節點,語法如下:
MATCH (n)
RETURN (n)

MATCH跟RETURN都是保留字,可以用小寫也沒關係。

節點是可以有標籤的(label)
如果要找到所有標籤為NCBI的節點
MATCH (journal:NCBI)
RETURN journal

journal就是代表節點的變數,:NCBI如同認知,是個標籤
(複習一下,標籤就是冒號:起頭,冒號右邊是標籤名稱)

現在要找有關係的節點(Related nodes)
以官方網站的語法例子為例
MATCH (director {name:"Oliver Stone"})--(movie)
RETURN movie.title

就是先找出一個path,主要是導演跟電影的關係
然後要回傳的是電影節點中的標題屬性
你可以測試RETURN的變化,去了解Neo4j的語法規則。
例如RETURN movie,會RETURN所有的東西,不只是Title

像那個director,也只是一個暫時指派的變數而已。
目的是方便理解,movie也是。
在實際設計的些語法的時候,本來就要考量可讀性跟維護性。
重點在{name:"Oliver Stone"}的地方,這是MATCH的關鍵。
要找到所有跟Oliver Stone有關係的電影。
(這是已經假設案例跟電影有關,Neo4j的沙盒網站預設的)
不信你可以把director跟movie換掉試試看。

繼續是搜尋有向的關係,網站的例子是
MATCH (martin {name:"Martin Sheen"})-->(movie)
RETURN movie.title

要找的是屬性名為Martin Sheen向外發展的節點
如果你從官方的沙盒細看,會發現查詢結果的關係是:ACTED_IN
指的是Martin Sheen有演過的電影,以他為中心出發的有向查詢

至於這層有向的關係是什麼呢?請繼續看官方的範例
MATCH (martin {name:"Martin Sheen"})-[r]->(movie)
RETURN r

也就是把上面的範例小改,多加入一個表示關係的r變數
現在RETURN查詢結果r,顯示所有的關係

關係可以是未知,只要有關係就全部列出來,如上例。
也可以列出已知關係的節點,像是我要知道誰有演某部電影。
官方網站的範例語法如下
MATCH (wall street {title:"Wall Street"})<-[:ACTED_IN]-(actor)
RETURN actor

這兩行語法,重點的地方在{title:"Wall Street"}還有 <-[:ACTED_IN]-
請特別注意我把關係的箭頭方向有列出來
就語意上的意思是我要找誰有在Wall Street這部電影中演出。
執行之後就會列出演員了。

再多一個小變化,就可以有多重關係的查詢結果
MATCH (wall street {title:"Wall Street"})<-[:ACTED_IN|:DIRECTED]-(person)
RETURN person

現在要找的是Wall Street這部電影中,導戲跟演戲的人
原本那個actor也順勢換成person,目的是方便理解。
現在不只是找actor而已。

查詢多重關係也可以,例如想知道誰演某部電影、導演是誰。
然後現有條件只知道演員,可以用下列的範例語法:
MATCH (charlie {name:"Charlie Sheen"})-[:ACTED_IN]->(movie)<-[:DIRECTED]->(director)
RETURN charlie, movie, director

查詢結果會回傳三個「節點」,這是原本的範例內容。
一樣,可以自己變化。例如只回傳電影標題、導演名稱:
RETURN movie.title , director.name


想知道某演員演過的電影之間的可能關係,包含電影跟演員。
然後只要一到兩層的關係就好。
(我的理解是可能只想知道被查詢演員有跟誰又共演一齣戲。
這是根據下列查詢語法回應而推斷的)

MATCH (martin {name: "Martin Sheen"})-[:ACTED_IN*1..2]-(x)
RETURN x

執行之後只會列出被ACTED_IN關係最少一層,最多兩層的節點


*******

先寫到這樣,之後想到再補。
或者有需要可以參考官方網站資料,有非常華麗的功能。
例如尋找最短路徑。




2013年12月18日 星期三

Neo4j: Cypher語法筆記:呈現形式 Pattern

Pattern is an important part of Cypher syntax.
To represent the node, property and relationship.

*******

Pattern不知道該怎麼翻譯比較好。
說是模式、形式應該都可以,重點在內容的呈現。
對於Neo4j這個NoSQL型態的圖資料庫而言。
每一筆資料可以是一個節點Node
節點的表達就是用( )包起來呈現
例如節點的名稱叫做a01,這節點就是(a01)

每個節點之間可以有關係,就是用箭號的形式表達。
請發揮你的想像力,用簡單的ASCII字元聯想
--> 總共三個字元構成了一個箭號

一對一的關係,徐玄是少女時代的成員
(SeoHyun)-->(SNSD)
把徐玄指向少女時代就好

如果要表達一對多的關係呢?例如:徐玄跟Jessica都是少女時代的成員。
可以寫成兩個表達式
(SeoHyun)-->(SNSD),(Jessica)-->(SNSD)
甚至更直接,一個就夠了
(SeoHyun)-->(SNSD)<--(Jessica)


一個包含節點與關係的組合,稱為Path

標籤可以作為節點的標記,呈現方式是 :標籤名稱
例如 :SNSD
有一個叫做徐玄的節點,註記是少女時代:
(SeoHyun:SNSD)
使用標籤也是沒問題的,例如要多一個韓國人的標籤:
(SeoHyun:SNSD:Korean)

節點可以定義屬性,Neo4j裡面很像是一個JSON的表達方法。
屬性需要包在節點裡面,然後用大括號呈現。
例如一個節點徐玄,姓名Seo Hyun 性別是女。
然後生日部分,出生年是1991,日期6月28日。
在Neo4j的完整呈現方式如下(請容許我都翻成英文):
(SeoHyun {name:"Seo Hyun", gender:"female", year: 1991, date:"Jun.28"})

屬性的定義是為了日後的查詢操作。

節點跟節點之間原本沒有關係,可以讓他們發生關係。
並針對這個關係命名。
例如Jessica跟Crystal有姊妹的關係。
就可以這樣呈現 (Jessica)-[:SISTER]-(Crystal)

關係也可以是有向性的,例如Eric知道Jessica
因為Jessica是公眾人物,而阿宅我本人只是一個知道他的人。
Jessica並不知道我是誰 (如果知道了就好)
(Eric)-[:KNOWS]->(Jessica)

看得出來吧?基本上箭號那個線條就是兩個-構成 --
然後在中間插入[: 關係名稱] 就是有向的關係定義了

不若用來描述節點的標籤(label)可以有很多種
關係只能有一種,並沒有「開放式的交友關係」
所以可以用 | 來呈現多種關係的存在。

例如(Eric)-[:KNOWS|FANS_OF]->(Jessica)
語意上就是Eric知道Jessica或者說Eric是Jessica的粉絲。
關於關係的建立,該如何寫入資料庫中,之後說明。

當然,雙向關係也是可以的。
例如在夢中Jessica也認識Eric我本人。
(Eric)<-[:KNOWS]->(Jessica)


關係還有遠近之分,也就是有幾層?
現在就不要再舉少女時代的例子了,不然等等就被投訴
最實際的,就是朋友之間的關係。
我們生活中常常有以下對話:
「張三是那個我叫李四的朋友的朋友」
用Cypher表達節點與關係,就是
(Me)-->(李四)-->(張三)

這就是兩層的關係,可以用層級表達我跟張三的關係
(Me)->[*2]->(張三)

如果關係更複雜,想要表達我跟張三間3到5層的關係。
就是(Me)->[*3.. 5]->(張三)

表達3層以後的關係 (Me)->[*3.. ]->(張三)
表達小於5層的關係  (Me)->[*.. 5 ]->(張三)
表達任何曾的關係  (Me)->[*]->(張三)

套用到實際查詢上的語法範例:
MATCH (me)-[:KNOWS*1.. 2]-(friends)
WHERE me.name = "Eric"
RETURN friends.name

意義就是請Neo4j幫我找出跟我有認識的朋友關係
這邊定義了兩個臨時宣告的變數節點me還有friends
因為是變數,還要更明確的指出我的名字是Eric
所以有結合WHERE的條件與property是name要等於字串"Eric"
最後再回傳friends的節點名字

看得出來被指到friends的節點,應該都具備跟Eric節點類似的內容。
至少有name這個屬性就是了。

此外,整個「路徑」也可以用一個變數接受傳遞
例如 path = (me)-[*3.. 5]-(potential_friends)
在使用MATCH查詢時,最後如果是RETURN path
就會列出所有3到5層的關係

*******

這篇網誌還沒有講到更複雜的關係建立。
只是單純的介紹Neo4j的一些呈現形式。
建議先搞清楚({})這樣的節點跟屬性包裝,有助於後續的關係推廣。

原始的官方參考資料在這,覺得我寫的很爛請直接參考原文。


您也許同樣感興趣的文章:

Neo4j: Cypher語法筆記:一般表達形式 Expressions






Neo4j: Cypher語法筆記:表達形式 Expressions

The article described the expressions of Neo4j.

*******

Neo4j的Cypher語法支援了下面幾種表達形式。
如同多數的程式語言一樣,數字、字串、函數等方法都有支援。
以下是我簡單整理給自己看的,主要參考Neo4j的官方文件。

數字型態,主要是整數與小數,小數只支援到雙倍精確度(Double)
呈現時就是直接輸入數字,例如6, 7, 13, 12.05

字串 String,可以用單引號或者雙引號,夾帶長串的文字
"Eric Zero", 'Zero', "Neo4j"

變數,就是變數。英文習慣是Variable,但是官方文件說是identifier
可以是文字或者文字帶有數字,並且有區分大小寫。
在送出查詢使用時不用先宣告變數。
x, X, xYz, x1, 1xZ都可以,就是不能用單獨數字。
不然會被當成是一個數值內容。
每個物件本身會被視為一個物件。

屬性(Property),變數下的細節層級。
例如一個變數可以有長度或者名稱。
不要忘了,這個變數本身就是一個物件。
例如gene.name,指gene這個物件下面有一個名叫name的屬性。
gene.length,指gene下面還有length的屬性存在。
關於屬性,可能要自己建立一個資料節點(node)後比較有感。
這個之後再聊。

參數,用大括號包起來。
例如{param}、{0}

集合(collection of expression),使用中括號包裝。
裡面的元素用逗號區隔,集合內可以都是同樣型態的資料。
或者夾雜數字、字串、參數等混合。空集合也可以。
["a","b"]、[0,1,1.1,2]、["a2", 2,"test"]、[ ]

函數,跟多數程式語言一樣,用函數名與小括號。
括號裡面再放入輸入的物件,例如 length( str )

路徑表達 (path-pattern),實際上是「關係」的呈現為主。
這是Cypher很有特色的一點,用ASCII Art的方式呈現。
例如A指到B,就是(A)-->(B)
A跟C都指到B,可以用兩個方法呈現。
第一種:(A)-->(B) , (C)-->(B)
第二種:(A)-->(B)<--(C)

很有趣吧!包起來物件的左右小括號,看起來就跟圈圈一樣。
配合橫線跟大於等於的符號形成一個箭頭。

在語法表達式中,等號具備傳值的功能。
規則是右邊的值給左邊。
例如LengthOfSeq = seq.length
意思是LengthOfSeq這個變數的值,是來自於物件seq的length屬性。
length屬性如果是字串,LengthOfSeq收到後就是字串。
如果是Numerical, 收到後就是數值。

跳脫字元也是必要的,因為特殊字元需要特殊的處理方式。
有程式設計經驗的人都知道,Cypher也承襲多數語法慣例:
\t    Tab字元
\n   換行字元
\b   退位字元
\\    斜線
\'    單引號
\"   雙引號

跳脫字元 Escape Character的使用非常重要
尤其配合正規表示法(RegEx, Regular Expression)很普遍。

CASE,是一種條件表達式。符合條件的會被執行。
請看一下這個簡單的Cypher範例:

MATCH n
RETURN CASE  n.eyes
WHEN 'blue'
THEN 1
WHEN 'brown'
THEN 2
ELSE 3 END AS result


上面例子中,先找到資料節點n。
(MATCH等語法,另闢一文說明)
之後回傳n.eyes的屬性值作為CASE條件判斷用途
當值是字串blue傳回1,字串brown傳回2
其他都當作3(預設值),CASE到此結束以END表示
result這個值就是THEN的條件判斷後結果

*******

表達式的筆記先介紹到這裡,有錯誤煩請指教。

參考的原始官方網頁





2013年10月10日 星期四

在新加坡申請烏克蘭簽證

Apply Ukraine Visa at Singapore is not difficult.
If you have any kind of Singapore resident pass.

*******

過去要到烏克蘭,對我似乎是非常的遙不可及。
台灣的外交處境讓一些國家的簽證難以取得。
沒有大使館的情況,除了麻煩之外就是花錢。
怕的就是連花錢都沒辦法解決,或者根本花不起。
尤其是中亞、前蘇聯的國家,讓我望之卻步。
不過在今年開始生活在新加坡之後,一切出現了轉機。
可以去申請一些過去難以取得的簽證。
就先從號稱非常難申請的烏克蘭開始吧!

在台灣要申請烏克蘭簽證,爬文過主要兩個方法:
1. 去中國申請,最好準備中國旅行證
2. 去日本申請,可以透過國際快遞郵寄

前者有執行上的困難,中國旅行證不是人人都辦得到。
因為只在港澳台以外的地方簽發。
辦理時多數會被要求當地國家的居留證。
後者現在好像不行了,日本的烏克蘭大使館好像關閉了。
就算可以,辦起來一樣不便宜。

在新加坡辦烏克蘭簽證,比我想像的容易。
前提是你要有居留證,不管是永久居民、學生、就業准證。
這點我親自跟大使館的辦事員確認過了。
沒有准證,「持台灣護照」基本上只能到中國辦理。
(如果不想浪費時間,歡迎直接離開這個頁面)

烏克蘭駐新加坡大使館,在Raffles Place。
地鐵站B出口旁的Singapore Land Tower。

到了1樓大廳,請先換證。
跟警衛說你要到16樓的大使館。

到了16樓出了電梯之後,左轉看到一個樓層告示。
可以清楚看到烏克蘭大使館的方向,往右就是了。

首先會看到這個看起來很像商辦的辦公室,其實是烏克蘭大使館。
不過不要急著衝進去,因為辦簽證不在這裡。
除非你跟大使很熟,那就另當別論了。
請繼續大使館的左邊走。

這個小小的門,外面放了一排椅子。
不要懷疑,這就是領事事務窗口(Consuluar Section)。
主要的業務就是簽證發放、文件公證。
如果是烏克蘭居民,還可以申請補發護照。
像我這種外國人,頂多就是去辦簽證而已。

請先按門外的電鈴,如果外面有其他人在排隊就不必了。
先等前一個人出來,然後輪到你再進去。
裡面當然不能拍照,以下用文字說明一下細節。


首先辦簽證要準備的東西如下:
1. 護照,這個沒有肯定不行了。
2. 居留證,一定要正本。他們會檢查,然後拿去影印。
3. 保險證明。旅遊險的保險證明。
4. 銀行對帳單(Bank Statement)。銀行每個月寄給你的對帳單。
這個對住在新加坡的人應該不陌生,很多都沒有存摺了。
5. 簽證申請表格,表格請點這裡
表格上面記得貼證件照片。
6. 住房證明。
Hostelworld上面的Booking通知Email印出來即可。
如果你有其他高級飯店的定房證明也行。
7. 機票購買證明。
有預約班機到烏克蘭任何城市的證明。
如果不是透過飛機,可能可以用火車票證明。

報告一下我的狀況,我只有買去程的機票。
然後跟簽證官談話時,表示回程我要搭火車。
我有出示從莫斯科離開的購票證明,她接受了。
保險證明跟銀行對帳單,第一次去時沒有。
被要求領簽證那天補。
銀行對帳單,目的是證明財力。
我有當場拿出信用卡,結果是不被接受。
她就是要你的紙本對帳單。
保險證明,這個投保證明要英文的。
如果不知道怎麼保,請用我blog旁邊的Worlds nomads投保。
我就是印出World Nomads的投保成功Email。

通過「口試」之後,就是要去繳錢了。
付款方式只有收個人支票還有當場去存。
我沒有新加坡的銀行個人支票,只有當場去存。
反正他們就是不接受現金或者支票以外的匯票。
簽證官小姐會給你UOB的存款單。
存款金額根據簽證類別有差異,她會幫你填上。
最便宜的費用就是新幣103元(真的有夠貴)
不收你貴一點,怎麼在這麼貴的地方租辦公室
兩次入境的價格是157,多次242元。
以上是2013年的價格,SGD對台幣的匯率大概24左右。
請擬定好你的旅遊計畫,再決定要辦哪一種。
當時我表示要搭火車,就有被問到是否要多次簽。

UOB的存款單什麼都不用寫,金額她幫你填好了。


然後,立刻拿去隔壁過了馬路的UOB大華銀行存進去。
(請不要自作聰明,拿ATM轉帳到UOB的帳號,給明細表)
直接到地下室的營業大廳排隊就好,這個請有耐性。
根據經驗,新加坡的銀行永遠是人滿為患。

錢繳好之後,請保留存款單另一聯。
再回Singapore Land Tower的16樓大使館繳回。


然後領事小姐就會給你一張取件單(Collection Slip)。
上面交代取件日期,還有要補的文件。
如果你這次辦有缺什麼東西的話。
(有沒有覺得有些掉漆?堂堂大使館竟然用gmail而不是自己的網域)

一般而言,審核的時間至少是一個星期。
如果是一些國家的居民,審核時間要兩倍甚至一個月。
相關規定,自己看烏克蘭大使館的網站。

申辦之前,我有特別先寄信去問:
「我持台灣護照有新加坡准證,會不會被拒簽?」
不忘補一句
「如果有拒簽的可能,我就不花錢先訂機票了」

領事館的回答倒也幽默:
「基本上都會過,只是很花時間。(time consuming)
除非你是恐怖份子,這種就不會過了。」

小姐給我的取件時間是一週,一週之後我拿到簽證了。
印刷算是精美的簽證,上面是看不懂的烏克蘭語。
(我就是喜歡這種看不懂的西里爾字母)
我只當場跟她確認:只有10天?
她的反應有些訝異,回:「怎會?一般都是給一個月」
接著說,她同事放假了,沒辦法追查。
不過根據申請表格上的離境時間,應該是不影響。

所以強烈提醒:申請表格上的入境、離境日期不要亂寫

簽證長這樣,上面的國家代碼是TWN。
非常好,烏克蘭雖然迫於兩岸政治現實。
但是卻沒有矮化我們的國格。

*******

以上大致就是這樣,祝大家好運!
請備齊所有文件之後再送件。
聽說在台灣請旅行社代辦烏克蘭簽證,收費15000台幣。
對住在海外的台灣人,這是另一種方便吧!
雖然台灣護照沒有新加坡護照好用,但是簽證審核已經算容易。

2013年7月26日 星期五

MacBook Pro 15.4" 2012年版開箱文

My new MacBook Pro 15.4" 2012 Mid edition. This machine is Singapore version.

******* 
我的MacBook Pro連續送了幾次換了幾張主機板都修不好。
從台北修到大阪、新加坡都沒有改善。
現居新加坡的我送到當地的維修商,經過檢測與反應之後:
「蘋果公司決定給我一台新的MacBook Pro 15" 」
原本在用的那台2010版就收回,給我一台目前最新的2012 Mid。 
在國外換機,所有的東西都要「本地化」。
例如鍵盤變成英文、插座變成英規的版本。
同時,蘋果公司允許我加價升級。
原本那台就有客製化硬碟過了,於是就換給我7200轉的版本。

因為工作的需要,我決定換成高解析度的防炫光螢幕。
貼了140新加坡幣,於是新電腦螢幕變成高解析度霧面的版本。

 以下是開箱圖跟簡單的介紹
(好像現在都流行開MacBook Air,沒看到有人開2012的15吋MBP) 
幾乎都沒有變過的紙箱,外箱的目的是保護內裝。
新加坡的物流公司是DHL,這台電腦從上海的倉庫寄來的。
Apple很慷慨,給的是全新的機器,而非整新品。
保固也是完整的一年,跟買新機一樣。
看外箱就知道是新品,整新品的外箱是白色的。
外箱底部的貼紙有簡單的機器規格說明。
目前MacBook Pro 15吋只有一個型號,其餘差異就靠客製化。
例如這台機器有客製化7200轉750GB硬碟加上霧面的高解析度螢幕。
(官方版SSD實在太貴了,Apple的價格我寧願自己買)
外箱的另一面,嗯,這是10.8 Mountain Lion的預設桌布。
所以裡面附的作業系統就是10.8無誤。
拆箱,裡面就是機器本體。
現在講求環保,沒有過度的包裝保護。
旁邊是電源供應器,附上延長轉接線。
因為在新加坡,所以是英規的插頭。
現在「經典款」的MacBook Pro還是用MagSafe的電源供應器。
不若Retina已經改用MagSafe 2。
看得出來,連接頭的方向也還是原本這種一條的。

我比較不喜歡這一種,覺得他絆到後自動分離的反應很慢。 
另外,雖然是英規的插頭,裡面也有附台灣、日本、美國這種。
所以買港版、新加坡版有稍微賺到的感覺?
內附的一小包裝,已經沒有附光碟片啦!
連早期MBA裡面那種包含OS的USB隨身碟也沒有。
除了說明書之外是Apple的貼紙。
這貼紙我不知道已經有多少了。
拿出機器,表面有一個膠模。
翻到背面之後,有一個軟體授權協議。
撕開就代表同意且生效了。
不想破壞這貼紙的作法就是從旁邊取出機器。
新加坡版的機器,後面好像比台灣機少了幾個圖案。 不過都不重要,序號的雷射烙碼是我們要關心的。
非常乾淨的英文鍵盤,這是我第一台英文鍵盤的機種。
F3跟F4的按鍵圖案已經改了,以前是Dashboard呢!
看得出來Dashboard已經要慢慢走入歷史了。
加價升級的螢幕,改用霧面之後就沒有黑框了。
變成MacBook Air那種銀框設計。"MacBook Pro"的字體也是。
拆開背版來看內裝,硬碟是冷氣牌(Hitachi)的7K750 7500轉硬碟。

光碟機是UJ8A8,就是已經非常成熟的8X DVD-DL燒錄器。 
這是我覺得經典款重要的地方,光碟機某種程度還是有必要。

原廠安裝的記憶體是美光的DDR3-1600 2GB兩條,共4GB。
這個建議還是自己升級吧!因為官方升級價很貴,而且只有到8GB。
拿那個錢自己換16GB都還有剩。只是現在記憶體真的好貴啊!

蘋果也是在製造垃圾,單條2GB根本是廢物。
尤其有在用虛擬機器的人都知道。
接著來看看I/O,2012版的重點是多了USB 3.0。
MiniDP的螢幕輸出接頭也整合了Thunderbolt。
其他還有SDXC讀卡機,外加Line In的音效孔與FW 800。
這對我蠻重要的,不像Retina還要買FW 800的轉接線。
有線網路內建也非常重要。
首次開機之後載入10.8的安裝設定。
請不要急著幹掉整個系統,不然iLife 11的授權會不見啊!
15吋MacBook Pro都是Core i7處理器了。
這台還有獨立繪圖卡,Kepler架構的GeForce GT650M。
低階款的i7 2.3GHz處理器配上的是512MB的GDDR5繪圖記憶體。
這點遠不及雙A的產品,即使中低階款都有1GB甚至2GB的記憶體。

雖然CPU內建的繪圖卡有GMA 4000,但是獨顯對我很重要。
對CUDA有需求的我是如此,Kepler架構的GPU比之前的強多了。 

一拿來電池循環次數是0,這是一台真的全新機啊!
******* 

就這樣,開箱文到此為止。
這時候得到這台機器有點尷尬,也許Haswell架構的機種就要登場。
但是第二代Core i處理器的效能進步有限,新架構重點在省電。
有沒有Haswell對我都不重要,反正有新電腦用就好。

您也許同樣感興趣的文章:
MacBook Pro 15.4 Core i5開箱
在新加坡的授權維修商QCD修理Mac

2013年6月9日 星期日

Samsung Galaxy Express

Samsung Galaxy Express is a smart phone which support LTE.
Middle level specification and the price is good at Singapore.

*******

最近想找一支可以測試Android App的應用程式。
希望本身規格不要太差,而且要可以支援LTE為佳。
新加坡這邊早就有LTE上路了,當然要選有這功能的。
我只有以下的規格考量:
1. 知名品牌,不要用華為或是中興
2. 支援LTE,可以在香港或者新加坡使用
3. 使用Android 4.1以上的版本
4. 處理器一定要用Qualcomm的
5. 預算在一萬台幣以內,不綁約

就這樣,條件非常明確。
只有一支手機幾乎符合我的條件:Samsung Galaxy Express
這一支在台灣沒有上的手機,有看到香港有賣。
他的規格如下:
GT-i8730
2G四頻、WCDMA HSDPA850/1900/2100 HSPA
LTE 800/900/1800/2600
Android 4.1.2
高通Snapdragon MSM8960 1.2G雙核心處理器
GPU Adreno 225
內建1GB RAM、8GB儲存空間
(我知道8GB很弱,但是可以用SDHC擴充就算了)
螢幕是AMOLED 4.5吋 480*800的WVGA解析度
照相機畫素500萬、前置鏡頭1.3百萬
802.11 a/b/g/n、藍牙4.0
有NFC的功能

有人應該覺得這根本是Samsung的One SV
大致上我的要求都達到了,外型也算不錯
今天看到有很殺的價格,所以就買下來
(One SV在新加坡的價格不便宜,我也不想買hTC)
DSC08036
除了手機本體,還送保護貼一張
加上一個我不知道要幹嘛的夜燈
DSC08039
包裝非常簡單,環保印刷
DSC08040
現場已經先拆開檢查過了
DSC08042
背後標上主要的規格
DSC08045
打開外盒之後就是手機,加上要寄回的保證書
DSC08048
配件非常簡單,簡配就是了
DSC08060 DSC08063
電池是2000mAh的
DSC08070
手機的外型,大致上承襲Galaxy S那個系列的外型
DSC08051
跟iPhone 4S比一下大小,4S的螢幕還真小
DSC08072
背面的樣子
DSC08054
撕掉保護貼
DSC08076
上方只有耳機孔,外加可以要用剝開的背蓋
小貼紙強調使用Qualcomm的4G晶片
這很重要,因為我不信任Samsung自製的Exynos處理器
DSC08073
底部只有Micro USB,同步資料或者充電用
DSC08075
側邊沒有太多的按鈕,非常簡潔
DSC08055 DSC08056
剝開背蓋,也非常簡單
DSC08077
非常好,是韓國製造的
DSC08079
使用Micro SIM還有micro SDHC記憶卡
都有用按彈出的機構設計
DSC08081
開機之後的樣子,螢幕很漂亮
DSC08083
開始進入設定畫面,內建的語言比想像
主要是新加坡本地人口有在用的
中文的部份,是簡體中文
DSC08088
有送Dropbox 50GB兩年
DSC08094
開箱文就簡單寫到這裡

*******

大致上對這隻手機非常滿意,使用上非常的順
有NFC的功能對我很實用
因為我常常忘記我的NETS裡面還有多少錢
DSC08103
八達通也可以讀取,但是官方的App現有問題
用其他高手寫的讀卡 (缺點是不能顯示交易記錄)
DSC08098
幾乎都是用iOS的手機為主,個人覺得Android其實蠻棒的
至少透過瀏覽器直接Google Play雲端安裝很方便
流暢程度,跟iOS真的不相上下
(我不知道怎麼我的4S現在非常不順)
Galaxy Express硬體功能的部份,雖然沒有旗艦
但是我已經很夠用了,尤其有NFC
(Apple真的不能一直用iOS很棒來要消費者買單,雖然它很棒)