January 8th, 2016
(image from twitter)
這是什麼?
程式週記主要內容如下:
- Gihub project 介紹:
- 主要會貼一些github,但是會盡量寫上一些有用的評語(或是我容易想到的關鍵詞)幫助以後查詢
- 網路文章心得:
- 會寫些心得,強迫自己閱讀.
“程式週記”並且定期週期性更新.
本週摘要
本週想研究iOT傳輸協定中使用UDP的CoAP(Constrained Application Protocol),看了挺久的RFC還是沒有很了解.先寫一些簡單的應用來試著了解.
iOS/MacOSX
- iOS崩溃调试的使用和技巧总结
- 如何來抓取iOS App crash log? 這裡有三個建議方式:
- 使用第三方的Crash log ( 這裡是講百度)
- 自己寫crash log然後上傳server
- XCode-Device裡面查看(如果機器在你那邊)
- 使用Apple Xcode自帶功能 Window->Organizer->Crashes
- 如何來抓取iOS App crash log? 這裡有三個建議方式:
Python
- 透過IDAPython 反組譯Python
- 一連有三部曲教學,主要是教導如何查看變數與斷點偵錯.
Go
- rakyll/gom: A visual interface to work with runtime profiling data for Go
- davecheney/profile: A simple profiling support package for Go
- Dave Cheney寫得,將pprof簡單化的函式.
- mission-liao/dingo: An easy-to-use, distributed, extensible task/job queue framework for #golang
- 這個task/job queue library提供許多進階的功能:
- Two-way binding
- Distributed Task Framework
- Stateful Worker Functions
- 這個task/job queue library提供許多進階的功能:
- dustin/go-humanize: Go Humans! (formatters for units to human friendly sizes)
- 算是一個helper,可以幫你把許多資料格式轉換的鄉黨的人性化.ex:
humanize.Bytes(82854982) //83MB
humanize.Time(someTimeInstance) //3 days from now
- 算是一個helper,可以幫你把許多資料格式轉換的鄉黨的人性化.ex:
- pubnative/mysqldriver-go: GC optimized MySQL driver
- 原本的Go build-in的MySQL driver由於使用到太多的heap會造成GC頻繁的產生,而這個是 GC optimized 過的 Golang MySQL driver,大量減少heap的產生,進而減少GC的發生次數.讓系統效能能夠更好.
- Heap size與Heap的使用率是GC發生的基本參數(參考這篇Go GC: Latency Problem Solved).雖然透過GOGC可以調整heap的數量(GOGC越高heap上限變得更高,但是記憶體更消耗.反之記憶體比較低,但是GC會很常發生.)
網路文章
- 区块链:比特币的灵魂,下一个风口
- Block Chain一直就是Bitcoin最值錢的部分,慢慢的許多應用也會浮出來.最近比較紅的就是有人將Block Chain跟Application結合在一起,可以透過BitProof裡面的Block Chain來證明你就是該應用程式的創始人.這邊有更詳細的說明文章.當然也有IBM想透過Block Chain來達到Smart Contract的功能.
- “【簡報】《Final Fantasy Record Keeper》開發實務暨產品架構經驗分享”
- 由專業的電玩部落客”吹著魔笛的浮士德“介紹,有完整的中日文對整解釋.. 以下為簡單的心得:
- FFRK的架構為WebView + WebGL (疊在上面)
- 一開始的時候CPU Loading 過高與效能不彰做了不少優化
- 也提到高負載與ChatOps(主要是Jenkins跟Hubot)
- 由專業的電玩部落客”吹著魔笛的浮士德“介紹,有完整的中日文對整解釋.. 以下為簡單的心得:
- The Absolutely True Story of a Real Programmer Who Never Learned C
- 灣區日報看來的笑話: 程式神童Sam有一天卡在C的bug裡,然後他就請教了他叔叔:一位已經很久沒寫程式的工程師.他叔叔說.. 我是世界上少數不需要學習C的軟體工程師.. 因為..
有聲書心得
IT公論#185-「很多 longform 是没有什么深度的。」
- 主要是請到Huffington Post的華人編輯周宗珉來談談美國新聞媒體的一些近況,Huffington Post是一個全世界最大的網路新聞媒體,主要內容以政治新聞為主.相當的驚訝該媒體竟然相當的擁抱科技,並且會要求每個編輯要學程式與網頁編輯.
- 這邊有簡單分類網頁廣告的類別:
- Banner: 第一代的廣告上面有橫幅的廣告頁面.
- Programatic Advertise: 透過機器來廣告,也是Adblock主要在封鎖的部分.
- Native Advertise: 指的是鎖定在文章裡面的廣告,不是第一代的廣告的
- 關於Adblock有一個特別的想法是會安裝adblock的人原本就是不會去點廣告的(就算廣告有出現),所以沒有裝adblock(據說現在有安裝比例大概是10%)的人就是主要的廣告群眾.而廣告主也省去了無效顯示的數字.這個想法很有趣.
網站介紹
-
[Free C++ Books TFE Times 36本免費c++電子書](https://tfetimes.com/free-c-books/) - 有需要就拿吧… 不少Hacker與基本知識的C++電子書
- “智由博集”
- 透過科技新知的2015十大誇張專利找到這個網站,發現裡面專利相關知識不僅僅是科技法律人士需要知道,更是開發者與新創公司該注意的.
- 其中有一段關於專利屬地主義的敘述,在Line與騰訊的專利上面有提到:
(以下部分引自 http://www.proguidescreen.com/?p=2278)
專利特有的『屬地主義(即專利權僅在核准專利之該國有效)』,更白話講一點,
中國專利僅在中國擁有專利權,想要拿去美國對他人提出訴訟,那可是門都沒有!
經筆者檢索後,發現騰訊根本沒有把這個技術拿到其他地區做專利申請(如在台灣,就沒有找到該件專利)
- Raft 論文中文翻譯
- 雖然英文不難懂(比起Paxos)不過有中文可以看看會比較容易上手.
- 葉大(William Yeh)的線上Ansible教學
- 雖然還在建置中,但是已經有基礎兩堂課
本週專案
這邊會寫一些我的Project 52的成果.
本週主要開始研究CoAP (一個輕量化在IoT上的通訊協定),這裡有簡單的整理比較:
Protocol | CoAP | XMPP | RESTful HTTP | MQTT |
---|---|---|---|---|
Transport | UDP | TCP | TCP | TCP |
Messaging | Request/Response | Publish/Subscribe Request/Response | Request/Response | Publish/Subscribe |
LLN Suitability (1000s nodes) | Excellent | Excellent | Excellent | Excellent |
Success Storied | Utility Field Area Networks | Remote management of consumer white goods | Smart Energy Profile 2 (premise energy management/home services) | Extending enterprise messaging into IoT applications |
本週透過CoAP的Client/Server架構來試著完成Pub/Sub的機制的Client/Server.接下來會更深入的研究他的RFC
https://github.com/kkdai/CoapPubsub A PubSub client/server using CoAP protocol