前言
應該是開始要努力分享一些學習到的內容了,十月份又變成只有學習日記,快要變成流水帳版了(誤)。十月卡了一個期中考大魔王,而且更可怕的是出社會太久都把微積分忘光,所以又回去複習。這次考試大多是證明,證明就是一個如果一開始錯誤,後面就會接連錯下去的東西~雖然證明不太好念,不過覺得過程中可以幫助釐清邏輯,再加上有考試壓力,還是收穫不少,當然考試分數也沒有太低啦哈。
十月依然是一個不是很平靜的月份,花了不少時間在處理人生大事上,中間還發生跑去韓國旅遊,結果不是很好玩的慘痛回憶。不過有一位姊姊跟我說,最令人印象深刻的通常不是什麼美好的回憶,所以雖然這次經驗不太好,但是下次就會知道如何應付,也是一種人生學習~這樣聽起來好像感覺就好很多,默默地放下這事情了。
希望十一月份可以更好。
預定目標回顧
1. 其他語言或工具學習 (100%)
這個月看了蠻多 database 的影片和寫作業。我在英國上過資料庫導論,其實英國教授那時候就教的不錯,只可惜 CMU Database 上的更完整一點。印象深刻的部分包含:DB 是用什麼方式來儲存 tuple、DB 可能會有自己的 scheduling 來進行寫入、以及 DB 也是有 free list 來管理目前 tuple 紀錄。對於這些關於 DB internel 的學習,覺得非常有收獲,所以非常有收穫~
2. 演算法學習 (80%)
主要複習內容就是考試內容啦,其實不難,不過要如何合理地論證,這是比較需要細讀的地方,尤其是大於小於這些,在證明時要合理地去使用,才能正確地算出 time complexity。另外就是開始進入紅黑樹、Dynamic Programming 啦,雖然上課都有專心上課,但是缺少下課完整的複習,所以只算達到 80%。
3. Memory Allocator (50%)
這部分主要是看 Free List,而且還找到很不錯的線上教材 Computer Systems Fall 2018,老師講解地清楚,內容也相當實用,用來複習 OS 或是增加相關知識都很不錯,強烈推薦。不過之所以只給 50%,是因為只有看 Global 類型的 free list,沒有去看更多關於 thread free list,以及沒有一個完整的實作 demo,十一月如果有空的時候要來補一下範例。
十一月份預計進度
1. 以工作為主的 Cloud 相關工作和概念學習
這些包含 Cloud 的 DB、Engine、以及相關工具和 deploy 方式學習。之前可能有大概耳聞一些知識,不過沒有實際實作過,所以會加強這部分實作練習。
2. 演算法學習
又要考試了,所以演算法學習包含:紅黑樹、Greedy Method、Dynamic Programming 等內容,希望一樣能考出不錯的成績~
3. Memory Allocator
寫 Free List 範例,最好是能包含關於 thread free list,或是看有沒有能減少 lock 方式來實作。
4. Meetup Sharing (Move from C to Go)
本次又要到 GDG 新竹來分享啦,這次分享主題是『Move from C to Go』,希望到時候不要被各位大神電 XD
學習日誌
- 2019/10/1 Stable Sorting in Go: Insertion sort with Symmerge algorithm(Algorithms – ESA 2004: 12th Annual European Symposium, Bergen)
- 2019/10/2 Paper: Stable Minimum Storage Merging by Symmetric Comparisons
- 2019/10/3 進階電腦系統理論與實作: Week3 測驗題和延伸題目
- 2019/10/5 進階電腦系統理論與實作 - CMSIS-NN: Efficient Neural Network Kernels for Arm Cortex-M CPUs / SIMD
- 2019/10/6 進階電腦系統理論與實作: A practical guide to SSE SIMD with C++
- 2019/10/6 整理 9 月份讀書紀錄 / 整理 10 月份預定目標
- 2019/10/6 Golang Weekly Study
- 2019/10/7 Golang: BigCache library study and source code trace - 1
- 2019/10/7 Design and analysis of algorithm
- 2019/10/9 RFC: 7804 Salted Challenge Response HTTP Authentication Mechanism
- 2019/10/8 Design and analysis of algorithm - running time analysis
- 2019/10/10 RFC: 7804 Salted Challenge Response HTTP Authentication Mechanism (continue)
- 2019/10/10 Design and analysis of algorithm - insertion sorting and selection sorting (time complexity analysis)
- 2019/10/11 Design and analysis of algorithm - merge sorting and quick sorting (time complexity analysis)
- 2019/10/12 Design and analysis of algorithm - sorting in linear time, redix sort(MSB,LSB), selection question, selection in worse case
- 2019/10/13 進階電腦系統理論與實作: Sign extends with MIPS and Cryptography (related about cpu instruction)
- 2019/10/13 Design and analysis of algorithm - Review the scope of min term
- 2019/10/15 Introduction to MongoDB (coursera) - Week 1
- 2019/10/15 微積分複習
- 2019/10/16 Istio / API Gateway - Embracing the Differences : Inside the Netflix API Redesign
- 2019/10/24 Free List memory allocator - implicit and explicit free list
- 2019/10/17 API Gateway (try some libs and trace a bit source code)
- 2019/10/19 Introduction to MongoDB (coursera) - Projection, update, specific data types
- 2019/10/17 Javascript Object Signing and Encryption (JOSE)
- 2019/10/23 Post: API gateway and libs
- 2019/10/17 GDG 新竹社群活動
- 2019/10/20 [CMU Databases Systems] Relational Model & Advanced SQL
- 2019/10/22 [CMU Databases Systems] Homework - 1: Advanced SQL (Q2-Q5)
- 2019/10/21 演算法: red-black tree, and data structure review
- 2019/10/23 [CMU Databases Systems] Homework - 1: Advanced SQL (Q6-Q10)
- 2019/10/30 Free List memory allocator
- 2019/10/30 [CMU Databases Systems] Database Storage I / Homework refactor and make it correct
References
- Lecture 21 — Sorting Lower Bounds and How to Beat Them
- 2019q3 第 3 週測驗題 (上)
- CMSIS-NN: Efficient Neural Network Kernels for Arm Cortex-M CPUs
- A practical guide to SSE SIMD with C++
- Best Practices for Speeding Up JSON Encoding and Decoding in Golang
- SASL and SCRAM-SHA-1
- https://datatracker.ietf.org/meeting/91/materials/slides-91-httpauth-2
- https://github.com/saltstack
- Text normalization in Go
- golang.org/x/crypto/pbkdf2
- Week1 video
- Embracing the Differences : Inside the Netflix API Redesign
- Golang API Gateway krakend
- Writing a Memory Allocator
- CS 4400 – Computer Systems Fall 2018
- Lecture 22: Dynamic Memory Allocation Advanced
- Post: KrakenD API Gateway
- Homework 1