Hello World
CodeTengu Weekly 碼天狗週刊
CodeTengu Weekly 會在 GMT+8 時區的每個禮拜一 AM 10:00 出刊,每期會由三位不同的 curator 負責當期的內容,每個 curator 有各自擅長的領域,如果你在這一期沒有看到自已感興趣的東西,可能下一期就會有了。你也可以瀏覽一下前幾期的內容。
目前的 curator 陣容:
- @vinta - I failed the Turing Test - 科幻迷,最近在讀 The Forever War
- @saiday - Imnotyourson - 最近在看禪與摩托車維修的藝術
- @tzangms - Oceanic / 人生海海 - 衝動型購物
- @fukuball - ImFukuball - 徵會寫 HTML & CSS 的網頁設計師
- @mingderwang - Ethereum enthusiast
- @kako0507 - 熱愛嘗試新事物的前端工程師
- @chiahsien
- @hiroshiyui - 沒有人是一座孤島
- @uranusjr - Smaller Things - 不愛談技術的技術人,最近對做菜很有興趣
- @kkdai - 態度萬歲 - 喜歡 Golang 的略懂工程師,最近在學機器學習 (疑?)
- @yhsiang
你也可以關注我們的 Facebook、Twitter、GitHub 或微博,有很多 Weekly 看不到的內容。有任何建議或疑問也可以來 Gitter 聊聊,歡迎亂入。
@fukuball
Introducing Similarity Search at Flickr - Flickr 的相似圖片搜尋技術
Machine Learning:中級
本篇文章介紹了 Flickr 的相似圖片搜尋技術,說到相似這樣的問題,直接可以想到的就是使用矩陣降維後再進行內積做相似運算,而 Flickr 也大概是使用相同的原理,不過並不是直接使用矩陣運算的 SVD 或是 LSA 降維,而是使用類神經算法的方式將圖片對應至一個維度較低的 tag feature space(但其實就是降維),在這個空間再使用 K-Means、LOPQ 等算法去比較圖片的相似性,滿容易懂的,可以參考參考。
林軒田教授機器學習技法 Machine Learning Techniques 第 9 講學習筆記
Machine Learning:中級
上一講我們介紹了 Adaptive Boosting 這種可以結合多個 Weak Learner 的 ML 演算法,這一講將介紹另一種 Aggregation Model - Decision Tree 這老舊卻依然很常用的 ML 演算法,Decision Tree 好用的地方在於容易解釋的特性,比較容易用來說服舊時代老人。
tf-seq2seq - A general-purpose encoder-decoder framework for Tensorflow
Machine Learning:中級
Encoder-Decoder 是目前非監督式學習一個熱門的領域,我們可以將這樣的機器學習技術使用在自動翻譯、自動懶人包、AI 對話、自動圖片標題等領域上,而這是一個由 google 開源的 Encoder-Decoder Framework,讓有興趣的人可以自己建立相關的 Model。但其實沒有好用的 Data 自己也玩不太起來,如果也可以提供足夠的 Training Dataset 就好了!
The State of PHP MVC Frameworks in 2017 - 2017 PHP Framework 現狀
PHP:初級
PHP MVC Frameworks 的現狀如何呢?長話短說,首選就是用 Laravel 或是 Symfony,然後才選其他,大家可以看看文章作者的論點。然後,Laravel 社群在台灣蠻活躍的,所以選擇使用 Laravel 應該會在學習上蠻有幫助的,順帶一提,今年台灣會辦 Laravel Conf 喔!敬請期待!
Q&A With The Speakers From Laracon Online 2017
PHP:初級
今年 Laracon Online 的一些大神問大語錄,有一些技術性的問題,有一些私人的問題,其實能這樣直接跟大神們互動也是蠻新鮮有趣的!
@chiahsien
FBMemoryProfiler: iOS tool that helps with profiling iOS Memory usage.
Facebook 推出好一陣子的記憶體用量檢測工具,在開發 iOS app 的時候可以三不五時用這工具檢查看看有沒有應該放掉卻沒放掉的物件,也可以檢查是否有 retain cycle 的產生。
最近在幫公司 app 大體檢,用這個工具讓我找到不少 memory leak。要看記憶體問題的話,它比 Instruments 還方便使用,搭配 Xcode 的 Memory Graph Debug 更是如虎添翼。
一個 AFNetworking 的 retain cycle 問題
這是在健檢公司 app 的時候發現的問題,其實這本質上並非 AFNetworking 所造成的,而是 NSURLSession 的設計使然,只要有用到 NSURLSession 又沒特別去留意文件說明的話,就很容易踩到這個坑。分享這篇小短文給各位,快回去檢查一下自家的 app 有沒有這個問題吧。
A Quick Look at Semaphores in Swift 🚦
當有多組線程要存取同一個變數的時候,稍微有點經驗的工程師都知道這時要為這個變數「上鎖」,才不會造成存取不一致導致非預期結果。蘋果提供了多種上鎖的機制,semaphore 是個相當好上手而且效能也很出色的一個選擇。這是一篇詳細講解 semaphore 的科普文,建議每個人都該讀讀看。
延伸閱讀:
Engineering the Architecture Behind Uber’s New Rider App
當 Uber 持續成長之後,他們的叫車 app 也遇到每家大公司都會遇到的問題,就是程式碼經年累月下來已經龐雜到難以維護的地步,所以他們決定要整個砍掉重練,規劃一套全新的架構。
設計這個架構的時候,最重要的兩件事就是要「核心功能穩定」並且「易於擴充新功能」,最終的結果非常令人滿意,他們讓 iOS 跟 Android 平台共享了核心的架構與流程,以及商業邏輯。
看完之後就覺得:「原來 Uber 的程式碼跟我們一樣也是一坨塞在 Controller 裏~XD」,以及「果然架構複雜一點之後,都會選擇類似 VIPER 的設計啊」。
延伸閱讀:
Investigating Thread Safety of UIImage
在 iOS 開發裡,我們為了效能的考量,通常都會把「載入並解碼圖片」這個動作丟到 background queue 去執行,可是你有想過「建立圖片」這個動作並非線程安全嗎?PSPDFKit 的強者 Peter Steinberger 就在他們的官方部落格分享了他們對這問題的研究與解法。整篇文章非常精彩,值得一讀!
hipposan/Oslo: An anatomy of Oslo
這是一款由愛好者自行開發的 Unsplash 第三方客戶端,Unsplash 提供了許多高品質的照片,並且開放讓人自由使用。這款 app 除了可以從 iTunes 下載安裝之外,作者也公開了所有的程式碼,供感興趣的人學習參考。
同場加映:Irvue for OS X,Unsplash 的桌面端軟體,可定時更換桌布,同時也有提供螢幕保護程式。
