Android Pay 登陸香港

之前有傳聞在今個月推出的 Android Pay 終於在昨日正式登陸香港。目前支援滙豐、恆生、渣打、東亞、星展及大新銀行的 Visa 及 MasterCard 信用卡,Tap & Go 都可以加入去 Android Pay。我有一張恒生 Visa 和一張中銀 MasterCard,但因為不支援中銀的關係只可以加入恒生信用卡。 除了信用卡,Android Pay 可以加入會員卡。這個功能就是用來儲存會員卡的條碼,Android Pay 是不會檢查會員卡號碼的真確性。在付款前可以在電話展示條碼。這樣就可以不用帶太多會員卡,而且還會在你經過商鋪時提醒你可以用會員卡。不過有人在 759 阿信屋試過被職員拒絶,要他一定要出示實體會員卡。 ...

October 21, 2016

自己造一個 CocoaPods Framework Pod

最近工作需要將一個 tvOS app 的某些 class 抽出來變成能被 CocoaPods 安裝的私家 close source framework 讓其他人用。我都是第一次做 framework,在網上的教學主要都是教純 Xcode 的做法和使用 CocoaPods 下載 project dependency,詳細提及如何造一個 CocoaPods Pod 就比較少人寫。所以就寫出來跟大家分享。 ...

September 28, 2016

xUnique

Xcode project 有個特色就是 VCS unfriendly。例子有 project.pbxproj 會有自動產生的 hash 和開啟 xib、storyboard 時不論有沒有修改過內容都好 Xcode 還是自動會將 macOS 和 Xcode 版本寫入。如果是 xib、storyboard 的版本問題就不難解決,因為比較難出現 conflict。但 project.pbxproj 就很容易 conflict。這是因為 Xcode project 和 Java 之類的 project 不同,Xcode 是可以讓 user 自訂 project 檔案排序,還有就是可以讓 user 決定那些檔案是屬於 project 的一部分,不是純綷只定義 file system 的某幾個資料夾就是 project 的一部分。然而這個特色卻容易出現 merge conflict。只要你和另一個組員在 Xcode file tree 同時將檔案排列次序改變,那就會在 merge 時出現 conflict。尤其是在前期開發時因為不時要開新檔案,會令 conflict 更容易出現。而解決 conflict 又特別麻煩,因為 project.pbxproj 的設計是讓 Xcode 讀,不是讓人去閱讀。 ...

September 24, 2016

在 Android app 內顯示 Git commit hash

有些 Android app 除了顯示版本號碼之外,還會有該版本的 Git commit hash。如果有好幾部測試機做測試的話,可能會在開發時先後在不同的機安裝過不同版本的 app。但就沒有每次都更新版本號碼。加了 commit hash 就容易分辨 app 的實際版本。其實要顯示 commit hash 的做法不太難,不需要每次人手更改的。只需要改一下 app 的 build.gradle 就可以了。 ...

August 29, 2016

Photosphere

早前 Facebook 的 360 Photos 令 Photosphre 流行起來。沒有 360 camera 的話,可以用手機應用程式駁相。不過用手機影相畫質會比較差。所以這次試試用相機拍攝 Photosphere。 以下是所需工具: 有全手動模式的相機 魚眼鏡 / 廣角鏡 三腳架 Hugin Photoshop 能修改檔案 XMP 的工具 器材 按照 Google 的指引,用 DSLR 拍攝 Photosphere 的話,是需要用魚眼鏡。但因為我沒有魚眼鏡的關係,所以唯有用 14-42mm kit 鏡(135 等效焦距 28mm)拍攝。用魚眼鏡拍攝的好處是因為視角夠廣,拍攝張數少,後期駁相都會比較方便。但由於沒有魚眼鏡的關係所以拍了 70 多張相來接駁。拍攝時要調去全手動模式 (M mode),對焦設成無限遠,ISO、光圈、快門、白平衡都要手動固定,否則接駁時可能會有明顥光暗差異。 ...

July 31, 2016

Olympus E-M10

不經不覺我的 Olympus E-M10 相機買了都有一年了。這一年來都影了大概有四千多張相片。最初買相機的原因主要是用來拍畢業相,而且之前用的 Canon PowerShot A640 不知是不是因為發霉的關係,拍出來的相片都好像有一層霧般灰曚曚般。所以想買一部新的來取代它。亦因為這個原因,近年來都是用手機影相為主。 ...

July 8, 2016

轉用 Hexo

之前一直都想用 static site generator 來取代沿用的 WordPress。現在終於由 WordPress 轉到 Hexo,並且將網站改用 GitHub Pages 架站。 Hexo 是一個用 Node 寫的 static site generator,它的定位是用來造 blog,不過用來做一些簡單的文檔網站都可以。近年開始流行如 Jekyll 之類的 static site generator,主要的特色除了是可以將網站放到普通的 web hosting 外,就是可以用 Markdown 寫文章。用 Markdown 的好處就是語法比 HTML 簡單,尤其適合寫一些文字為主,不需要特別排版的文章。還有就是寫一些夾雜着程式碼的文章。Static site generator 通常都會提供 syntax highlight 功能,而且還會將生成的 syntax highlight HTML 直接匯出,無須在 client side 做 syntax highlight。之前在 WordPress 寫夾雜着不少程式碼的文章時就要不時切換 HTML 和 WYSIWYG editor 來補加 <code> 之類的 tag,用了不少時間才寫完。 ...

March 21, 2016

在 Windows 刪除路徑名太長的檔案

通常寫 JavaScript project 都會用到 NPM,NPM 和其他 package manager 不同之處就是每個 package 的 dependency 都會放在其 package 內的 node_modules 資料夾,而不會將所有 dependency 放去同一個資料夾內。這個做法的好處是不同的 package 即使用了相同的 module 但不同版本都不會衝突。但壞處是當一個 module 有 dependency 時,而這些 dependency 自己本身都有 dependency 時,便會令 project 的 node_modules 資料夾內有非常多層的資料夾。如果用 Windows 的話,有可能因路徑名太長不能刪除資料夾和檔案。 ...

September 21, 2015

Parse + Android 收 Push Notification

Parse 的免費 plan 包含了一百萬個接收者的 push 配額,應該足夠一般 app 使用,而且比起自設 server 發送 push notification 更加方便(不用去 Google Developers Console 開 project)。但 Parse 網站所提供的 Android 的教學有點不清楚,而且都過時。在此分享一下 Android 版的基本 setup。 ...

August 30, 2015

整理 MP3 ID3 tag

之前有整埋 MP3 的 ID3 tag,以下是我的小分享。 如果要整理 MP3 檔的 ID3 tag 的話,可以用 Mp3tag。在設定頁,揀選 Tags | Mpeg,在 Write 部分只剔選 ID3v2,而下面就只揀選 ID3v2.3 UTF-16。而在 Remove 部分則剔選 ID3v1 及 APE。這樣就應該不會再有亂碼。 ...

May 17, 2015