Inline CSS

最近需要寫一個發送 email 的 program。如果要用 HTML 的話,最好都是找到現成的 HTML email framework。(例如 Zurb 的 Ink,其他的可以參考 Responsive Email Resources 網站)因為 HTML email 和平時做網頁分別很大,例如:

  • CSS 要 inline,<style> 並不是全部 email client 都能支援
  • 排版要用 <table>
  • 圖片視乎需要當成附件,Base64 未必能被 email client 支援
    但設計 email 時如果要寫 inline style 是非常難寫,所以都是用工具轉。我試過用 Gulpgulp-inline-cssgulp-inline,效果不錯。

    Read More

OnePlus One + Xperia Z2

最近發現我的 Xperia ion 有時候會誤以為耳機還插在電話,結果電話不會響。隔一段時間後重啟又會變回正常。加上 ion 因為少 RAM 而經常自己 kill app,最後決定換部新的電話。

之前一直都想換電話,在上年 10 月中的時候收到訂購 OnePlus One 的邀請,買了一部 64 GB Sandstone Black。後來發現不太合意,收機當晚就決定退貨。後來買了 Sony Xperia Z2。

Read More

Data.One 的行車速度圖

香港政府的 Data.One 有提供運輸署的行車速度圖 XML 資料。資料以線條為單位,表示路段的行車速度。雖然它有提供 Excel 格式的路段起點和終點座標和其他基本資料,但郤沒有提供地圖示意各路段是對應那條實際的道路。而且座標系統是使用政府測量用的 HK80 而非一般網上地圖 API 的十進制 WGS84 座標。如果想使用這些資料的話,就要先將 HK80 座標轉為 WGS84,然後將點和線畫在地圖上,再對比實際的道路才能知道各條線所代表的道路。

我已經將行車速度圖 Excel 內的點轉成 WGS84 座標,而且做了個 KML 檔案標示各點和線。KML 檔可以用 Google Earth 開啟。(KML 內的物件已超出 Google Maps My Place 匯入 KML 檔的上限,所以要用 Google Earth 開啟。)

行車速度圖的路段

ThinkPad 死電池

在大學買的 ThinkPad X230 已經用了兩年(2012 年 8 月購入),但就先後壞了兩次電池。第一次壞是在 2014 年 2 月(一年半),用了 72 個 cycle 的電池突然不能充電和放電,Power Manager 顯示為 poor condition。由於電池只有一年保養,所以到 Lenovo 維修中心買新電池。但新電池未夠半年就有問題。

新電池在用了幾個月後就錯估電量。當電量剩餘約三分之一時,Windows 和 ThinkVantage Power Manager 就會突然提示電量只有 6%。如果不在幾分鐘內插上電源電腦就會自動關機。試過校正電池電量,但過了一段時間又會打回原形,於事又要到維修中心一趟。這次因為電池保養未完,所以直接換了電池。新電池大約可以用到三個多小時,不知這次壽命如何。三粿電池的芯都是用 SANYO,但之前兩粿的電池品質都有問題。

除了主電池之外,底板的電池用了一年多就沒電。一般桌上電腦的底板電池用了五六年才會用完,底板電池用了一年多就用完簡直離譜。另外,它的 Windows recovery media 也是有問題的。買機後馬上用 USB 手指做了一個 recovery media,後來用這個 USB 手指做系統還原時發現有錯誤,結果要拿去維修中心重裝系統。

ThinkPad 的品質差原來都不是新鮮事,原來前幾年發生過 ThinkPad E420「主板門」事件。雖然 E 系不是原 IBM 系列,但都可以見到 Lenovo 的品質問題不是個別事件。日後再買電腦都應該不會再考慮 Lenovo。

DevDocs

如果用 Mac 來寫程式的話,相信都有聽過一個 app 叫 Dash。它是一個離線閱讀 API 文件的工具。如果是用 Windows 或者 Linux 的話,有一個類似的 app 叫 Zeal,這個更加是免費的。

但如果不想安裝軟件的話,可以用 DevDocs。只需要在左下角點選「Select documentation」,選擇需要查閱的 API。之後就可以在左上角的搜尋欄搜尋 API。這些軟件的好處就是將不同的 API 文件整合在一處,無需到各個 library/framework 網站查閱。而 DevDocs 還會將不同的文件套上統一式樣,界面更加清新。

如果找不到所需的文件,還可以到他們的 Trello 提議和投票。

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