除了自己 Server/NTP Server 的時間外,其他的時間都不應該相信。

作手機 Client 的人應該常常遇到這種問題:User 因為某些原因(像是常常賴床起不來),把手機的時間調快了 5 分鐘。如果用的又是 OAuth 這類會有 expire 機制的 Protocol,就會遇到認證失敗的問題。

一般的解決方法是,利用一台「時間準確」的 Server,提供正確的時間。可以透過 HTTP Header(可以少一個 request),也可以透過一個 API,例如:http://emma.pixnet.cc/index/now。最近的 Google Authenticator 也有類似的機制。

不過,不只是 Client 會有這樣的問題。雖然 NTP 已經很普遍了,但總是會遇到因為設定錯誤,或是防火牆擋掉,或是 blah blah 等等的原因,導致 Server 時間跑掉的情形。當然,也有可能是軟體 Bug 造成的問題,導致 Server 傳回的時間是錯誤的。

最近就遇到這樣一個好玩的現象:寫 Parser 的時候,會看一下 Server 給的 Last-Modified 的 header 來判斷是否要 invalidate cache,結果發現有的 Server 會回傳未來時間…XD

所以,如果你的 Server 有跟 NTP Server 定期對時的話,應該使用自己 Server 的時間,其他任何外部來的時間都不應該相信,一定要檢查合不合理。

HTC One S 使用一週後感想

購入 HTC One S 也超過一個禮拜多一些了,也慢慢適應了 Android 4.0 (ICS) 的一些修改,大概整理一下到目前為止的心得感想。

重量與厚度


HTC One S 比之前使用的 HTC Desire 輕很多,也薄很多。金屬背蓋的感覺很讚。

本來以為灰色會不好看,結果實際拿到手上,還蠻不錯的。比褐色 Desire 好看多了。

螢幕


4.3 吋的螢幕,對我來說還是有點大。單手操作還勉勉強強。One X 的 4.7 吋對我來說應該是太大了。之前的 Desire 也是使用 Amoled,用了兩年多沒有遇到所謂的烙印問題,所以這次的 HTC One S 使用 Amoled 對我來說是沒差的。

容量

Desire 的 512MB 內部儲存空間真的是悲劇…HTC One S 雖然內建 16GB Flash,但是切分成 2GB(內部儲存空間)與 14GB(外部儲存空間)。2GB 的儲存空間目前是夠用的(我大概裝了 97 個 App,然後 Gmail 佔了快 100MB XD)

相機


白天的相機品質很不錯,可以替代一般的數位相機了。

晚上與室內的拍照品質就勉勉強強,可以看到顆粒狀還是很明顯。

電力

在普通使用狀況(大概每 20 分鐘拿出來收 Email、接電話),一個早上使用約 30% 電力。對我來說,一天充一次電是可以接受的。
我有裝 2x Battery,可以延長使用時間。

使用體驗與速度

HTC One S 在台灣上市之前,鬧的沸沸揚揚的 CPU S4 換成 S3 事件,本來我在購入之前也很擔心。不過實際使用上,倒是還好。我不會想要跑所謂的 benchmark,而是以使用中的順暢程度來比較,我認為是可以跟 iPhone 比的。RSS Reader(我用 NewsRob)一邊更新的時候,用起來會頓頓的,但如果更新完了就很順。

VPN

ICS 終於支援 Cisco/Juniper 的 SSL VPN 了!這真是太 cooooooool 了。