-
Self-introduction
- Hi, I am AIdrifter, I have serviced Digital Right Management Team. Before I learned Computer Science(24), I studied Digital Arts at University. There is no doubt that I love painting. But the path that I have chosen, I will not regret it. I clearly know to study computer science is too late for me. I will keep studying computer science until I died. Hope this note can help other guys like me, help you to find your way.
- Hi, 我是AIdrifter,我曾經服務於DRM團隊,我大學時學習數位藝術,我熱愛繪畫,後來轉學習電腦科學領域,雖然比不上資工本科生,不過這是我曾經選擇的道路,我不曾後悔...現在會繼續研究電腦科學直到我死亡的一刻,希望在這份浮生筆錄上,可以幫助像我一樣的徬徨者找到追求的道路。
-
My GitHub
-
In addition to painting, I have the another interests.
-
除了繪畫,我還有以下興趣 :
- Trusted Execution Environment and Digital Right Management
(可信任執行環境與數位版權管理) - Program Language
- Operation System - Linux (作業系統)
- Debug Skill (GDB, KGDB, Coredump) (Debug 技能)
- Linker, Loader & library (連結器, 載入器, 函示庫)- ELF的二三事
- Algorithm And Data Structure
- Linear Algebra and Discrete Mathematics
:::info
By the way, if you have any questions on this blog or notebook, please don't hesitate to let me know.
aidrifter@gmail.com
:::
- Trusted Execution Environment and Digital Right Management
- 介紹常見的面試考題,包含C語言,作業系統,資料結構等等。
- Novatek interview
- gChips, Google Home, Chrome OS
程式競賽入門書本,在開始歡樂練習前,先看看高手是怎麼做的。
- Ch1 Intrdouction & Ch2 Time Complexity: 介紹需要處理的stdin, stdout與Time Complexiy。
- Ch3 Sorting & Ch4 Data Structure: Sorting的概念與 C++ STL 常用的data structure。
- vector, string, set, map ,iteraotr ...
- 可以參考下面的 C++ Standard libraries(STL) 一起學習。
- Ch5 Complete Search : 窮舉法
- 介紹窮舉法的概念,如何把利用pruning the search把不要的分支去掉。
- Ch6 Greedy Algorithms : 貪婪演算法
- Ch7 Dynamic Programming : 動態規劃
- Ch8 Amortized anaysis : 平攤分析
- 平攤分析常用於分析資料結構(動態的資料結構),在使用平攤分析前須知道資料結構各種操作所可能發生的時間,並計算出最壞情況下的操作情況並加以平均。
- Ch9 Range Queries : Range Queries
- 陣列中元素求Max, Sum, Min的各種演算法,Segment Tree在所有case皆可適用。
- Ch10 : Bit Manipulation
- 先從基本的uint32_t 和int32_t 去介紹二進制的相關性質(overflow處理)與數學等式,經典的Hamming distance與Couting subgrids,然後帶到集合的相關操作。
- 集合方面: 如何利用位元表示法去有效的處理集合相關問題,像是permutations, counting(combination) ,最後套用在DP上面,實際演練如何減少時間複雜度。
- 其實很多DP等式,都很接近以前黃子嘉說的"小黑的故事",將等式分成抓小黑,和不抓小黑兩種case,和排容原理有異曲同工之妙。
- Define Big-O (Asymptotic Notation)
-
Basic
- Bubble, Shell ,Insertion, Select
-
Advanced
- Heap, Merged, Quick
-
Time Complexity : 各種sorting 的 insert ,lookup ,delete
- 介紹STL的主角 Container, Iterator, Algorithms 並對Container分類
- Sequence Container
- Associative Container
- Unorder Container
- iterator and algorithms
- Functor
Reference: Cracking the Coding Interview, 6th Edition 189 Programming Questions and Solutions - 一本關於程式設計師面試的好書 Introduction of STL #1: Overview 作者:Bo Qian 說的是英文,但是簡單好懂,看得出其功力深厚。
- What's different between student and engineer
- Good coding style
- Memory layout
- Deprecating Raw Pointers in C++20
- Practice Web : hackerrank
- 阿洲的程式教學
- Android DRM 採用
- Android Design pattern
- Adapter
- Registry of Singleton
- Bridge
- Observer
- Factory Method
- 21st Century C: C Tips from the New School
- 2016 年,現代 C 語言的寫法
- Pointer, Address, and String
- API changed rule
- DRM(Digital Right Management)是一系列存取控制Digital Content技術的集合。Amazon、AT&T、AOL、Apple Inc.、Google、MicroSoft , Sony和Valve Corporation公司都使用了數位權利管理。
- DRM主要兩大陣營Googloe(Widevine),Micorsoft(PlayReady)
- 都需要搭配TEE or Secureted OS 已保護其Digital Contnet,重要的資料都放在該OS的memory上:
- 1.Key(AES content key or ECC private key or public key)
- 2.Encrypted Digital Content
- 介紹TEE運作的方法
- 介紹optee 運作原理 還有如何trace optee source code
- Introduce Android MediaDRM Freame Work
- Common Linux Command
- 推薦的常用shell commnad,還有技巧如何加快速度。
- 進階 : How to debug and trace source code on bash
- 在核心配置 make menuconfig(或 xconfig 等)時,從 Kconfig 中讀出功能表,用戶選擇後保存到 .config的核心配置文件中。 在核心編譯時,主Makefile 調用這個 .config,就知道了用戶的選擇。
- 介紹POSIX pthread用法
- Linux 系統下常見的profile方法
- 系統的bottleneck一直是開發者頭痛的問題,這邊介紹常見的profile方法
- Memory Alignment 記憶體對齊
- Reference: OPASS'S BLOG
-
- What's difference between Process and Thread?
- Create prcess and wait Process
- Linux
fork()
vs Windows MFC - Multi thread
- Thread safe problem
- Double free problem
- Volatile
- Cache line problem
-
Thread Synchronization in Linux
- Create proecess and wait process
- Create thread and wait thread
- Mutex
- Shared Exclusive Lock
- File Lock
- Event
- Semaphore
- 常見的IPC 有八種方法
- summary 彼此的差異
-
-
TW Linux Kernel Hacker,FB這邊有社群可以加入喔 :) ,兩周大概會在台北有視訊。跟新竹碼農差不多。
-
新竹碼農 [地點:TAB Tee and Beverage / 新竹市 大學路78號]
-
-
book list
- Linux Kernel Hacks 改善效能、提昇開發效率及節能的技巧與工具
- Binary Hacks-駭客秘傳技巧一百招
- Android Trerble, extra
vendor.img
- Introduce Android MediaDRM Freame Work
學會了 GDB,我有種山頂洞人學會用火的感動」 – 張至
- 只用
printf()
觀察的話,永遠只看到你設定的框架 (format string) 以內的資料,但很容易就忽略資料是否合法、範圍是否正確,以及是否看對地方
-
- Android use
python
script andadb
to debug
- Android use
-
How to use Remote GDB on Linux
- Remote GDB for linux system
-
How to use GDB to adjust mulit-threads
- follow-fork-mode方法:方便易用,對系統內核和GDB版本有限制,適合於較為簡單的多進程系統
- attach子進程方法:靈活強大,但需要添加額外代碼,適合於各種複雜情況,特別是守護進程
- GDB wrapper方法:專用於fork+exec模式,不用添加額外代碼,但需要X環境支持(xterm/VNC)。
-
KGDB
- For kenerl debug (To be continued ...)
身為工程師,有一個好的debug環境非常重要,這是一篇適合初學者的入門,還在猶豫要不要學GDB嘛? 趕快來看看這篇吧:
- 利用
objdump
,readelf
,nm
,objcopy
,ld
,lld
搭配cross compiler 完成對elf的操作...
- 字串處理相關語法
- 基本上這邊已經是linking 的問題了。
- Memory Errror Detection Using GCC
- Introduce digital signature(數位簽名) and digital certificate(數位證書)
- 介紹對稱式(symmetric)與非對稱式(asymmetric)的差異
- Everything 小巧實用而最大優點是搜尋速度與準確性! - Small installation file - leann and simple user interface - Quick file indexing
- Reference:voidtools
- windows上面最好用的吧 功能比putty強大 但是因為支援自身script
- 有時候uart亂碼會被判定schell script 導致開機出現一些問題
- Uart 請用 ==teraterm==
- show process information on windows
- set process priority and kill it => do anything you want
- support
C
,C++
,python
,java
,javascript
,... etc - visualize your source code and trace Reference: Visualize source code