陷阱 1. 只有特定角落要圓角效果
作法:
指定預設值(「android:radius」)為大於 1 的值,再把不需要圓角的角落指定為「0dp」;
而且預設值不可以跟特定角落的圓角半徑值相同。
作法:
指定預設值(「android:radius」)為大於 1 的值,再把不需要圓角的角落指定為「0dp」;
而且預設值不可以跟特定角落的圓角半徑值相同。
最近明文密碼的話題很紅,
決定來重貼以前關於密碼編碼(password hashing)的筆記:
用 PHP 寫起來大概像這樣:
$salt = substr(hash_func(uniqid(rand(), true)), 0, $saltLen);
$hash = hash_func($salt . $plain);
$saltStart = strlen($plain);
return substr($hash,0,$saltStart) . $salt . substr($hash,$saltStart+1);
另外,理想狀況是客戶端跟伺服器端間以加密方式(如,SSL)傳遞密碼。但是事情往往沒有這麼美好,沒辦法用 SSL 的話,可以參考〔延伸閱讀〕第 3 篇提到的「瀏覽器端 hash」。
密碼不要用 md5 比較好,要找比較難算的 hash function 例如 bcrypt 可以參數調整難易度。否則就算加了鹽,md5 還是很容易 crack
@yunglinho 補充: 《How To Safely Store A Password》
延伸閱讀:
看了 fcamel 的〈運用 radix sort 的概念加速 sleep sort〉,下午試著用 Ruby 改寫,順便拿掉暫存檔。但是相同 digit 的 thread 不一定照原本的順序結束,而變成 unstable sorting;我只好又加上「依 digit 分組」來避開這問題。
最近在 Android Market 上了一支應用程式,
但是某些手機(如:威寶 A688)卻無法搜尋到此程式。
原來是因為這隻程式用到相機功能,
所以產生出來的 APK 檔被自動地加上「自動對焦」的需求。
導致缺乏此功能的手機「莫名地」無法在 Market 上找到此應用程式。
解法很簡單,
在 AndroidManifest.xml 裡明確地將「自動對焦」設為非必須即可:
<uses-feature
android:name="android.hardware.camera.autofocus"
android:required="false" />
由於 2.0 以上的 SDK 才支援「android:required」屬性,
所以要改用 2.0 以上的 SDK 來編譯,並設定正確的「minSdkVersion」。
P.S. SDK 工具中的 aapt 可以查看 APK 檔實際上的 manifest 內容:
aapt dump badging $APK_PATH