前言
8月份有蠻多事情要處理,首先是 Go Taipei 社群和 DigitalOcean Hsinchu 合辦 Meetup,這也是我第二次在 Go 社群分享主題。而這次探討的主題和 Lock 相關,再加上會涉及一些系統相關議題,因此花了蠻多時間在看相關素材和實作細節,非常怕在 QA 時間被問到什麼很艱深的問題XD 其實每次分享,對分享者來說都是一個蠻有挑戰性的任務,主要是因為這些內容都需要蠻多時間去準備,而這次在工程師大本營新竹來分享,更是膽戰心驚,深怕不能帶給聽者有幫助的知識。不過,幸好這次 Meetup 安然度過了(所以才有時間來整理 8 月份的學習心得),當面認識了一些人,也交流了不少,很開心 :)
![study]({{ site.url }}/assets/images/study-08.png)
另外,這個月另一個挑戰是身體有些狀況,倒也不是啥嚴重病症,不過就是頻頻感冒發炎又牙齒痛,深深感受到工作雖然重要,但是身體還是要顧啊~尤其是看牙齒,做一次根管治療都蠻昂貴,本來想說應該沒有太多蛀牙,沒想到又有一個需要根管 QQ 看來要再更小心牙齒清潔了。
最後,這個月蠻多學習資源都是書籍,所以沒有太多 reference 可以分享。不過這個月看了 Linux Kernel Development
和 Perfbook
,覺得真是獲得非常多有用的知識,把虛無飄渺的作業系統更具體的呈現給讀者,非常推薦!
預定目標回顧
根據七月初紀錄,七月要完成的目標包含:
1. Go 聯合 meetup 分享講者,準備報告內容 (100%完成)
順利完成,報告 sildes An Introduction to Locks in Go
2. Linux kernel development
(100%完成)
看到 10/20 章節,上個月忘記訂一個明確的章節進度,所以怎樣都算完成XD
3. 離散數學 L30 (70%)
這個有點慚愧,最後是在 9 月 1 號把它完成,離預計的進度晚了一天。
4. 因為工作需要,所以可能必須把一部分心力轉移到 Network protocol 分析 (100%完成)
看了 HTTP/2 的 RFC 規範,並且有簡單的 h2c side project,也算是有個交代!
九月份預計進度
Linux kernel development
。預計會再看個三章,包含:Memory Management
,Virtual System
,I/O layer
部分。- 演算法進度 (2章)和做相關 leetcode。
- DB 相關原理實作和效能分析。
- Network 相關會看一下 Netlink, QoS 實作。
學習日誌
- 2019/8/1 Linux 網路卡驅動程式 : 追蹤與效能
- 2019/8/1 Introduction to Linux interfaces for virtual networking
- 2019/8/6 Book: Linux Kernel Development chapter 7 - Interrupt
- 2019/8/3 生理期
- 2019/8/4 Network side project refactor and write test cases.
- 2019/7/31 Discrete mathematics- Surjective Functions & Recurrence relation L25C, L25D
- 2019/8/5 寫每月學習結算 Blog 文章
- 2019/8/7 Cross-Site WebSocket Hijacking (CSWSH)
- 2019/8/7 Go-SCP cryptographic / data-protection
- 2019/8/8 OWASP/System Configuration, Error Handling and Logging
- 2019/8/9 Book: Linux Kernel Development chapter 9, 10
- 2019/8/10 Discrete mathematics- L26
- 2019/8/10 Networking - QoS
- 2019/8/11 看房子
- 2019/8/12 Blog format update (add table of content)
- 2019/8/12 Go Meetup preparing.
- 2019/8/14 ThreadSanitizer——跟data race说再见 (overview)
- 2019/8/13 Go meetup preparing - pthread_mutex_t
- 2019/8/14 Go meetup preparing - experiment
- 2019/8/15 Study resources
- 2019/8/15 The user-space RCU API
- 2019/8/16 Go meetup preparing - sync.rwMutex
- 2019/8/17 COSCUP 2019
- 2019/8/18 COSCUP 2019
- 2019/8/17 Discrete mathematics- Connected Component, Bipartite, Tripartite, Isomorphic, Subgraph - L27A,B
- 2019/8/18 Blog: semaphore sem_post 在 glibc v2.0 v2.1 之比較
- 2019/8/19 Discrete mathematics- L27 C, D
- 2019/8/19 Go meetup preparing - Draw a graph
- 2019/8/20 Read RFC7540 - HTTP/2 document. How it implement in Go net/http2
- 2019/8/21 Read RFC7540 - HTTP/2 document. How it implement in Go net/http2 and security issue
- 2019/8/22 參加 GDG Hsinchu 活動 - Deep Learning/ 發燒生病沒唸書
- 2019/8/23 發燒生病
- 2019/8/24 Blog: HTTP/2 h2c server and client.
- 2019/8/25 持續生病中,悲慘。
- 2019/8/28 Blog: HTTP/2 h2c server and client
- 2019/8/26 Read RFC7540 - HTTP/2 document
- 2019/8/27 Read RFC7540 - HTTP/2 document
- 2019/8/29 Side Project for h2c-client (Go, CLI tools)
- 2019/8/30 Gopher conference 2019
- 2019/8/30 Discrete mathematics- L28 A, B
- 2019/8/31 Could Native Taiwan User Group. Discrete mathematics- L29 A, B
- 2019/8/31 Kavya Joshi - Let’s Talk Locks!
學習資源
- Linux 網路卡驅動程式 : 追蹤與效能
- Introduction to Linux interfaces for virtual networking
- Cross-Site WebSocket Hijacking (CSWSH)
- 讓我們來談談 CSRF
- Cryptographic Practices
- Data Protection
- ThreadSanitizer——跟data race说再见
- 系統軟體與設計Study Resource
- Golang 内存模型
- Go-RealTime: A Lightweight Framework for Multiprocessor Real-Time System in User Space
- Steven M. Bellovin—Classes
- The user-space RCU API
- Let’s Talk Locks!