Android Studio 0.5.2 + ActionBarCompat 在 Android 2.3 設備死 app

最近開始轉用 Android Studio 寫 Android app。昨日升級到 0.5.2 時發現 gradle.xml 和另外兩個 .iml 檔案的路徑都被改為絕對路徑,而非先前的 $PROJECT_DIR$$MODULE_DIR$。Google 過似乎還未有解決方法,現在惟有不 commit 這幾個檔案。

另一個問題是在 Android 2.3 的設備運行用了 ActionBarCompat 的 app 會「彈 app」。只要你的 activity 有 action overflow 的話,當按動設備的 Menu 掣時,activity 就會自行結束。但在 logcat 就不覺有 exception 的 stack trace。Google 過之後就發現原來新版 Android Studio 所附帶的 Gradle 用了新的 PNG cruncher 會令到 Android 2.3 死機。目前的解決方法是使用舊版 PNG cruncher。

Read More

ConEmu

最近開始用了一些需要用 command 執行的工具(Grunt 和 PHPUnit),發現一個可以支援顏色顯示的 console 會比較方便。ConEmu 是一個在 Windows 上使用而且有分頁功能的 console,和 Mac 的 iTerm 有點相似。它的特色就是可以讓你自由地設定各項細節。由字型、字體大小到啟動時開啟那一個目錄都能設定到。它除了可以調用 Windows 的 Command Prompt (cmd.exe) 之外,還可以調用 PowerShell、Bash 等等的 shell。如果用 Bash 的話可以用 Git 提供的版本,這個版本可以支援基本的 Bash 指令,用來執行 PHP CLI 程式、Grunt、PHPUnit 都有顏色顯示。

在 ConEmu 內使用 Git Bash

ConEmu 的基本設定可以參考 scotch.io《Get a Functional and Sleek Console in Windows》,內有介紹如何設定一個使用 Git Bash 的 Task(即是設定檔之類的東西)和介面

Xperia ion 維修記

我的 Sony Xperia ion (LT28i) 用了接近一年,最近留意到拍出來的相片都是矇矓的,就像眼睛有散光一樣。對比起之前拍的相片的質素真是奇差無比。再留意一下鏡頭,發現原來鏡頭的鍍膜 (Coating) 刮傷了,導致到拍出來的相片有散光效果、相機不能對焦。

鏡頭鍍膜被刮傷,導致照片影像矇矓

Read More

萬用 Preprocessor Compiler:Prepros

Prepros 是一個能支援多款 CSS、JavaScript 和 HTML Preprocessor 的 compiler,它支援 LESS、Sass、Scss、Stylus、Jade、Slim、CoffeeScript、Haml 和 Markdown,有些名我還是第一次聽。有了它就不用再裝 Ruby 之類的東西,因為它已經內置 compile 時所需的程式。它可以在 compile 的時候亦可以 minify code(minify 是指將檔案中不必要的空白字元、註解清除,令檔案變小,加快網頁載入的時間),亦支援近年流行的 Live Reload 功能(在檔案儲存時瀏覽器會即時重新載入有關的網頁,方便即時看到剛才修改過的效果,只需要安裝 Prepros 的 extension 和在 Prepros 開啟這個功能就可以了)。它支援的 Preprocessor 數量和功能可以媲美 Mac 的 CodeKit。不過 Prepros 不能直接 minify 最原始的 JavaScript 檔案,亦沒有優化圖片的功能,但都足夠一般的使用。重點的是 Prepros 是免費的!

Read More

Laraval 4 中文語系翻譯

Laravel 4 不再附帶英文以外的 validataion error message 語系翻譯,如果要用其他語系的話,就要自己另外下載。Caouecs 已經在 GitHub 開了一個 repository 收集不同的翻譯,我自己也譯了繁體中文,大家可以下載需要的翻譯。如果是打算做中文介面的話,最好也要將各欄位的中文名加到 app/lang/XX/validation.php 內的 attributes array 內。因為 Laravel 本身是用 input 的 name 來做 attribute 的名稱,所以如果不自訂 attributes array 的話顯示錯誤訊息時會中英夾雜。

Laravel 4

我自己學習 PHP 其實都只是一年前開始,這是因為我選修了兩科關於 PHP 的科目。那時學的都是一些最基本的 PHP,製作 HTML 表單連驗證、修改、儲存到資料庫都是用同一個 PHP 檔案,內裏用幾個 if 來分隔開不同的部分,還會用 session 來重新填寫表單內容。現在回想起都覺得這種寫法非常嘔心,因為實在太長,而且夾雜着 PHP 和 HTML,自己寫完都不想再去看。

Read More

Bitbucket 免費 Academic License

BitbucketGitHub 一樣都是有名的 Git repository (repo) hosting 供應商。兩者的免費版差別在於 Github 免費版只可以開到公開的 repo 而 Bitbucket 就可以開到公開和私人的 Git repo,如果不想公開源碼的話可以考慮用 Bitbucket。Bitbucket 最多可以與五個人共用私人的 repo,但它有推薦制度來增加共用名額,最多能與八個人共用同一個私人 repo。

如果想再增加使用者而你又有大學電郵地址的話,可以免費申請 Bitbucket 的 Academic License。Academic License 可以將 repo 與無限人共用私人 repo。只需在表格填上自己 Bitbucket 帳戶資料、大學資料就可以了。留意自己的 Bitbucket 帳戶是要將表格所填的大學電郵設定帳戶預設的電郵,否則不能升級。如果你平時並不是用大學電郵地址來 commit 的話,你可以再加上其他電郵地址,這樣就不會在 Bitbucket repo 的網頁介面顯示提交人為 Unknown,而是顯示為你的帳戶。

成功升級 Academic License

SimCity

期待了十年的 SimCity (2013) 終於出了新版(不計算 SimCity Society 的話),但結果一推出就劣評如潮。首先就是將以往單機遊戲變成網上遊戲,雖然 EA 聲稱改為網上遊戲的原因並非因為 DRM,但原因很明顯示為了防盜版。而伺服器郤未能承受到全球大量的玩家,加上其他種種的 bug,令玩家憤怒。結果 EA 要送 Origin 遊戲給玩定消氣。

Read More

使用 Exchange ActiveSync 同步 Outlook.com 郵箱

微軟的 Outlook.com 已經開放了一段時間,如果想在 Android 上收發 Outlook.com 的電郵除了用傳統的 SMTP+POP 或者使用官方的專用 app 之外,其實還可以用 Exchange ActiveSync。雖然 Outlook.com 沒有交待過 Exchange ActiveSync 的設定方法,但做法其實不難,只需要用手機內置的電郵 app(不是 Gmail app)再使用本文提供的設置就可以了(方法同樣適用於 Hotmail 郵箱)。

Read More