Ryan Leung

Ryan Leung

訂閱的 newsletter 列表

要避免技術的過時,當然是定期吸收新聞和知識,但 IT 領域最大的問題是資訊太多,如何有效率吸收成為另一門學問。 我是以一星期一次的 newsletter 為主,RSS 為副來看新聞資訊的。為何以 newsletter 為主呢?因為 RSS 實在太多太雜,雖然 newsletter 被篩選過,但都是精華,比起 RSS 漫無目的地看好很多。若看完 newsletter 還覺得不夠過癮的話,還可以再看 RSS,這樣就足夠消磨整天。加上時間實在有限,要在最短時間獲取最多知識,看 newsletter 實在最適合。 以下是我有訂閱的 newsletter,都是我有興趣的內容: 1. Hacker Newsletter http://www.hackernewsletter.com/ 很多有趣的連結。創業、side project 、development、
3 min read
android dev

Quick Note: Android Runtime Change

為免自己忘記,所以短短的快寫一篇,記下來。 Android 的 Runtime Change,即 App 運行時的裝置轉變,常見於螢幕旋轉、keyboard 彈出等。當這些情況出現時,Activity 會被 onDestory(),然後會以新的 "configuration" 執行 onCreate()。 若無特別註明,Android 會自動處理 runtime change 。但若想自行處理的話 (如橫向螢幕時,可在 Activity 中 override onConfigurationChanged() @Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); // Checks the orientation of the screen if (newConfig.
1 min read
android dev

免費的錯誤回報 - Crashlytics

之前介紹過使用 ACRA 來做 crash reporting,其實除了它外,還有 Crashlytics 可以選擇。在 ACRA 久沒有更新的情況下,是時候研究一下 Crashlytics。 Crashlytics 在 2014 年 10 月整合到 Fabric 的服務中,它支援 Android、iOS、Web 和 Mac OS X。跟 ACRA 一樣,Crashlytics 是免費的。只要在你的 app 設定好 Crashlytics,當 app 遇到例外錯誤時,便會自動回報到後台 server,讓開發者容易分析錯誤,找出原因。 以下文章只討論 Android 版,並會交替使用
5 min read

2015

來個 2015 年的簡單回顧。 App 今年很懶。「香港天晴」和 「HKEPC Reader」 都停滯不前,只有小 bug fix,沒有大更新。原本計劃要做的功能也一拖再拖,實在無地自容。用戶人數也是橫向發展,沒有做宣傳和沒有更新之過也。 而因為 iPhone 6s 的推出,更新了 「iReserver」。可是到十月尾時被人投訴侵犯 Apple 商標,結果被強制下架,連修正的機會也沒有。難得到手的五星評價沒有了,實在傷心。 開始感受到要在別人的 platform 生存的話,要遵守別人的規則。而別人理不理睬你,也不到你決定。網絡霸權的年代開始來臨了。 另外,也以 HKEPC Reader 為架構,寫了個 HKG Reader 用來看高登的。看帖發帖的功能已經完成,但後來看到 datHKG
3 min read
一星期一書

十二月讀書

為趕數,十二月讀多了一點。 《曼谷的發條女孩》 - Paolo Bacigalupi 在石油已經用盡的世界 ,世界以人力、獸力和煤炭來驅動。人類受基因變異的病毒威脅,需要不斷研發新的基因食物以生存。在這樣的環境底下,曼谷卻連續幾年生產了不受感染的食物,引起了外國基因公司的 垂涎。國來國外的勢力,都在影響曼谷的局勢。與此同時,一個在日本「生產」的基因試管人類,因被主人拋棄,流落曼谷的色情店鋪,爭扎求存,最後竟然成為改變曼谷的導火線。 本書的世界觀完整,設定合理。非完全的烏托邦,也不是完全的廢墟。以泰國人為主的角色,加上日本人和華人,比起普遍以白人為主的故事,耳目一新。描述的世界陌生又熟悉。 世界倒退,但人心不變,還是一如以往的以金錢掛帥。 本書獲得 Hugo Award 和 Nebula Award ,實至名歸。 《Peopleware》 - Timothy Lister, Tom DeMarco
3 min read
android dev

轉 Gradle 詳細步驟

之前寫過轉 gradle 的方法,不過那篇太隨便。再寫一篇詳細一點。 1. 加入 build.gradle 加入空白檔案,將其命名為 build.gradle 2. 加入基本內容 在 build.gradle 加入以下內容 buildscript { repositories { mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:1.3.0' } } apply plugin: 'com.android.application' android { compileSdkVersion 18 buildToolsVersion "18.0.1" sourceSets { main { manifest.srcFile 'AndroidManifest.xml'
3 min read
books

讀後感:《師父,那些我在課堂外學會的本事》

《師父,那些我在課堂外學會的本事》是《The Knack: How Street-Smart Entrepreneurs Learn to Handle Whatever Comes Up》的中譯本,由 Norm Brodsky 和 Bo Burlingham 撰寫。談的是作者做生意的道理,很多都似乎是基本和老生常談,卻似乎很多人都沒有做,是因為知易行難? 書中的重點: * 要先定下目的。你的長期目標是什麼?情緒性的還是事務性的呢? * 人生規劃,你想工作二十小時還是想要假期? * 毛利率和現金流比一切都重要,營業額是沒什麼作用的。了解現金從那裏來,這才是令公司活下去的關鍵 * 教育市場很昂貴。 * 寫事業計劃書,最重要是給自己看,不要用電腦去做,要用手寫手作,才能真正了解你的計劃。 * 時間比金錢寶貴 * 要堅持也要靈活,要專注,但又不能固步自封。 * 用心做,敬重你的對手和客戶,不要嘗試佔別人便宜 * 要從失敗中學習,
2 min read
一星期一書

十一月讀書

今個月看了四本,總算達標。只剩下十二月,似乎不能達成看夠 52 本書的目標了。還是要學吳局長一樣,將雜誌也算進去?好吧,一會吃飯時就看兩本「書」吧。 《Business Adventures》 - John Brooks 書寫的是五六十年代發生的商業故事,全都是真實的故事。有股市上落的影響,有各國間合作努力維護匯率的故事,有 Xerox 的發跡史,也有明星人物般的生平故事,甚至是稅項的歷史。商業的事其實很難寫得有趣吸引,不過作者做到了。 現在回看六十年前的事物,覺得當時的社會真的充滿人情味和良心。 《The Servants》 - James C. Hunter 談怎樣做領袖的一本書。以 Servant Leadership 為主旨。 雖然有少許宗教味道,但是言之成理。最重要的觀點是: To lead is to serve。要
2 min read
Material Design

Material Design Patterns 教學 (4) - RecyclerView

本來想寫 AppBarLayout,不過發現會牽涉到 RecyclerView,所以決定先寫 RecyclerView。 RecyclerView 就像 ListView,都是透過 scrolling 的動作來顯示一個清單,不過它更具彈性更自由。RecyclerView 可以很簡單的將它設為橫向或直向,或者以格仔形式顯示,而且設定加減項目的動畫也很容易。它的定位是 ListView 的後繼者,之前介紹過的 CoordinatorLayout 也只支援 RecyclerView 而不支援 LisView,所以大家還是用一用 RecyclerView 吧。 ![RecyclerView 架構](/content/images/2015/11/RecyclerView.png) 此教學分為以下幾步: 1. 安裝 2. 設定 layout 3. 編寫 adapter 4. 給合 adapter 和
8 min read

《Indie Game: The Movie》

Indie Game ,即為獨立開發者開發的遊戲,它們沒有大公司在背後支持,團隊普方只有一至兩個人,去完成整隻遊戲。這些較低開發成本的遊戲近年興起,有些大賣特賣, Braid 、Super Meat Boy 和 FEZ 是當中的表表者。《Indie Game: The Movie》 便是訪問這三隻遊戲的開發著的記錄片。 遊戲 Braid Braid 在電影拍攝開始時已經發售。電影主要談及它的遊戲概念、主題思想等。 Super Meat Boy Super Meat Boy 在電影拍攝其間發行並且大賣。電影很大部份都在訪問此遊戲的兩位開發者,在開發遊戲時的繁忙生活,他們遇到的問題 (家庭,生活問題)和發行後大賣時的感想。 FEZ FEZ 在電影拍攝後期才完成,但未發行。電影談及它開發時的情況,開發者的經歷和心態,跟 partner 決裂後引起的問題。 感想 看此電影,
3 min read
一星期一書

九月十月讀書

這兩個月忙著寫 iReserver,所以沒什麼時間寫 blog 和看書。結果一拖拖到現在才寫九月十月讀書報告,實在慚愧。 《A Clash of Kings》 by George R. R. Martin 各方爭奪帝位。多了很多人物,也死了很多人。劇情進展緩慢,龍的出場次數非常少。人物支線太多,結果看了一整個月。 起初以為此系列是奇幻小說,類似 《Lord of the Ring》,但現在看來它是政治的紛爭較多,令我不太感興趣。要暫停一下了。 《55 歲開始的 Hello Life》 - 村上龍 55 歲,人生開始邁向最後階段。在這過程中,人類還是會迷惘。本書包括五篇以 55 歲的人物為主角的短篇故事,描述他們遇到的困難。每個故事最後雖然不算大團圓結局,但都向好的方向發展,算是勵志的一本書。
1 min read
iPhone

預約 iPhone 6s 跟以往的分別

一年一度 iPhone 盛事又來了。 雖然不知今年會不會有炒價,但還是不能阻擋我們玩 iReserve 的熱情。想自行寫 bot 的可重溫一下我們上年的 iReserve Bot 教學。想第一時間接收我們的資訊,請登記我們的電子報: 登記電子報 預約流程 今年玩法跟以往有所改動,流程變為: 1. 選機款 2. 選 Apple Store 3. 登入 Apple Id 4. SMS 5. 選時間 6. 遞交預約 以往是先登入後才選機款的,現在要一開始先選機款地點。有機會的話可試試遞交預約時改變機款,看看會否有錯誤。 改為 6 時開始 iReserve 下次開啟的時間應為 9 月 26 日早上六時,玩完可以再瞓下。仲瞓?
2 min read
Material Design

Material Design Patterns 教學 (3) - Snackbar & CoordinatorLayout

相信大家有用過 Toast, Toast是 Android App 用來顯示簡短提示或通知的一種方法。Material Design 引入 Snackbar ,用來取代 Toast。比起 Toast ,Snackbar 歸屬於顯示中的 view,可以加「行動」按鍵,並且可以以左去右形式掃走。 Snackbar 用法 Snackbar 使用方法是跟 Toast 一樣: Snackbar.make(contentView, "I am snackbar", Snackbar.LENGTH_SHORT).show(); 跟 Toast 不同的是,Snackbar 是以 view 作參數,而不是以 context。這確保 Snackbar 只在有 view
3 min read
一星期一書

八月讀書

輕小說就像 Junk Food,明明知道沒有營養,但還是忍不住的一吃再吃。這個月不小心看了《Overlord》,雖然看了幾期後覺得有點悶而暫停,但還是按捺不住,繼續將它看光光。 《Overlord 》 1 - 9 卷 - 丸山くがね 某擬真 online game 終結營運之日,主角因懷緬過去和朋友的開心時光,待在遊戲中,等待被強制登出。但本該如此,但在遊戲終結時主角被被轉移到異世界,同時遊戲中的屬下 NPC 變成有血有肉有思考能力。 為了與伙伴創造的 NPC 一起生存,同時找尋其他玩家,主角開始收集資訊,努力生存。不過主角是 Level Max 的角色,在異世界中有超越神的實力,任何對手基本上是一招 KO (想起「一拳超人」)。所以故事由一開始展現主角威能,到中期改為由主角的屬下 NPC 去各自執行任務遇見的問題和冒險。 雖然好想看看主角展示威能的劇情,但全是這些劇情的話應該很快會令人厭倦吧?
3 min read

Idea 不值一錢

網上論壇經常有 post 招人合作,大部份都是說他有一個創業構思,但缺人寫 program ,有興趣就聯絡合作,一起努力云云。因為他不懂 programming ,所以他出 idea 你出 program ,而整個帖完全沒提及那 idea 是什麼。就算有人問 idea 是什麼,他仍然認為是商業機密,死命不提,只是說很大潛力,會是明天的 amazon 淘寶 facebook 混合體,必賺。 每次看到這些 post,真不明白為何出 post 者不肯說出他的 idea。 ![I'm an idea guy](/content/images/2015/09/idea-guy.jpg) 不是說要他將整份 proposal 貼出來。一個構思到產品面世,中間牽涉很多步驟和細節,
3 min read
android dev

Material Design Patterns 教學 (2) - Floating Action Buttons

Floating Action Button (FAB),直譯為「浮動動作按鈕」,為 Material Design 的其一大標誌。它是一個「浮」在畫面上的一個按鈕,按下去則執行該畫面常用的功能。 ![FAB Sample](/content/images/2015/08/fab_sample.jpg) 加入 FAB FAB 的使用非常簡單,我們繼續使用 Part 1 的 project ,將 activity_main.xml 中的 LinearLayout 轉為 FrameLayout ,然後加上以下 code: 3 min read
android dev

Material Design Patterns 教學 (1) - Navigation Drawer

想有漂亮的 Material Design,其實 Google 已提供 Android Design Support Library 可供使用。它支援 Android 2.1 或以上,提供不少好用的 UI element,可方便做到 Material Design Pattern 的效果。我們在此逐一介紹 (可以一段時間不用再煩惱寫什麼,Yeah! 用 code 代替一部份內容,寫少很多,Yeah Yeah!)。 安裝 Android Design Support Library 可通過 Gradle 來安裝: dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile
7 min read
android

RunKeeper UX 問題

用了 RunKeeper 做運動記錄一年多,發現它有大大小小的問題。早幾個月的大改版,程式變為 Material Design,以為問題會有所改善,誰知沒有改變,還多了一點,實在是不吐不快。 我的用法 先說說我的用法。使用的是 Android 版的 RunKeeper,除了簡單的 start/stop activities,我有跟著 RunKeeper 內置的 training 去跑,所以有使用 interval 的設定。另外我會使用 Pebble 顯示跑步速度,並有將 Mio Link 心率錶連上 RunKeeper 顯示心率。會在 App 和 Web 上查看記錄和 training 資料。 UX 問題 以下為 Android
7 min read
一星期一書

讀後感:《字型散步》 - 柯志杰, 蘇煒翔

介紹字體的書本來就不多,介紹中文字體的就更少見了。《字型散步》就是少數會介紹中文字體的書。當中有些文章也在 justfont blog 上刊載。 字體充斥著日常生活,但究竟當初為何會使用此款字體而不是另一款呢?原來選擇字體不只是漂亮與否的問題,而是需考慮它的可視性、可讀性和易辦性。 * 可視性指文字在一段距離之外是否清晰可見。字型大小、顏色、粗幻等,在發光膠格上顯示還是在 LED 牆顯示皆需列為考慮因素。 * 可讀性指文字是否易於閱讀吸收和理解,由文章內容是否通順到字型能否讓人快速看過去而不會卡卡的。行距、對齊方式和排版。 * 易辦性指文字是否易於辦識,不會被讀錯。在快速公路上的路版指示皆需為容易辦識,否則後果可能不堪設想。 合適的字體除了需考慮以上三點,還需顧及它的外觀和使用者習慣。如在傳統的節慶日子會選用似書法字的標楷體,在嚴肅的場合我們不會使用輕挑的娃娃體等。 然後談的是中文字體設計。中文字的特點是字的中宮與重心,傳統來說是重心高,中客緊湊的,但現在新潮的是相反,重心低,中宮放鬆。這是因為顯示媒體和印刷術的改變,現在的文字都是顯示在螢幕上,重心低和較放
4 min read
一星期一書

七月讀書

今個月看的差不多全是中文書,看了五本。 《84 Charing Cross Road》 by Helene Hanff 前半是美國的作者兼買書者 Helene Hanff 跟英國的書店 Marks & Co. 的 Frank Doel 的書信往來,後手是作者出書後首次來倫敦的遊記。 詳細讀後感:《84 Charing Cross Road》 by Helene Hanff 《創業大時代》 - 黃雅麗, 方健僑 香港 Startup 的訪問談,可知道香港各 startup 的歷史和故事 詳細讀後感:《創業大時代》 - 黃雅麗 《一人又一故事》 - 蘇鑰機, 張宏艷, 李玉茹 本來是想看《一人一故事》的,
3 min read
一星期一書

讀後感:《創業大時代》 - 黃雅麗, 方健僑

作者訪問了八間香港 startup ,其中四間 (GoGoVan, Insight Robotics, LifeHack, WeLend) 有較詳盡的篇幅介紹,後面「衝出國際的香港Startup」的 startup (9gag, Coachbase, Casetify, Talkbox) 篇幅反而較少,加起來只有前面一章左右的內容。 本書的訪問講及各 startup 是如何發跡、如何到達現在的規模、未來展望等。原來 GoGoVan 創辦人起初是賣飯盒;香港原來也有公司玩 content marketing;在香港搞 Peer-to-peer 借錢麻煩的是法律的限制等。書中也有一些 startup 名詞講解,如 Content Marketing 、「破壞式創新」等,但這些講解只佔很少部份。 看此書可知道香港 startup 的歷史和故事 (原來香港也有成功的 startup !),不過如果你打算從中偷師可能會失望,因為可以借鏡的地方不多,而且書是以訪問為主體,
1 min read
一星期一書

讀後感:《84 Charing Cross Road》By Helene Hanff

84 Charing Cross Road 是書店 Marks & Co. 的地址。住在美國的 Helene Hanff 一天看到英國書店 Marks & Co. 的廣告,開始郵購書籍。《84 Charing Cross Road》的前半是作者兼買書者 Helene 跟 Marks & Co. 的 Frank Doel 的書信往來,後半是作者出書後首次來倫敦的遊記。 除了郵購書籍,作者透過書信,跟店裏的職員成為朋友/筆友。她曾計劃到倫敦探望他們,但每次都因事取消。結果直至 Frank Doel 死後,Helene 將書信輯錄成書,她才有機會到倫敦,可惜 Marks & Co. 已經關門大吉。 後來作者出書後應邀來倫敦宣傳和遊玩,她的所見所聞便記錄在書的後半部份 (即是說,
2 min read
android libraries 推介

Android Libraries 介紹 - Butter knife

Butter Knife 簡介 Butter Knife - Field and method binding for Android views。助你簡化程式碼,方便閱讀。 使用方法 開發 andriod app 的時候,一定有寫過類似的 code: class ExampleActivity extends Activity { TextView title; TextView subtitle; TextView footer; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.simple_activity); title = (TextView)findViewById(R.
2 min read
android dev

將 Android Project 轉為 Gradle based

Android Studio 早前正式脫離 beta,Google 也宣佈放棄支援 eclipse,加上越來越多 library 支援 gradle,是時候將舊的 android project 轉為 gradle based。 除了運行速度快,Android Studio 對 Gradle 的支援較好。Gradle 現在是開發 android 的 de facto,對我來說它是 ant + maven 的混合體,設定相對簡單,不用處理編緝麻煩的 xml。 Eclipse project 要將 Eclipse project 轉為 Android Studio's project,很簡單,只要 right click project,
2 min read