2014年2月17日 星期一

Kindle Fire's soft-key bar

   近APP要重新上架到Amazon的App Store,在Review時被測出一個Issue;就是在Full-Screen的Activity當置底(BOTTOM|CENTER)的DialogFragment彈出時,會被Kindle Fire的Soft-key Bar給擋住。

    原因在於Kindle Fire的Soft-key不是固定占用系統的高度,所以在Full Screen時,如果彈出的Dialog可以支援Back Key來取消的時候,它就會雞婆的把Soft-key用Overlay的方式跳出,就巧妙地擋住部分的Dialog。

原本的解法是判斷手機是否為Kindle Fire,然後決定要不要加上一個神奇的Margin-Bottom,但後來跟同事Pair-Program後,發現到DialogFragment加道Window時,並沒有繼承現在Activity的屬性(也就是全螢幕),所以才會做出如此蠢事。

最後我們捨棄的Magic Margin,而是強制將DialogFragment設成全螢幕的模式,如此該死的Soft-Key Bar就不會莫名其妙的彈跳出來。

Sample Code :

dialog.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);

2014年2月9日 星期日

您的Service能夠活多久?

   晚整理以前信件時,發現某個資料夾裡放滿所有註冊網站服務的認證信,大約都是在2007到2009年所註冊,悲慘的是超過一半的網站都已經GG,以下條列他們以前的服務名稱以及網域。

  • http://www.iloveeasy.com/
  • CrazyVote
  • http://www.pala88.com/
  • http://www.bday2all.com/
  • 搜股網
  • http://www.showgood.tw/
  • http://my98.98play.com.tw/
  • http://www.badongo.com/
  • 地圖日記
  • HEMiDEMi
  • http://www.ppolis.com
  • 意慾蔓延
  • joost
  • http://www.postreach.com
  • http://tw.blogdeco.jp/
  • http://www.mybloglog.com/buzz/community/mybloglog/
  • http://dob.tnc.edu.tw/ 
  • http://slide.com/

有趣的地方在於,上列網站幾乎都在認證信內貼上明文的密碼(我的密碼沒加密搜集了所有密碼沒加密的網站)。


Deferred & Promise



最近同事在解High Resolution issue的時候用到了Deferred/Promise的Design Pattern

問題是這樣子,要同時讀取及輸出N個圖片,但同時可以用M個Worker進行以節省時間,而圖片輸出的順序必須依照z-order排序,這表示圖片B輸出時必須等圖片A輸出完成。

這個問題的關鍵在於Task之間必須有Dependency的觀念,如果純用JAVA硬幹是可以用Thread Pool再加上Callable/Future實現,但針對這種問題已經有Deferred/Promise的設計概念可以使用。

簡單介紹一下D&P的概念(如上圖所示),如果Task之間有Dependency,甚至是帶入參數必須等前一個Task完成才能決定時,就非常適合使用它。

在jQuery 1.5之後已經有直接內建DeferredObject
http://api.jquery.com/category/deferred-object/

在Go的語言也是
http://golang.org/doc/effective_go.html#defer

Python也有人包library
http://twistedmatrix.com/documents/13.0.0/core/howto/defer.html

Java雖然不是內建但也有人包成library : jDeferred,當然也有Android的support
https://github.com/jdeferred/jdeferred

最近Parse也release一款類似的library : Bolts (iOS/Android supported)
https://github.com/BoltsFramework/

參考鏈結:

What are the differences between deferred promise and future in JS
http://stackoverflow.com/questions/6801283/what-are-the-differences-between-deferred-promise-and-future-in-javascript