Ryan Leung

Ryan Leung

一星期一書

六月讀書

最近看得太多小說,是否應該看多一點其他類型的書呢? 《三體二 - 黑暗森林》- 劉慈欣 《黑暗森林》描述的是人類在三體世界的威脅下,如何生活和應對。今次的故事多線發展,人物多了很多,並加入了懸疑伏線,吸引很多。因為知道有第三本,所以沒有想過結局會是這樣,很圓滿和自然。三體一是背景鋪排,二才是主菜,比第一本好看很多,故事更流暢完整。 唯一要說的是,故事中的「面壁計劃」太兒戲,太隨便,太多不確定性,各國無理由會同意此一計劃。不過要面對無所不知的敵人時,似乎是唯一的辦法。 《三體三 - 死神永生》 - 劉慈欣 緊接著二的故事,說的是在黑暗森林的狀態下人類要面對的威脅。 此書所描繪的時間太長,有數百年甚至上千年之久。作者想寫的東西太多,但因為篇幅所限,令人走馬看花,太趕太快,不夠時間沉澱。而且故事牽涉其他維度,太抽象,太難理解。作者以愛情故事開頭,但最後又沒有愛拯救世界之類,令某些情節有點不文不類。
3 min read
Pebble

使用兩年後的 Pebble

用了 Pebble 差不多兩年,Pebble 二代 Pebble Time 也已經出貨。是時候再 review 一下。 日常使用方法 講講我使用 Pebble 的方法: 返工日子差不多每天也帶著。基本上是將手機設為無聲無震,只使用 Pebble 的震動來通知,WhatsApps、email、SMS、天氣通知和來電顯示等皆沒問題,非常方便。 跑步時會使用 RunKeeper 顯示跑步資料。有時也會用來控制音樂的播放。 兩年後的硬件 一切功能正常,按鍵沒有衰老,還依舊有彈力。螢幕還是依舊漂亮,沒什麼括花,似乎有一點抗括能力;不過錶表則相對有很多括痕。經常戴著洗手和用水沖,叉電位也沒氧化,也沒入水,磁石的吸力也沒有變弱。只是電池開始老化,以前可使用八天左右的,現在停掉 Shake to Light 後只可勉強使用七天,不過還算不錯。 中文支援
3 min read
網站設計

HKTV Mall 問題

HKTV Mall 是 HKTV 的一個附屬公司,在網上銷售各式貨品。新開張時曾向每位用戶免費派發 $100 ,我也因此在 HKTV Mall 購物。那時覺得網站設計很有問題,完全不方便,想寫篇文來講講它可改善的地方,但還未開始寫它已經改了版。快看一下,改善了之前問題,所以沒有再作跟進。 最近不知何故,HKTV Mall 的宣傳電郵多了很多,令人煩厭,想寫篇文章去鞭韃一下,於是又去看看 HKTV Mall 的網站。一看之下,還是覺得其設計仍是有問題,忍不住寫下來。 ![HKTV Mall 的宣傳電郵](/content/images/2015/06/email.png) 首頁 圖片的 3% ![3%](/content/images/2015/06/3_
10 min read
SONOS PLAY:1 開箱
開箱

SONOS PLAY:1 開箱

簡介 一直想買個喇叭來播 NAS 中的音樂,也想聽聽 internet radio 。找到 Sonos 此品牌,外觀不俗,功能滿意,評價不錯。 因為自己本身是木耳,不算常聽音樂。純綷身痕想買野玩下,所以買了最低階最便宜的 PLAY:1 回來。 外觀 買 Sonos 產品的一個主要原因是它的外觀,非常時尚簡約,合我口味。初看還以為它是 Apple 的產品。 ![四面睇](/content/images/2015/06/front.jpg) ![上和下](/content/images/2015/06/updown.jpg) 播放時,可按機頂的播放鍵去播放或暫停,按兩下播放下一首。音量鍵則只能控制音量。 PLAY:1 比想像中大和重,
6 min read
一星期一書

讀後感:《Cloud Atlas》 by David Mitchell

《Cloud Atlas》 由六個不同時代的獨立的故事組合而成,六個故事的時間是順序的。由一開始的 18 世紀,到現代然後未來。起初以為全是一個科幻小說,讀完後只有在最後兩個故事才找到科幻的感覺,有點因錯誤的期待引起的失望。頭兩個故事較沉悶;第三個有點偵探動作小說氣氛,易入口;第四個的結局有驚喜;第五個的未來世界很合口味;最後一個是未來世界崩壞後的原始生活,有點壓抑。 每個故事都以不同風格寫成,第一個故事以日記形式,第二個是書信,第三個是第三身,然後是類似回憶的方法,接著是問答形式,最後則是第一身的叙事。整體而言,本書有不同類型的故事,高低起伏的全都有,每一個單獨讀起來也不錯,每一個最後也有「扭橋」的地方,相當難得。 不過《Cloud Atlas》 真是一本非常難讀的書。 有別於短篇故事合集,每個故事不是在前一個故事完結後開始,而是在途中!前一個故事講到一半時,便開始講下一個故事,直至最後一個故事開始並完結後,才回頭講之前的故事的下半部。 全書的故事流程是 1 > 2 > 3 > 4 > 5
4 min read
一星期一書

五月讀書

照例的簡單寫一下五月讀了的書: 『《1Q84》之後~』特集 - 村上春樹口述、松家仁之採訪 村上春樹的訪問,在他寫完 1Q84 後進行。主要談及他對 1Q84 的想法,和他在生活、書、工作、音樂等的看法。也有談及他具爭議性的「雞蛋與高牆」論的前因後果。 《傘聚》- 區家麟 作者於雨傘運動期間,刊登於 blog 內的文章。再加上他拍攝的照片,輯錄成書。文章主要是作者對雨傘運動的感想,很喜歡他的觀點。 《Cloud Atlas》 by David Mitchell 很難讀的一本書。花了差不多一個月才讀完。書由六個不同時代的獨立的故事組合而成。難讀在於六個故事都以不同風格寫成,而每個的語調和文字的運用也有不同,頭三個故事尚可,第四個故事開始有一些個人語匯的加入,第五個已經有很多新創名詞,最後一個連文法都跟現代的不同。每次也要重新適應,讀起上來一點也不容易。 更多的請看: 讀後感:
2 min read
android dev

AppCompat 下的 PreferenceActivity

跟 ActionBarSherlock 不同,在 AppCompat 底下沒有對應 PreferenceActivity 的 AppCompatPreferenceActivity,我們只能使用老舊的 PreferenceActivity。沒有加進可能是為了鼓勵使用 PreferenceFragment?確實的原因不知道,我們只能接受苦果。 自從 appcompat-v7 21.0 加進 Toolbar 的支援,要為 PreferenceActivity 加上 ActionBar 變得非常容易。雖然有人寫了相關的 library,不過當然是自己動手寫比較好玩啦。 ![沒加工的 PreferenceActivity 在 Lollipop 和 JellyBean 底下的模樣](/content/images/2015/05/nothing_added.png) 為 PreferenceActivity 加上 Toolbar 在 SettingsActivity
3 min read
一星期一書

讀後感:Traction - A startup guide to getting customers

做好 product 很重要,但沒有人買的 product 等於失敗的產品。如果你還認為「好的產品自然會有人買」,我只能說:「少年,你太年輕了」。 ![Traction](/content/images/2015/05/71qxsMYTQZL-1.jpg) 現在的產品多如繁星,消費者為何會選擇你的產品?不,消費者甚至完全不知道你的產品的存在。在你的產品資訊到達消費者的眼前時,它們已被其他泛濫的訊息淹沒。要有效的銷售產品,所需的精神時間不會比開發產品少。若只專注於開發產品而沒有花時間作銷售,你的失敗指日可待。 Almost every failed startup has a product. What failed startups don't have are enough customers. from Ch 3, Traction 《Traction》教你的正是如何銷售你的產品,如何為你的公司取得
2 min read
Android AsyncTask 問題
android dev

Android AsyncTask 問題

很多時開發 app 需要經網絡拿取資料,android 的話最簡單是用 AsyncTask。AsyncTask提供一個方便清晰的方法,使用另一 thread 去執行費時的工作,然後更新介面,這能避免阻擋 UI Thread 的工作,導致 "Android Not Responding" 的出現。 這次我們來看看 AsyncTask 的用法和它潛在的問題。 AsyncTask 一般做法 因為需要更新 UI,所以 AsyncTask 一般會以 inner class 的形式加在 Activity 中。如 MainActivity 中要下載一檔案,一般會這樣寫: public class MainActivity extends Activity { TextView resultTextView; @Override public void onCreate(
8 min read
一星期一書

四月讀書

讀書太多,有點累,開始有點難維持。自己為了看書,也忽略了 application development 方面,看來要加倍努力才行。 四月只勉強讀了四本書: 《Zero to One》 by Peter Thiel 由 Paypal 創辦人之一撰寫有關 Startup 的書。由複製已有之物很容易,但由無到有,由 0 去 1,卻毫不簡單。此書告訴你一間有創意的公司的大方向和要有的條件。 《Traction》 By Gabriel Weinberg, Justin Mares Almost every failed startup has a product. What failed startups don't have are enough customers.
1 min read
一星期一書

三月讀書

以看書為藉口買了 Kindle Vovage,又在 Book Depository 買了很多本實體書。今個月買書的總數絕對比以往十年加起上來的都要多。 三月看了六本書,讀後感如下: 《The Man in the High Castle》 by Philip K. Dick 故事的設定是,二戰中日本和德國得到勝利的世界,人物用易經占卦變成常事。除了設定有點吸引外,故事很平淡,不明白為何成為經典。看完書再看 Wikipedia 後才懂欣賞此書當中的含意。真與假的世界原來不斷在書中明示暗示。 《Justice》 by Michael Sandel 兩年開始看的書,覺得太悶所以中途放棄,現在繼續看。書中探討的是何謂正義,討論了各大哲學家對正義的觀點。例如汽車失控,直行會撞死五個人,轉灣會撞死一個,那麼應否轉灣呢?又例如我們需要為前人的事負責嗎 (如納綷或日本二戰時的戰爭罪行)? 當然這些問題沒有絕對的答案,不過看了的話可以多一點論據跟別人爭辯。 吳念真的《這些人, 那些事》
2 min read
android dev

由 ActionBarSherlock 轉為 ActionBarCompat

Actionbar 由 Android 3.0 引入,若想要在 2.x 上實現的話,以前都會使用 ActionBarSherlock (ABS), 它是 2.x 年代必備的 library 之一。事宜世易,因 Google 終於開發 for 2.x 的 actionbar library - ActionBarCompat (ABC), 並放在 android-support library 裏,而 ABS 作者也表示停止開發(雖然之後有說過會出 Kitkat version,但現在 android 5.1 推出後還是沒有消息,似乎也是無望),所以大部份新的 project
3 min read
一星期一書

一星期讀一本書和二月讀書報告

看回紀錄,發現 2014 年一本書也沒看過,深感慚愧,所以決定跟風,今年每星期看一本書。 一星期一本似乎很多,但是看了 How to Read a Book a Week 後,就覺得不難了: 書大部份是 300 頁左右,每天其實只需看 40 頁左右便可以。一分鐘一頁的話其實只需 40 分鐘嘛,這時間應該有的。加上我看的通常是小說,很易入口,若遲了的話還可以看些輕小說去濫竽充數,應該可以達成目標。 因為是二月中心血來潮決定的,今年已過了個半月,年尾未必能看完 52 本書,且看今年能看到多少本吧。 現在開始了兩星期,看了兩本書,都是趁 Kindle Store 特價時買的。 二月讀書報告 The Memory Garden The Memory
2 min read
development

程式版本號碼

如大家有留意,最近香港天晴的更新將版本編號由 v1.16.1 變成 v17 。為何由 v1 一口氣跳到 v17 呢?或者說,為什麼將前面的 v1 拿走?其實每次程式出新版本,都會面對一個問題,就是此版本的編號應該是什麼呢? 之前一直使用 Semantic Versioning, 即 MAJOR.MINOR.PATCH 。 規則約略如下: 1. 如有重大改變 (如 API 改動) ,即 MAJOR + 1 2. 如只是功能改動,即 MINOR +1 3. 如只是 bug fix,即 PATCH +1 以「香港天晴」為例,
2 min read

2014 回顧和今年展望

2014 年完結,回顧一下 : * 還在寫「香港天晴」,不過慢了很多,有很多臭蟲和想加的功能也未加上去,來年要加速一點。 * 「HKEPC Reader」 因為官方 app 的推出,令下載率不斷下降。來年完成了「專業版」所預計的功能後,可能會暫停一下了。 * 上年 iPhone 6 大賣,寫了 iReserver 和相關教學。iPhone 果然魅力沒法擋,此教學竟然為本 blog 最多人看的 post。沒教學前本 blog 只有小貓三四隻來瀏覽,現在平均每天過百了! * 不小心看了一些 Game review,碰巧 Steam Summer Sales開始,不小心踏進了儲 PC Game 的深淵。 * 2014 閱讀書本數目為零,太羞家了。來年要讀多一點才行,
1 min read
android dev

iPhone Reserve Bot 教學 5 - 最後的預訂

來到 iReserve 最後的教學。回顧一下完整的步驟: 1. 在第一頁 2. 網頁會下載 驗證碼 captcha 3. 用戶在輸入 apple ID 、密碼和 驗證碼 captcha,按遞交 4. 在第二頁會用 ajax 下載顯示 SMS 的碼 5. 用戶用手機將 SMS 碼以 SMS 形式寄到 Apple 電話,等待回覆 6. Apple 回覆 SMS code 7. 用戶到第二頁輸入發送 SMS 的手機號碼和 SMS 回覆碼,遞交 8. 在第三頁網頁會自動下載你的個人資訊 9. 用戶選擇 Apple
10 min read
android dev

iPhone Reserve Bot 教學 4 - 接收 SMS

前言 來到 Part 4,今次是收 SMS。又來回顧一下完整的步驟: 1. 在第一頁 2. 網頁會下載 驗證碼 captcha 3. 用戶在輸入 apple ID 、密碼和 驗證碼 captcha,按遞交 4. 在第二頁會用 ajax 下載顯示 SMS 的碼 5. 用戶用手機將 SMS 碼以 SMS 形式寄到 Apple 電話,等待回覆 6. Apple 回覆 SMS code 7. 用戶到第二頁輸入發送 SMS 的手機號碼和 SMS 回覆碼,遞交 8. 在第三頁網頁會自動下載你的個人資訊
7 min read
android dev

iPhone Reserve Bot 教學 3 - 發送 SMS

前言 來到 Part 3 了。今次我們來玩 SMS,開始前我們來回顧一下完整的步驟: 1. 在第一頁 2. 網頁會下載 驗證碼 captcha 3. 用戶在輸入 apple ID 、密碼和 驗證碼 captcha,按遞交 4. 在第二頁會用 ajax 下載顯示 SMS 的碼 5. 用戶用手機將 SMS 碼以 SMS 形式寄到 Apple 電話,等待回覆 6. Apple 回覆 SMS code 7. 用戶到第二頁輸入發送 SMS 的手機號碼和 SMS 回覆碼,遞交 8.
9 min read
android dev

iPhone Reserve Bot 教學 2 - 登入 Apple Store

前言 現在開始我們寫 Android App,請確保你有以下智識,否則應該跟不上。 * 懂 Java (if-then-else, for loop, HashMap) * 懂 Hello World 程度的 android app * 懂設定 eclipse / IntelliJ IDEA 去 import library 和 compile & run android app 請留意本文會介紹一些 Android 相關概念, 但 code 以簡單化為目標,未必是 Android Design Best Practice。 前期準備 新增一個 Hello World Application 開啟 AndroidManifest.xml 新增以下
13 min read
android dev Featured

iPhone Reserve Bot 教學

寫訂 iPhone 嗎?想學寫 Android App 嗎?看看這篇教學吧! 本教學透過寫預訂 iPhone 6 (HK) 的自動化程式 (bot) 這一實際例子,教大家寫 Android App。你只需要懂得寫 Android 的 Hello World App,便可以跟著教學一步一步的寫好這個 bot,並在途中學到 Android App 的一些相關概念。 來,學懂後就算將來要預訂 iPhone 6s 或 iPhone 7 也不用到討論區跪求 bot 了。大家一起踏入寫 app 的深淵吧! 1. 教學 1 - 搜集資料 2. 教學
1 min read
android dev

iPhone Reserve Bot 教學 1 - 搜集資料

前言 全城熱炒的 iPhone,每次 Apple 一放貨出來,不用三十秒便已被人訂光,不用自動化程式去遞交基本上沒有機會訂到。其實這類自動化程式不太難寫,因為只是模擬 html request 而已。我們來研究一下吧。 要求 開始前,建議你對 html get/post 有基本認識,也要對 programming 有基本底子。另外由於 Reserve 需用到 SMS,我們會用 Android 來寫此程式,所以你最好對 Android App development 有所了解。 基本流程 要寫 bot,當然要了解整個流程,如有幾多個頁面,每頁之間要交換的資料等。 如你已買過一次,應該也知道整個預訂流程,現在整理一下: 1. 瀏覽第一頁 2. 用戶在輸入 apple
5 min read
跑步

Pebble as Running Watch

當經過一年等待後才送到的 Pebble ,一直因為自己的懶惰沒有跑步,所以完全沒有使用相關的功能。最近下定決心跑步練習,當然第一時間試用 RunKeeper + Pebble 。 RunKeeper 是智能手機上最先推出的跑步程式之一,它容許使用者透過手機上的 GPS 記錄路步路線,從而進行記錄、數據分析和社群分享。它在 Pebble 剛公佈時,已成為 Pebble 的合作伙伴,是第一個 (也是唯一一個) 跟 Pebble 整合在一起的運動 App。這也是令我買 Pebble 的主要原因之一。 Pebble with RunKeeper 當 RunKeeper 連接 Pebble 後,可以在主畫面看到 Pebble 的圖示。要開始運動,可按「Start」, Pebble 會即時變成 RunKeeper 介面。 ![RunKeeper 介面]
4 min read
app redesign

「香港政府通知你」的問題

Android App 「香港政府通知你」主要的功能是透過智能手機,即時通知用戶有關香港政府發表的訊息,包括交通消息、天氣、外旅警告等,意念和功能都很好。 不過其設計上有少許問題,如能改善更好: 很多 Notification 時的顯示問題 當突然有很多訊息要提醒時,GovHK 便會有超多的 notification,非常難看。 ![有多個 notification 時](/content/images/2014/Jul/Screenshot_2014-01-08-14-53-49.png) Android 4.x 以上的 notification 已可自由放大,Android Design Guideline 也建議開發者將將多個訊息合在一起,以免 notification 過多過亂,看見也厭煩。 有廣告 程式底部有一大 Banner 宣傳其他 GovHk 的程。想不到政府
3 min read
香港天晴

「香港天晴」一歲

不經不覺,「香港天晴」已推出一年了。 這一年,由 version 1 只有主程式,陸續的增加 widget 、入空氣質素健康指數、自訂 widget 顏色和字型大小,到最近的加進 push notification,大大小小的總共出了 36 個版本。 期間曾在 「HKEPC」、「香港討論區」和「香港高登」作宣傳,每次宣傳下載量也會有提升一點,不過幫助不算大。另外也曾電郵各推介 app 的網站,最後只有 iloveapps.hk 和 Trend.hk有作推介,unwire, android-hk 之類的沒有反應。 雖然下載量不多,但也趁此機會分享一下相關數據資料: 1. 總下載量是四萬多,但現時安裝量只有二萬多,看來有近四成人在下載後又刪掉了 (哭); 2. Android 2.
2 min read
android dev

開發 Android Widget 遇到的問題

寫「香港天晴」的 widget,遇到一些奇怪的情況,特此記下。本篇是之前寫的再修訂一下而完成的。 ![香港天晴的小工具](/content/images/2014/May/sunny_widget-1.png) Widget 不要做為可修改大小 自從 Android 3.0 以來,Widget 可以設定為自訂大小 (resizeable) ,根據不同的大小顯示不同的資訊,如以下的天氣 widget: ![Weather Widget](/content/images/2014/May/widgets_resizing02-1.png) 這樣可以以一個 widget 便代替以上四個 widget,減少一個程式有太多不同的 widget的情況。 可是呢,實際做下去會發現有點問題: 找不到 widget 的實際大小 要根據不同大小顯示不同資料,便首先要獲取現在
6 min read