2012年10月23日 星期二

AQuery - jQuery For Android


jQuery For Android (AQuery)
http://code.google.com/p/android-query/

稍微看了一下,他把jQuery很喜歡用的 Chaining 作法拿過來用
所以整個用法看起來跟在寫網頁的 jQuery 語法很像。

而且這整套其實還是在 Java 環境下,並非在App內放WebView去做。
所以其實並不能叫做用 jQuery 去開發。

而且jQuery的核心精神就是 Write Less, do more.
看起來是真的少了滿多行程式。
而且也把一些常用的 Async 工作包好來用,例如:
  去遠端讀取圖片這種平常要寫一海票程式碼才能處理的很漂亮的東西

2012年10月18日 星期四

Use iPhone Like Pull-To-Refresh ListView

這一套是可以讓你做出像是 Facebook 那樣,可以讓使用者下拉列表就可以讀取新資料的Lib

https://github.com/johannilsson/android-pulltorefresh

Use ActionBar Before Android 3.x

這是一套可以讓 Android 2.1 以上的手機,呈現和 3.x 才有的 ActionBar 一樣的介面。
並且也幫你處理掉一些相容性問題。

Sherlock ActionBar
http://actionbarsherlock.com/

jQueryMobile 1.2

1.2正式版出了,所以有專案要使用也比較ok。
比較大的改變是多了一些元件可以使用,請自己點要看的元件玩玩。
Popup
Collapsible ListView

如果不熟的人,想要自己兜畫面給客戶看也可以用下面的工具,比較可惜的是新的元件還不支援。
http://jquerymobile.com/#try

有興趣的看更詳細的再自己看吧~

2012年9月20日 星期四

Sort List With Custom Comparator In Python

def asc_comparator(a, b):
    return a - b


def desc_comparator(a, b):
    return b - a

my_list = [8, 1, 3]
my_list.sort(asc_comparator)
>> [1, 3, 8]

my_list.sort(desc_comparator)
>> [8, 3, 1]

如果a, b是兩個物件也可以自訂comparator去取出要比的東西出來。
comparator 回傳值必須是 int
此為比較日期時因為我用 timedelta.total_seconds() 才注意到的

2012年8月13日 星期一

Git Flow Tutorial


英文的,這篇會用指令帶著做一次。
http://alblue.bandlem.com/2011/11/git-tip-of-week-git-flow.html

中文的
http://ihower.tw/blog/archives/5140/


指令:
https://github.com/nvie/gitflow/wiki/Command-Line-Arguments

git flow 是一套可以幫助你快速完成並且符合 git 的優良用法的輔助工具
下面介紹基本用法。

  1. 當然是先安裝 git 和 git flow 啦。
    brew install git git-flow
  2. 複製一個 git repository 回來
    git clone git@YOUR_HOST/YOUR_REPOS
  3. cd 進去資料夾用預設設定做 init
    cd YOUR_REPOS
    git flow init -d
  4. 開始寫功能abc
    git flow feature start abc
  5. 中間 git commit 好多次後,功能完成
    此時 git flow 會幫你 merge 回 develop
    git flow feature finish abc
  6. 重複 5. 多次後,準備 release 1.0版
    git flow release start v1.0
  7. 修修改改,準備上正式,此時 git flow 會幫你 merge 回 develop 和 master
    git flow frelease finish v1.0

2012年8月12日 星期日

Git Ignore Sample

在各種語言或環境中,可能會 ignore 的範例


把各自的內容寫到各 git 的專案根目錄下的 .gitignore 檔案即可

如果有通用原則,則可以寫到 ~/.gitignore 內。

2012年8月8日 星期三

Use Cookie In Iframe

Header加上 P3P 為 CP="NOI ADM DEV COM NAV OUR"

參考

GCM - Google Cloud Messaging FAQ

Google Cloud Messaging(GCM)是一個完全免費的推播服務,也就是能夠讓短訊息由客戶的第三方伺服器透過 Google 發給每個移動裝置的一個服務。

GCM 的前身 Cloud to Device Messaging(C2DM)服務也已經在2012年06月26號正式 Deprecated,不再接受註冊,必須改用 GCM。目前已有的 C2DM 仍可繼續使用。

使用限制

  1. Android 2.2 以上
  2. 有開啟 Google 服務的背景傳輸
  3. Android 4.0.4(不含)之前的手機要有一個 Google 帳號。

參數解釋

Client Side

  • Sender ID
    • 代表發送者的 ID。
    • 最多 100 個,超過以逗號隔開,如:"12345678,43218765"
    • 在 App 內指定要收哪些發送者的,用逗號隔開,App 收到時會包含此 ID。也就是說可以做不同角色的發送。

Server Side

  • collapse_key
    • Google 最多會存 4 個,超過不保證哪個會被忽略。
    • 如果今天是新郵件通知,使用者在關機時收到 100 個郵件,你不會希望使用者在手機打開時收到 100 次通知,就可以指定 collapse_key 讓使用者只會收到 1 次新郵件通知。
  • time_to_live
    • 最少 0 秒,最多 2,419,200 秒(3天)。
    • 某些通知所要傳達的事件可能是有時效性的,例如:有視訊電話打來、行事歷通知、奧運即時賽況分數…
    • 常常會和 delay_while_idle 設成 true 一起用。
  • registration_ids
    • 要發送的裝置 ID,每個 request 最多 1000 個。
  • data
    • 發送的內容,長度限制 4kb。
  • delay_while_idle
    • 如果裝置收不到,等到上線才會收到。

常見問題

  • Sender ID
    • 在 APIs Console 瀏覽器網址列的 Project 那串數字。
  • Sender Auth Token
    • Server 向 Google 發送推播的驗證
    • 在 APIs Console 的 Simple API Access 中的 API key

  • Registration ID
    • 由 Google 取回代表此裝置的 ID,要送給 Server 存起來。