Skip to content

AIdrifter/AIdrifterLifeNote

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 

Repository files navigation

AIdrifter CS 浮生筆錄

  • 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 :::

Software Enginner Interview (程式面試考題)

  • 介紹常見的面試考題,包含C語言,作業系統,資料結構等等。
  • Novatek interview

Google

  • gChips, Google Home, Chrome OS

Coding Competition

Competitive Programmer's Handbook

程式競賽入門書本,在開始歡樂練習前,先看看高手是怎麼做的。

  • Ch1 Intrdouction & Ch2 Time Complexity: 介紹需要處理的stdin, stdout與Time Complexiy。
  • Ch3 Sorting & Ch4 Data Structure: Sorting的概念與 C++ STL 常用的data structure。
  • 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 說的是英文,但是簡單好懂,看得出其功力深厚。

Program Language

  • What's different between student and engineer
  • Good coding style
  • Memory layout

Design Pattern

21st C

  • API changed rule

Trusted Execution Environment (TEE)

  • 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

Linux

Shell Script

  • 在核心配置 make menuconfig(或 xconfig 等)時,從 Kconfig 中讀出功能表,用戶選擇後保存到 .config的核心配置文件中。 在核心編譯時,主Makefile 調用這個 .config,就知道了用戶的選擇。
  • 介紹POSIX pthread用法

Profile

Memory

Multi-thread and Synchronization in Linux

  • Multi-thread Safe Problem

    • 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 彼此的差異

Linux kernel

Network Problem

Android

  • Android Trerble, extra vendor.img
  • Introduce Android MediaDRM Freame Work

Debug Skill

學會了 GDB,我有種山頂洞人學會用火的感動」 – 張至

  • 只用 printf() 觀察的話,永遠只看到你設定的框架 (format string) 以內的資料,但很容易就忽略資料是否合法、範圍是否正確,以及是否看對地方

GDB : Linux, Android, KGDB ...

  • How to use GDB on Android O

    • Android use python script and adb to debug
  • 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 ...)

簡易CoreDump排除

人民救星GDB COSCUP 2019

身為工程師,有一個好的debug環境非常重要,這是一篇適合初學者的入門,還在猶豫要不要學GDB嘛? 趕快來看看這篇吧:

Debug Hacks 除錯駭客-極致除錯的技巧與工具

Linker, Loader, Libraries ELF的二三事

  • 利用objdump,readelf,nm,objcopy,ld, lld 搭配cross compiler 完成對elf的操作...
  • 字串處理相關語法

booklist

Crypto

  • Introduce digital signature(數位簽名) and digital certificate(數位證書)

Symmetric vs Asymmetric

  • 介紹對稱式(symmetric)與非對稱式(asymmetric)的差異

Windows Tools

EverythingPortable

  • Everything 小巧實用而最大優點是搜尋速度與準確性! - Small installation file - leann and simple user interface - Quick file indexing
  • Reference:voidtools

XShell6

  • windows上面最好用的吧 功能比putty強大 但是因為支援自身script
  • 有時候uart亂碼會被判定schell script 導致開機出現一些問題
  • Uart 請用 ==teraterm==

Process Explorer

  • show process information on windows
  • set process priority and kill it => do anything you want

Visualize source code

  • support C, C++, python, java, javascript,... etc
  • visualize your source code and trace Reference: Visualize source code

About

Aidrifer浮生筆錄

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published