2011年12月27日 星期二

Using sed On MacOSX

範例:把所有rc1的css全部換成正式版css
sed -i "" 's/jquery.mobile-1.0rc1.min.css/jquery.mobile-1.0.min.css/g' *.html

在Mac上要在-i後面加上兩個空的雙引號「""」,讓他不會另外寫到別的檔案。

題外話:
以前不曉得善用 sed,每次改都要改半天,現在會用以後就讓我好 sad啊。
為何我以前要這麼蠢一個一個慢慢改浪費生命…

Android Bundle Default Sqlite Database

http://code.google.com/p/almanac/source/browse/trunk/Almanac/src/it/almanac/AlmanacSQLiteDatabaseAdapter.java?r=56

1. 產生好自己的Sqlite Database,我是已經有了,所以用adb shell把模擬器的資料庫,位置: /data/data/MY_PKG_NAME/databases/DB_NAME。Copy出來。
2. 放到assets。
3. 讀取assets的DB,用程式複製到程式內。

補充:因為assets的檔案有1M大小的限制,有一說DB超過1MB,可以把附檔名改成.jpg。參考

2011年12月26日 星期一

Create Ubuntu 10.10 On Amazon EC2

教學
http://oss.tw/elgg/pages/view/13584/-amazon-ec2-ubuntu-1010

如果有長期Server需求,不建議照教學內的第四步的版本選,建議使用 Official Ubuntu Cloud Guest Amazon Machine Images (AMIs) 且有 Long Term Support(LTS) 的版本,LTS約兩年出一版,每個版本至少 support 五年。
官方AMI,目前最新的是LTS版本是 10.04

要選用哪個請先決定Region,看要開在美東、美西、日本、etc...
再看要64 bit還32 bit,再看要存ebs還是instance

2011年12月22日 星期四

Android Generate Reflection Bitmap Image

Load Large Json On Android

Gson
https://sites.google.com/site/gson/Home

Tutorial:
http://www.javacodegeeks.com/2011/01/android-json-parsing-gson-tutorial.html

在 Android 上如果要讀一個非常大的Json:5000筆、10000筆之類的。
直接讀成 String 一定會讓記憶體爆掉的。
這時候就要用Gson啦~
Tutorial是讀一個Obj,下面範例是讀一個Array。

Sample Data Foamat:


[{"num":"110013"},{"num":"110014"},{"num":"110015"}]

Class:


import com.google.gson.annotations.SerializedName;

public class Store {
@SerializedName("num")
public String num;
}

Sample Code:


InputStream is = YOUR_DATA

Gson gson = new Gson();
Reader reader = new InputStreamReader(is);
Type collectionType = new TypeToken<List<Store>>(){}.getType();
List<Store> stores = gson.fromJson(reader, collectionType);
for(Store store : stores) {
Log.d("GSON", "update:" + store.num);
}

2011年12月14日 星期三

AnimationDrawable Out Of Memory

先聲明,這是逃避問題,不是正規解。

情況:
最近在用AnimationDrawable時,發生程式第一次進來正常。
但是按back離開過後,再進來就會發生Out Of Memory Exception。
因此將此Activity放到另外的Process跑,躲避問題。

作法:
在Androidmanifast.xml內將此Activity放到另外的Process跑。
...
android:name="YourActivity"
android:process=":NewProcess" />
...

Web Mobile Friendly Test

http://www.howtogomo.com/en/