Jason Note
1.
Command
1.1.
10 條 Linux
1.2.
Open Chinese Convert 開放中文轉換
1.3.
Command Tips
1.4.
Useful Linux Commands
1.5.
Opencc 使用
2.
Shared Libraries
2.1.
Shared Libraries Setup
3.
Linux Tools
3.1.
Linux Basic
3.1.1.
學會使用命令幫助
3.1.2.
文件及目錄管理
3.1.3.
文本處理
3.1.4.
磁盤管理
3.1.5.
進程管理工具
3.1.6.
性能監控
3.1.7.
網絡工具
3.1.8.
用戶管理工具
3.1.9.
系統管理及IPC資源管理
3.2.
Linux工具進階
3.2.1.
程序構建
3.2.2.
程序調試
3.2.3.
性能優化
3.3.
工具參考篇
3.3.1.
gdb 調試利器
3.3.2.
ldd 查看程序依賴庫
3.3.3.
lsof 一切皆文件
3.3.4.
ps 進程查看器
3.3.5.
pstack 跟蹤進程棧
3.3.6.
strace 跟蹤進程中的系統調用
3.3.7.
ipcs 查詢進程間通信狀態
3.3.8.
top linux下的任務管理器
3.3.9.
free 查詢可用內存
3.3.10.
vmstat 監視內存使用情況
3.3.11.
iostat 監視I/O子系統
3.3.12.
sar 找出系統瓶頸的利器
3.3.13.
readelf elf文件格式分析
3.3.14.
objdump 二進制文件分析
3.3.15.
nm 目標文件格式分析
3.3.16.
size 查看程序內存映像大小
3.3.17.
wget 文件下載
3.3.18.
scp 跨機遠程拷貝
3.3.19.
crontab 定時任務
3.3.20.
trace-cmd
3.4.
Doxygen
3.5.
Jdbshell
3.6.
二進位實用程式(objdump, readelf,ar, nm等)
3.7.
UNIX 下繪圖面面觀
3.8.
performance 分析
3.8.1.
Application 效能分析有妙招 — 使用 perf 走天下
3.8.2.
藉助PERF工具分析CPU使用率
3.8.3.
linux下的內核測試工具——perf使用簡介
3.8.4.
Perf -- Linux下的系統性能調優工具,第 1 部分
3.8.5.
Perf -- Linux下的系統性能調優工具,第 2 部分
3.8.6.
系統級性能分析工具 — Perf
3.8.7.
perf 性能分析實例——使用perf優化cache利用率
3.8.8.
Linux 效能分析工具: Perf - NCKU 2015
3.8.9.
Linux 效能分析工具: Perf - NCKU 2016
3.9.
Mounting samba shares from a unix client
3.10.
cppcheck 靜態程式分析工具
3.11.
perf 原理和實務
3.12.
gnuplot 語法解說和示範
3.13.
運用 gprof + graphviz 學習 Open Source
3.14.
有病治病,沒病強身: Cppcheck + Valgrind
4.
Android note
4.1.
android resource
4.2.
Android debug 技巧
4.2.1.
Android下打印調試堆棧方法
4.2.2.
Android調試技巧(一)
4.2.3.
理解Android Crash處理流程
4.2.4.
理解Native Crash處理流程
4.2.5.
Native進程之Trace原理
4.2.6.
debuggerd守護進程
4.3.
GDB在線調試Android Framework Native C/C++代碼
4.4.
什麼時候用startService,什麼時候用bindService
4.5.
android的消息處理機制(圖+源碼分析)——Looper,Handler,Message
4.6.
Android中Handler Runnable與Thread的區別詳解
4.7.
Android Service與Native Service
4.8.
Handler, Message, Looper, MessageQueue
4.9.
Android 各層中日誌打印功能的應用
4.10.
Android指令和命令參數
4.11.
Android中進程與進程、線程與線程之間如何通信
4.12.
startService的創建過程
4.13.
service組件-bindService源碼分析
4.14.
[轉]Android 執行緒 - Thread 與 Handler
4.15.
[轉] Android 執行緒 - Runnable 與 Handler
4.16.
[轉] Android 非同步任務 - AsyncTask
4.17.
[轉]Android.mk 組織結構
4.18.
如何下載編譯Android goldfish(Kernel)
4.19.
自己動手編譯android源碼
4.20.
Android 核心使用 kgdb
4.21.
BusyBox 安裝
4.22.
Android 常用開發工具
4.23.
開發最佳實踐
4.24.
Analyzing UI Performance with Systrace
4.25.
Android 常用指令
4.26.
Android下設置CPU核心數和頻率
4.27.
Android系統的智能指針(輕量級指針、強指針和弱指針)的實現原理分析
4.28.
gradle 教學
4.29.
Gradle的一些總結
4.30.
線程通信基礎流程分析 Handler、Looper、Message、MessageQueue
4.31.
多執行緒-Handler和Thread的關係 (2)
4.32.
jni
4.32.1.
使用JNI進行Java與C/C++語言混合編程
4.32.2.
JNI Java <-> native Struct
4.33.
Android消息機制
4.33.1.
概述設計架構
4.33.2.
Message和MessageQueue
4.33.3.
Looper
4.33.4.
Handler
4.34.
關於Service
4.34.1.
Android之Service總結
4.34.2.
startService及bindService的區別
4.34.3.
android service 之一 (start service)
4.34.4.
android service 之二(IntentService)
4.34.5.
Android Service 之三(Bind Service, 繼承自 Binder 類)
4.34.6.
Android Service 之三(Bind Service,使用 Messenger)
4.34.7.
Android Service 之三(Bind Service,使用 AIDL)
4.35.
關於Activity
4.35.1.
Android之Activity總結
4.36.
IPC
4.36.1.
進程通信之Messenger&AIDL使用詳解
4.36.2.
為什麼 Android 要採用 Binder 作為 IPC 機制?
4.37.
Carson_Ho筆記
4.37.1.
Android多線程全面解析:IntentService用法&源碼
4.37.2.
Android四大組件:Service生命週期最全面解析
4.37.3.
Android四大組件:Service服務史上最全面解析
4.37.4.
(本地、可通信的、前臺、遠程)Service使用全面介紹
4.37.5.
Android:遠程服務Service(含AIDL & IPC講解)
4.38.
反組譯 apk
4.39.
如何使用篇
4.39.1.
如何瞭解Task、Thread、ThreadPool、Handler、Looper、Message、MessageQueue、AsyncTask
4.39.2.
如何使用Handler
4.39.3.
如何使用HandlerThread
4.39.4.
如何使用Thread和Handler
4.39.5.
如何使用Service
4.39.6.
如何使用IntentService
4.39.7.
如何使用AsyncTask
4.40.
android thread
4.40.1.
Android多線程的四種方式
4.40.2.
Android的幾種多線程方式(AsyncTask,HandlerThread,IntentService,ThreadPool),使用場景以及注意事項
4.40.3.
Android 多線程編程的總結
4.41.
簽署你的Android應用程式(.keystore)
4.42.
Building Andordi & Kernels
4.43.
Handler消息機制再梳理
4.44.
用Interface實作Call Back機制
4.45.
EventBus套件的基本用法
5.
Ubuntu
5.1.
Ubuntu installer
5.2.
Windows與Ubuntu雙系統,開機時偵測不到彼此的解決方法
5.3.
ssh tunnel
5.4.
tmate-slave 架設
6.
QEMU
6.1.
X86_QEMU
6.2.
ARM_QEMU
6.3.
Qemu_KGDB_Ftrace
6.4.
5 分鐘 Linux 0.11 快速構建實驗環境
6.5.
Debug Assembly with GDB for ARMv8 on QEMU
6.6.
ARM體系結構--寄存器
6.7.
Run Debian iso on QEMU ARMv8
6.8.
QEMU ARM64 guide
6.9.
QEMU install
6.10.
編譯 linux 0.11,並且使用 QEMU + GDB 調試 kernel ( Ubuntu 11.04, GCC 4.5.2)
6.11.
How to Build A Custom Linux Kernel For Qemu (2015 Edition)
6.12.
X86 Kernel
6.13.
FreeNOS
6.14.
建構 Linux 0.11 的開發環境
6.15.
KGDB + QEMU + SSH
6.16.
打造屬於自己的linux發行版
6.17.
編譯內核+BusyBox定製一個Linux提供ssh和web服務
6.18.
用Qemu模擬ARM
6.19.
qemu-arm 快速驗證arm應用程式
6.20.
How Other People Use QEMU
6.21.
buildroot & dropbear
6.22.
ARM64 Linux kernel + busybox rootFS via NFS over QEMU with GDB
6.23.
奔跑吧-linux內核-qemu調試內核
6.24.
Linux kernel v4.0 code for <奔跑吧Linux內核>
6.25.
奔跑 linux kernel GDB 使用
6.26.
QEMU运行Linux Kernel环境配置
6.27.
基于QEMU的Linux Driver开发环境的配置
6.28.
Myrunninglinuxkernel_5.0
7.
fcamel
7.1.
[轉]ld, ld.so 和 ldconfig 的行為
7.2.
[轉]解決 undefined symbol / reference
7.3.
[轉] 列出用到的 shared library
7.4.
[轉]用 LD_PRELOAD 替換動態連結的函式庫
7.5.
[轉] 用 strace 和 ltrace 找出用到的 system call 和 library call
7.6.
[轉] 加速 linking time
7.7.
[轉] 從 C 呼叫 C++ 函式的過程理解程式編譯、連結的原理
7.8.
[轉] 對 C++ 的觀感
7.9.
[轉]在 Linux 下開發 C/C++ 的新手指南
7.10.
[轉]瞭解 C/C++ 程式行為的技巧
7.10.1.
查 C/C++ symbol 定義的方法
7.10.2.
閱讀 C/C++ 原始碼的好幫手
7.10.3.
配合 c++filt 讀程式
7.10.4.
加速 gdb 載入 symbol 時間
7.10.5.
在 x86-64 上對 system call 使用 conditional break
7.10.6.
用 strace 找出 Ubuntu 如何提示未安裝的指令
7.10.7.
自行編譯含 debug symbol 的套件 (package)
7.10.8.
gdb 顯示 STL container 的方法
7.10.9.
善用 strace、debugger 從執行期間找出問題根源
7.10.10.
用 python gdb 客製化 backtrace 的結果
7.11.
寫 linux daemon 的注意事項
7.12.
signal 小知識
7.13.
gold 和 GNU ld 行為差異造成的問題
7.14.
如何在 Linux 上使用自行編譯的第三方函式庫
7.15.
在 Ubuntu 上找出第三方函式庫的程式碼
8.
ARM
8.1.
ARM彙編語言
8.2.
ARM尋址方式
8.3.
Introduction to ARMv8 64-bit Architecture
8.4.
ARM彙編指令調試方法
9.
ARM emulation
9.1.
Compiling Linux kernel for QEMU ARM emulator
9.2.
Compiling Linux kernel 3.0 with Emdebian ARM toolchain
9.3.
Compile Linux kernel 3.2 for ARM and emulate with QEMU
9.4.
Busybox for ARM on QEMU
9.5.
Linux NFS Root under QEMU ARM emulator
9.6.
Trying Debian for ARM on QEMU
9.7.
Debugging ARM programs inside QEMU
9.8.
U-boot for ARM on QEMU
9.9.
Booting Linux with U-Boot on QEMU ARM
9.10.
Simplest bare metal program for ARM
9.11.
Hello world for bare metal ARM using QEMU
9.12.
Emulating ARM PL011 serial ports
9.13.
ARM926 interrupts in QEMU
9.14.
Using Ubuntu ARM cross-compiler for bare metal programming
9.15.
Using Newlib in ARM bare metal programs
9.16.
Using CodeSourcery bare metal toolchain for Cortex-M3
9.17.
QEMU ARM semihosting
9.18.
Simulating AT91 with Skyeye
10.
Linux Kernel
10.1.
MY_example
10.1.1.
send pid to kernel by ioctl and kernel send_sig to user space
10.2.
LKD
10.2.1.
核心簡介
10.2.2.
核心開發準備
10.2.3.
Linux 行程
10.2.4.
行程排程
10.2.5.
系統呼叫
10.3.
我理解的邏輯地址、線性地址、物理地址和虛擬地址
10.4.
用ttyS0獲取dmesg信息
10.5.
Buddy Algorithm
10.6.
分析oops的機器碼
10.7.
oops調試
10.8.
可搶佔
10.9.
異或的用法
10.10.
定製編譯內核模塊的GCC參數
10.11.
Linux 記憶體基礎
10.12.
Linux內存管理之分頁機制
10.13.
Linux虛擬內存概述
10.14.
程序的裝載和鏈接
10.15.
IA32CPU內存管理機制
10.16.
Linux內存管理之分段機制
10.17.
邏輯地址,線性地址及物理地址的區別
10.18.
分段機制和分頁機制
10.19.
段選擇器 段描述符 段描述符表 線性地址形成
10.20.
Linux 內核的編譯系統
10.21.
如何編譯linux kernel
10.22.
Linked List in Linux Kernel
10.23.
Linux Kernel: 強大又好用的list_head結構
10.24.
send signal to user-space
10.25.
kernel 發 signal 通知 pid task_struct->comm
10.26.
Linux內核調試方法 gdboc gdboe JTAG
10.27.
Linux內核kernel panic機制淺析
10.28.
如何在linux kernel 中加入system call
10.29.
查看Linux內核編譯配置
10.30.
Ubuntu更換內核方法
10.31.
調試工具ltrace strace ftrace的使用
10.32.
根據內核Oops 定位代碼
10.33.
內核和用戶空間共享內存的實現例程-proc和mmap
10.34.
陳鍾誠Linux Kernel
10.34.1.
簡介
10.34.2.
行程結構
10.34.3.
Linux 的記憶體管理
10.34.4.
Linux 的檔案系統
10.34.5.
Linux 的輸出入系統
10.34.6.
Linux 的目的檔
10.34.7.
Linux 的動態連結與載入 (Dynamic Linking)
10.35.
例說linux內核與應用數據通信系列
10.35.1.
(一):添加一個系統調用
10.35.2.
(二):proc虛擬文件系統
10.35.3.
(三):讀寫內核設備驅動文件
10.35.4.
(四):映射設備內核空間到用戶態
10.36.
把握linux內核設計思想系列
10.36.1.
(一):系統調用
10.36.2.
(二):硬中斷及中斷處理
10.36.3.
(三):下半部機制之軟中斷
10.36.4.
(四):下半部機制之tasklet
10.36.5.
(五):下半部機制之工作隊列及幾種機制的選擇
10.36.6.
(六):內核時鐘中斷
10.36.7.
(七):內核定時器和定時執行
10.36.8.
(八):進程管理分析
10.36.9.
(九):進程調度
10.36.10.
(十):內核同步
10.36.11.
(十一):內存管理之頁的分配與回收
10.37.
移植 Linux Kernel 造成無法開機之解決方案以及除錯工具
10.38.
delay/ sleep 延遲函式學習筆記
10.39.
密碼學演算法實作流程
10.40.
效能工具 – perf 來分析探討硬體加密之瓶頸
10.41.
Linux kernel 調試打log流和斷點流
10.42.
Linux kernel v4.0 code for <奔跑吧Linux內核>
10.43.
Trace Kernel 程式的一些小技巧
10.44.
Modern Maker : 從那些 Maker 的大小事看 Linux 核心 系列
10.44.1.
Day 2:「我需要 perf!」「請給我 eBPF!」
10.44.2.
Day 3:安裝 ply 和 perf
10.44.3.
Day 4:小試身手 -- 是誰住在 Rpi 的 LED 裡?
10.44.4.
Day 5:ply 語法簡介
10.44.5.
Day 6:I2C (Part 1) - 簡介與環境設置
10.44.6.
Day 7:I2C (Part 2) - ftrace 爽颯登場!
10.44.7.
Day 8:Device Tree (Part 1)
10.44.8.
Day 9:暖身運動 - 媽!我在核心裡面了!第一個核心模組
10.44.9.
Day 10:I2C Driver (Part 1) - 使用 Device Tree 來找 Driver
10.44.10.
Day 11:I2C Driver (Part 2) - 這是一個間諜檔案!把 I2C 的傳輸包成字元驅動程式
10.44.11.
Day 12:I2C Driver (Part 2) - 細節、追蹤與驗證
10.44.12.
Day 13:SPI (Part 1) - 原來是 Shift Register 啊!我還以為是 SPI 呢!
10.44.13.
Day 14:SPI (Part 2) - ftrace 啦!哪次不 ftrace?
10.44.14.
Day 15:SPI Driver (Part 1) - DT Overlay
10.44.15.
Day 16:SPI Driver (Part 2) - 傳簡單的訊息!
10.44.16.
Day 17:SPI Driver (Part 3) -- 又是一個間諜檔案!
10.44.17.
Day 18:spidev - 辣個 userspace 的驅動程式
10.44.18.
Day 19:GPIO (Part 1) -- 人生的謊言:GPIO 很簡單
10.44.19.
Day 20:GPIO (Part 2) - 沒有用到 GPIO 子系統的 GPIO
10.44.20.
Day 21:GPIO (Part 3) - 所以我說那個裝置樹呢?
10.44.21.
Day 22:GPIO (Part 4) - 今晚,我想來點驅動程式佐 GPIO
10.44.22.
Day 23:IIO (Part 1) - 構造改革!自動幫感測器做好介面的子系統!
10.44.23.
Day 24:IIO (Part 2) - 基本術語與架構
10.44.24.
Day 25:IIO (Part 3) - 變數命名大師?第一個 IIO 驅動程式!
10.44.25.
Day 26:IIO (Part 4) - 幫感應器寫驅動程式!以 TCRC5000 為例
10.44.26.
Day 27:IRQ (Part 1) - 斷開魂結!
10.44.27.
Day 28:IRQ (Part 2) - 中斷突進!簡單的 IRQ 程式
10.44.28.
Day 29:IRQ (Part 3) - 這是核心執行緒的味道!Threaded IRQ
10.44.29.
Day 30:賽後感言
10.45.
Embedded Linux Primer 讀書筆記
10.45.1.
Chapter 2: The Big Picture
10.45.2.
Chapter 4:淺談Linux 核心
10.45.3.
Chapter 5 : Kernel Initialization
10.45.4.
Chapter 6 : User Space Initialization
10.45.5.
Chapter 8: 裝置驅動程式的基本知識
10.45.6.
Chapter 9: File system
11.
Linux Driver
11.1.
Linux Device Driver Programming
11.1.1.
Linux 裝置驅動程式的概要
11.1.2.
Linux 的授權
11.1.3.
準備開發裝置驅動程式
11.1.4.
開發驅動程式的第一步
11.1.5.
開發 driver 需要的基礎知識
11.1.6.
實際撰寫驅動程式
11.1.7.
控制硬體
11.1.8.
記憶體
11.1.9.
計時器
11.1.10.
同步與鎖定
11.1.11.
中斷
11.1.12.
測試與除錯
11.2.
《深入Linux設備驅動程序內核機制》之MMAP內存頁面示例
11.3.
Linux Device Model 三角關係
11.4.
Linux設備模型(1)_基本概念
11.5.
Linux設備模型(2)_Kobject
11.6.
mmap driver implementation
11.7.
嵌入式Linux驅動模板精講與項目實踐
11.8.
動手寫 Linux Driver
12.
OS
12.1.
[轉]打造簡易作業系統
12.1.1.
(一) 開機Hello World實例
12.1.2.
(二) Boot Loader + 作業系統載入實例 (QEMU)
12.1.3.
(三) Boot Loader + 作業系統載入實例 (CF Card)
12.1.4.
(四) 由16位元真實模式 (Real Mode) 進入32位元保護模式 (Protect Mode)
12.1.5.
(五) 使用Local Descriptor Table (LDT)
12.1.6.
(六) 簡介Call Gate
12.1.7.
(七) 利用Call Gate與TSS (Task-State Segment)實現特權等級的轉換
12.2.
Page Table size太大之解決
13.
Linux System
13.1.
事件驅動伺服器
13.2.
Multi-pthread note
13.2.1.
fork + pthread_create 記憶體空間差異
13.2.2.
Pros and Cons
13.2.3.
Linux內核中線程的實現方式
13.3.
linux系統編程
13.3.1.
文件與IO(一):文件描述符、open,close
13.3.2.
文件與IO(二):系統調用read和write
13.3.3.
文件與IO(三):利用lseek()創建空洞文件
13.3.4.
文件與IO(四):目錄訪問相關係統調用
13.3.5.
文件與IO(五):stat()系統調用獲取文件信息
13.3.6.
文件與IO(六):實現ls -l功能
13.3.7.
文件與IO(七):時間函數小結
13.3.8.
文件與IO(八):文件描述符相關操作-dup,dup2,fcntl
13.3.9.
進程(一):進程與程序
13.3.10.
進程(二):進程生命週期與PCB(進程控制塊)
13.3.11.
進程(三):進程複製fork,孤兒進程,殭屍進程
13.3.12.
進程(四):進程退出exit,_exit區別即atexit函數
13.3.13.
進程(五):exec系列函數(execl,execlp,execle,execv,execvp)使用
13.3.14.
進程(六):父進程查詢子進程的退出,wait,waitpid
13.3.15.
進程(七):system()函數使用
13.3.16.
進程(八):守護進程詳解及創建,daemon()使用
13.3.17.
信號(一):中斷與信號
13.3.18.
信號(二):信號處理流程(產生、註冊、註銷、執行)
13.3.19.
信號(三):信號安裝、signal、kill,arise講解
13.3.20.
信號(四):alarm和可重入函數
13.3.21.
信號(五):信號集操作函數,信號阻塞與未決
13.3.22.
信號(六):信號發送函數sigqueue和信號安裝函數sigaction
13.3.23.
信號(七):被信號中斷的系統調用和庫函數處理方式
13.3.24.
信號(八):三種時間結構及定時器setitimer()詳解
13.3.25.
管道(一):匿名管道(pipe)
13.3.26.
管道(二):管道讀寫規則
13.3.27.
管道(三):命令管道(FIFO)
13.3.28.
錯誤處理:perror,strerror和errno
13.3.29.
利用backtrace和backtrace_symbols函數打印調用棧信息
13.3.30.
linux系統編程:setjmp和longjmp函數用法
13.3.31.
linux新定時器:timefd及相關操作函數
13.4.
Note
13.4.1.
IPC
13.4.1.1.
PIPE
13.4.1.2.
Signal
13.5.
Linux Debugging
13.5.1.
使用反彙編理解C++程序函數調用棧
13.5.2.
熟悉AT&T彙編語言
13.5.3.
C++函數調用的參數傳遞方法總結(通過gdb+反彙編)
13.5.4.
使用GDB來理解C++ 對象的內存佈局(多重繼承,虛繼承)
13.5.5.
coredump 分析入門
13.5.6.
動態庫注入、ltrace、strace、Valgrind
13.5.7.
使用反彙編理解動態庫函數調用方式GOT/PLT
13.5.8.
core真的那麼難以追蹤嗎?
13.5.9.
一次生產環境下的“內存洩露”
13.6.
Linux 作業系統分析
13.6.1.
破解Linux操作系統的奧祕
13.6.2.
How program works
13.6.3.
進程的創建與可執行程序的加載
13.6.4.
內核裝載ELF的過程總結
13.7.
如何更新linux console畫面
13.8.
服務器進程為何通常fork()兩次
13.9.
創建 Daemon 程式
13.10.
Linux信號處理機制
13.11.
函數調用棧的獲取原理分析
13.12.
在Linux程序中輸出函數調用棧
13.13.
C/C++混合編程
13.14.
linux下C與C++混合編程
13.15.
Static 與 Shared 的函式庫撰寫
13.16.
Linux 的 time 指令
13.17.
孤兒進程與殭屍進程[總結]
13.18.
pkg-config 使用及建立方法
13.19.
簡述configure、pkg-config、pkg_config_path三者的關係
13.20.
動態庫的鏈接和鏈接選項-L,-rpath-link,-rpath
13.21.
LD_LIBRARY_PATH與-L的關係
13.22.
shell環境變量以及set,env,export的區別
13.23.
用gcc 自製 Library
13.24.
如何使用pkg-config工具編譯鏈接第三方庫
13.25.
stdout & stderr & fflush()
13.26.
使用system()函數執行命令行命令簡述
13.27.
ldconfig及 LD_LIBRARY_PATH,LD_DEBUG ,LD_PRELOAD
13.28.
SIGINT 後 KILL 自己
13.29.
my_note
13.29.1.
thread_create & signal 使用技巧
13.30.
pthread_sigmask 控制線程的信號掩碼
13.31.
C 的 Thread Pool 筆記
13.32.
IP addresses from a C program
13.33.
OpenMP in linux
13.34.
Mutexes VS Semaphores 大揭祕
13.35.
dlopen & dlsym 用法
13.36.
pthread_create & pthread_join & pthread_exit 基本用法
13.37.
LINUX下動態庫調用靜態庫的方法
13.38.
C語言互斥鎖-雙條件變量實現循環打印
13.39.
tutorial-pthreads
13.40.
《Programming with POSIX Threads》筆記
13.41.
mmap映射空間與內存和磁盤的IO性能對比
13.42.
一個並發10k的簡易群聊天室(使用epoll)
13.43.
Mutex 與 Semaphore 最大的差異是
13.44.
[讀書會] Linux環境編程:從應用到內核
13.45.
example
13.46.
64位x86的函數調用棧佈局
13.47.
如何手工展開函數棧來定位問題
13.48.
第3章 行程(process)環境
13.49.
打印出一個完整的程序調用堆棧信息
13.50.
Linux 下 IPC 的運作方式
13.51.
細說linux IPC
13.51.1.
基於socket的進程間通信(上)
13.51.2.
基於socket的進程間通信(下)
13.51.3.
mmap系統調用共享內存
13.51.4.
posix 共享內存
13.51.5.
system V共享內存
13.51.6.
pipe和FIFO
13.51.7.
信號(上)
13.51.8.
信號(下)
13.51.9.
posix消息隊列
13.51.10.
system V 消息隊列
13.51.11.
細說linux IPC:各種IPC形式比較總結
13.51.12.
補充 現代Linux有兩種共享內存機制
13.52.
Linux同步與互斥應用
13.52.1.
(零):基礎概念
13.52.2.
(一):posix線程及線程間互斥
13.52.3.
(二):posix線程同步
13.52.4.
(三):posix線程實現單個生產者和單個消費者模型
13.52.5.
(四):posix信號量的互斥與同步
13.52.6.
(五):system V信號量的互斥與同步
13.52.7.
(六):文件鎖
13.53.
Linux下利用backtrace追蹤函數調用堆棧以及定位段錯誤
13.54.
sendfile:Linux中的"零拷貝"
13.55.
Linux Note: daemon 與 background process 的差異
13.56.
x86 有個有個 lea 指令 (Load Effective Address)
13.57.
Linux平臺延時之sleep、usleep、nanosleep、select比較
13.58.
linux 用戶空間 和 內核空間 延時函數
13.59.
即時系統 使用排程器
13.60.
性能分析工具使用 callgrind+kcachegrind
13.60.1.
2(RDTSC)
13.61.
linux編程的108種奇淫巧計
13.61.1.
1(FALSE SHARING)
13.61.2.
2(RDTSC)
13.61.3.
3(magic 2)
13.61.4.
4(編譯展開)
13.61.5.
5(rbp寄存器)
13.61.6.
6(shellcode)
13.61.7.
7(Lock-free實驗)
13.61.8.
8(嵌入彙編的另一種寫法)
13.61.9.
PForDelta索引壓縮算法的實現
13.61.10.
11(亂序)
13.61.11.
12(存儲計算)
13.61.12.
15(減少複製)
13.61.13.
16(如何達到內存最大帶寬,複雜指令)
13.61.14.
17(如何達到內存最大帶寬,精簡指令,預取和NT)
13.61.15.
18(SIMD)
13.61.16.
關於bit操作(bit_set test_bit)
13.61.17.
put variables in a regsiter
13.61.18.
Userspace I/O scheduling for multi-file operations
13.61.19.
Manual FIle Locking
13.62.
Linux下fork函數及pthread函數的總結
13.63.
C++ 在類裡面使用多線程技術
13.64.
深入 Linux 多線程編程
13.65.
C/C++每線程(thread-local)變量的使用
13.66.
在pthread的線程函數中,使用類的非靜態成員函數來執行
13.67.
從 pthread 轉換到 std::thread
13.68.
如何在運行時加載C++函數和類別
13.69.
主線程退出對子線程的影響
14.
Assembly
14.1.
myAssembly
14.2.
Linux 平臺學X86組合語言
14.2.1.
現代計算機結構組成與工作過程
14.2.2.
處理器指令碼及IA-32平臺瞭解
14.2.3.
相關開發工具
14.2.4.
從“hello world!”開始
14.2.5.
使用gdb調試彙編程序
14.2.6.
數據的傳送
14.2.7.
堆棧的使用
14.2.8.
條件跳轉
14.2.9.
循環指令
14.2.10.
整數運算
14.2.11.
字符串的傳送
14.2.12.
字符串的存儲與加載
14.2.13.
字符串的比較與搜索
14.2.14.
函數的使用
14.2.15.
使用命令行參數
14.2.16.
在彙編語言中調用C庫函數
14.2.17.
在彙編中使用linux系統調用
14.2.18.
內聯彙編
14.2.19.
C語言中調用匯編函數
14.2.20.
彙編庫的使用(結)
14.3.
[轉]如何在 Linux 下使用 GNU AS 撰寫組合語言
14.4.
在 Linux 下使用 GNU AS 編寫組合語言 - 使用 gdb 進行除錯
14.5.
linux反彙編旁門左道小技巧一則
14.6.
gas學習 by Jian Lee
14.7.
閱讀assembly code
14.8.
Linux asm系統調用:32位和64位的區別
14.9.
如何在linux下編譯彙編程序,內功心法是彙編程序的結構
15.
Toolchain
15.1.
cross compiler install
15.2.
buildroot install
15.3.
arm交叉編譯器gnueabi、none-eabi、arm-eabi、gnueabihf、gnueabi區別
16.
GDB
16.1.
gdb常用指令
16.2.
Beej's Quick Guide to GDB
16.3.
簡易 GDB Script 教學,應用
16.4.
[轉]GDB的妙用
16.5.
GDB中應該知道的幾個調試方法
16.6.
KGDB
16.7.
[轉]Debug Xorg with GDB on Ubuntu
16.8.
[轉]使用 GDB 以樹狀方式將函式流程印出
16.9.
gdb 除錯技術
16.10.
gdb 的 multiarch
16.11.
gdb 編譯
16.12.
KGDB Linux Kernel for Samsung
16.13.
用GDB追蹤glibc代碼執行過程
16.14.
使用GDB分析二進位資料
16.15.
cgdb 編譯&使用
16.16.
gdb C++ 小技巧
16.17.
gdb 展開 C/C++ 的 macro
16.18.
solib-absolute-prefix 和solib-search-path的區別
16.19.
利用gdb進行shared library的除錯
16.20.
用GDB跟蹤觀察共享庫函數的地址翻譯過程
16.21.
KGDB調試LINUX內核
16.22.
GDB調試原理 ptrace系統調用
16.23.
gdb 遠程qemu-arm調試
16.24.
gdb顯示結構體
16.25.
GDB C++ STL printer
16.26.
GDB dashboard: debug info at a glance
16.27.
在程式碼中使用 signal() 插入中斷點,讓 GDB 暫停程式做 debugging
16.28.
只要出問題,<del>C4炸藥</del> gdb 都能搞定
16.29.
懶人除錯法
16.30.
兩種將gdb的輸出信息存到文件的方法
16.31.
使用call命令在GDB中重複調用某函數
16.32.
通過 GDB 學習 C 語言
16.33.
用GDB反彙編調試linux內核
16.34.
GDB下查看記憶體指令(x指令)
16.35.
How to debug glib source code via gdb
16.36.
How to use GDB debug OpenCV programmes?
16.37.
GDB實用教學:自動化你的debug
16.38.
GDB 反向調試(Reverse Debugging)
16.39.
讓程序崩潰時產生coredump
16.40.
很經典的GDB調試命令,包括查看變量,查看內存
16.41.
gdb調試帶參數程序
16.42.
整理常用的gdb技巧
16.43.
GDB命令基礎,讓你的程序bug無處躲藏
16.44.
valgrind + gdb
16.45.
調試技巧備忘
16.46.
Trace Function Calls Using GDB Revisited
16.47.
[GDB] 除錯 python 程式 thread 間互相等待 mutex,造成 deadlock 的問題
17.
Linux內核分析雲課堂學習筆記
17.1.
圖解分析彙編代碼以理解計算機是如何工作的
17.2.
基於mykernel的一個簡單的時間片輪轉多道程序內核代碼分析
17.3.
使用gdb跟蹤Linux內核啟動過程
17.4.
使用庫函數API和C代碼中嵌入彙編代碼兩種方式使用同一個系統調用
17.5.
分析system_call中斷處裡過程
17.6.
初學Linux進程的描述和進程的創建
17.7.
初學《Linux內核如何裝載和啟動一個可執行程序》
17.8.
初學Linux中進程調度與進程切換過程
17.9.
Linux內核學習總結
17.10.
小博魚筆記
17.10.1.
Linux內和分析(一)計算機是如何工作的
17.10.2.
Linux內和分析(二)操作系統是如何工作的
18.
C++
18.1.
筆記
18.1.1.
C++ 通過虛函數表,直接外部訪問類中的函數,並且脫離類
18.1.2.
使用gdb探究C++內存佈局
18.1.3.
C++動多態實現之虛函數與虛表指針
18.2.
[轉]C++ 對象的內存佈局
18.3.
[轉] C++對象模型之簡述C++對象的內存佈局
18.4.
[轉]C++對象模型之詳述C++對象的內存佈局
18.5.
[轉]C++ 虛函數表解析
18.6.
如何判斷 C++ 物件的類別?
18.7.
A Simple C++ Function Call Stack Trace Utility
18.8.
探索C++虛函數在g++中的實現
18.9.
樸實的C++設計
18.10.
C++ 智能指針
18.11.
Mutex::Autolock for c++
18.12.
C++ STL 學習總結(全面)
18.13.
學習C++:實踐者的方法(Beta1)
18.14.
STL 容器 (一) - 基本介紹
18.15.
STL 容器 (二) - Iterator
18.16.
C/C++ 十三誡
18.17.
標準類型轉換:static_cast, dynamic_cast, reinterpret_cast, and const_cast
18.18.
example
18.18.1.
vector 用法
18.18.2.
父子類別之間函數呼叫
18.18.3.
C++: 父類調用子類的成員函數
18.18.4.
Std Pair 用法
18.18.5.
2D vector array using std::vector
18.18.6.
arraycopy using std::vector
18.18.7.
std::vector 封裝到 shared_ptr
18.18.8.
shared_ptr 向下轉型
18.19.
C++的Class中的一些重點整理
18.20.
LOG 建構解構
18.21.
c++ typeid() 用法 如何正確的顯示 變數型態名稱的亂碼、異常
18.22.
shared_ptr 使用建構解構驗證記憶體回收
18.23.
實例研討: 從 C++ 學習 C 高級技巧
18.24.
為何 Google 禁止工程師使用 C++ static object?
18.25.
是否能讓 C++ template 的標頭檔只含宣告不含實作?
18.26.
改善C++程序的150個建議
18.27.
C++物件模型
18.27.1.
物件模式(一)
18.27.2.
物件模式(二)
18.28.
C++類對象內存結構
18.29.
C++四種繼承關係中內存分佈
18.30.
GDB來理解C++ 對象的內存佈局
18.31.
利用函數指針實現父類函數調用子類函數
18.32.
c++子類和父類指針的轉換
18.33.
C中調用C++與C++調用C
18.34.
C++11之多線程
18.34.1.
(一、標準庫的線程封裝類Thread和Future)
18.34.2.
(二、互斥對象和鎖)
18.34.3.
(三、條件變量)
18.35.
mutex
18.35.1.
C++11併發之std::mutex
18.35.2.
timed_mutex 例子
18.36.
C++靜態成員函數訪問非靜態成員的幾種方法
18.37.
Mutex + Timer 模擬時間鎖
18.38.
How to Stop or Terminate a Thread
18.39.
C++ 11 thread run函數不需要 static
18.40.
template c++ to allocate dynamic matrix 2D
19.
GNU make
19.1.
example
19.1.1.
好用 Makefile
19.2.
CMake
19.2.1.
CMake 初探
19.2.2.
CMake 入門
19.2.3.
讓cmake顯示gcc/g++的編譯信息
19.2.4.
把玩 CMake 的第一步
19.2.5.
cmake CFLAGS CXXFLAGS
19.2.6.
CMake 入門/加入編譯選項
19.2.7.
CMake for windows
19.2.8.
CMake 常用指令
19.3.
如何調試makefile變量
19.4.
跟我一起寫Makefile:make運行
19.5.
Makefile的常用技術總結
19.6.
Makefile 語法簡介
19.7.
Makefile 先編譯出so 後在編譯出執行檔
19.8.
利用 Autotools 來建立 Makefile 檔案
19.9.
GNU Makefile 雜項語法備忘
19.10.
SCons筆記(詳細版)
19.11.
高級Makefile技巧
19.12.
Makefile條件編譯debug版和release版
19.13.
Makefile範例教學
19.14.
Linux C++編譯及 靜態/動態 鏈接庫 筆記
19.15.
Makefile的基本結構
19.16.
深入學習Make命令和Makefile(上)
19.17.
深入學習Make命令和Makefile(下)
19.18.
Makefile 中的 $@, $^, $< , $? 符號
19.19.
從頭開始寫項目Makefile
19.19.1.
(零):前言
19.19.2.
(一):基本規則
19.19.3.
(二): 隱含規則自動推導
19.19.4.
(三):變量的使用
19.19.5.
(四):偽目標
19.19.6.
(五):嵌套執行
19.19.7.
(六):參數傳遞、條件判斷、include
19.19.8.
(七):統一目標輸出目錄
19.19.9.
(八):模式規則
19.19.10.
(九):目錄搜索
19.19.11.
(十):make內嵌函數及make命令顯示
19.20.
Makefile 語法和示範 by Jserv
19.21.
Makefile 好範例
20.
[轉]國王的耳朵是驢耳朵
20.1.
Linker script初探 - GNU linker ld手冊略讀
20.2.
GNU ld初探
20.3.
系統函式庫的debug 資訊放在那邊?
20.4.
Nm 的欄位說明
20.5.
Objdump -t 的欄位說明
20.6.
C語言在Linux下組裝經驗分享
20.7.
Hello World
20.8.
Using as 手冊筆記
20.9.
Hello Linux ARM 組合語言
20.10.
談談.git 目錄
20.11.
Linux下面快速搜尋PDF的方式
20.12.
from-source-to-binary-how-gnu-toolchain-works
20.13.
使用strace找出程式缺少的檔案路徑
20.14.
GNU LD 手冊略讀
20.14.1.
GNU LD 手冊略讀 (0): 目錄和簡介
20.14.2.
GNU LD 手冊略讀 (1): Chapter 3 ~ Chapter 3.5
20.14.3.
GNU LD 手冊略讀 (2): Chapter 3.6 SETCIONS
20.14.4.
GNU LD 手冊略讀 (3): Chapter 3.7 ~ Chapter 3.11
20.15.
C語言
20.15.1.
談談strip
20.15.2.
C 語言的潛規則型態轉換
20.15.3.
C 語言的format string
20.15.4.
C 語言的逗號
20.15.5.
系統函式庫的debug 資訊放在那邊?
20.15.6.
C語言archive 明明有symbol卻link時出現unsolved Symbol錯誤
20.15.7.
Gcc的幾個參數筆記
20.15.8.
Linux中誰來呼叫C語言中的main?
20.15.9.
Linux下面的C語言使用getopt Parse Command Line參數
20.15.10.
談談autotools 的 Build, Target, 和host
20.15.11.
GNU: The C Preprocessor 導讀
20.15.12.
Linux 檔案的hole
20.15.13.
Linux中使用C語言載入data object 檔案資料
20.15.14.
Rtenv的linker Script解釋
20.15.15.
尋找"Hello World\n"
20.15.16.
談談C語言的全域變數和 Linux Object 檔案的關係
20.15.17.
抓漏 - gdb 和 valgrind 合體技
20.15.18.
抓漏 - 使用valgrind檢查C語言memory Leak
20.15.19.
C99的inline Function
20.16.
Linux Kernel Pratice 0: Buildroot (1/2)
20.17.
Linux Kernel Pratice 0: Buildroot (2/2) - 自行編譯kernel
20.18.
使用gdb 靜態分析C 語言名稱和參數相同函數的原始檔位置
20.19.
Linux Kernel Pratice 0.5: 使用gdb 加 Qemu Trace Linux Kernel Runtime 行為
21.
Shell
21.1.
shell十三問
21.1.1.
何為shell
21.1.2.
shell prompt(PS1)與Carriage Return(CR)關係
21.1.3.
別人echo、你也echo,是問echo知多少?
21.1.4.
""(雙引號)與''(單引號)差在哪?
21.1.5.
問var=value 在export前後的差在哪?
21.1.6.
exec跟source差在哪?
21.1.7.
()與{}差在哪?
21.1.8.
$(())與$()還有${}差在哪?
21.1.9.
$@與$*差在哪?
21.1.10.
&& 與 || 差在哪?
21.1.11.
>與< 差在哪?
21.1.12.
你要if還是case呢?
21.1.13.
for what? while與until差在哪?
21.2.
MY_script
21.2.1.
選單
21.2.2.
AutoROM_new.sh
21.2.3.
script 執行自己log 的紀錄
21.2.4.
批次Audio編碼轉換
21.3.
Bash的陷阱
22.
simplelinux
22.1.
照妖鏡和火眼金睛
22.2.
局部變量
22.3.
全局變量
22.4.
值傳遞
22.5.
數組與指針
22.6.
字符串
22.7.
結構體
22.8.
奇怪的宏
22.9.
內存對齊
22.10.
函數幀
22.11.
函數幀應用一:誰調用了main?
22.12.
函數幀應用二:所有遞歸都可以變循環
22.13.
未初始化全局變量
22.14.
進程內存分佈
22.15.
編譯優化
22.16.
static變量 及 作用域控制
22.17.
變量名、函數名
22.18.
函數指針
22.19.
可變參數
22.20.
C語言的棧是靜態的
22.21.
內聯彙編
22.22.
彙編實現的動態棧
22.23.
linux0.01進程時間片的消耗和再生
22.24.
linux2.6.XX進程切換和時間片再生
23.
OpenSource
23.1.
C/C++開源程式碼
23.2.
免費的編程中文書籍索引
24.
wirelessr
24.1.
Linux Shell
24.1.1.
Expect妙用無窮
24.2.
C Design Pattern
24.2.1.
Template Method
24.2.2.
Observer
24.2.3.
Strategy
24.2.4.
Polymorphism in C
25.
設計模式
25.1.
23種設計模式的趣味解釋
25.2.
設計模式經驗談
25.3.
設計模式整理列表
25.4.
物件導向程式設計五大原則:SOLID
25.5.
如何正確地寫出單例模式
25.6.
如何正確地使用設計模式?
25.7.
Design Pattern 與 Double Dispatching
25.8.
<總結> 設計模式之 開放封閉原則OCP C++示例
25.9.
c++面向對象設計的SOLID原則
26.
OpenWrt
26.1.
OpenWRT 編譯環境搭建
27.
Python
27.1.
example
27.1.1.
月營收這樣看!三種月營收選股法 – Python實作教學
27.1.2.
個股年成交資訊
27.1.3.
Python 基本爬蟲程式 以 Google 新聞為例
27.1.4.
Python 新聞關鍵字查詢
27.1.5.
PTTcrawler (PTT文章爬蟲)
27.1.6.
Python_by_David_Chiu
27.1.7.
google news 爬文
27.1.8.
如何抓取廉價航空的機票價格 – 以酷航
27.1.9.
露天拍賣 & 編碼問題
27.1.10.
fb 社團爬標題發文者內容
27.1.11.
Python中將打印輸出導向檔案
27.1.12.
轉換GDB調用棧到流程圖
27.1.13.
Retrieving Gmail blocked attachments
27.1.14.
如何抓取上市股票交易明細
27.1.15.
臺鐵資料下載
27.1.16.
Find all files in directory with extension .txt in Python
27.1.17.
Audio 利用ffmpeg 編碼轉換
27.1.18.
集臺證所融資融券餘額全部資料
27.1.19.
goodinfo
27.1.20.
sqlite3 技術手冊
27.1.21.
利用PYTHON + GMAIL SMTP 寄送EMAIL及附檔 CATEGORIES
27.1.22.
Post 抓取高鐵
27.1.23.
goodinfo 經營績效
27.1.24.
使用Pandas 函式將臺灣銀行的牌告匯率存進資料庫中
27.1.25.
抓三大法人的網頁資料
27.1.26.
讀取檔案指定的行
27.1.27.
產生曲線圖
27.1.28.
畫出Euler angle 曲線圖
27.1.29.
標準差計算
27.1.30.
畫四元數曲線圖
27.1.31.
多筆行平均總和
27.1.32.
SWIG
27.1.33.
Scrapy + Python 3: PTT 資料抓取與分析
27.1.34.
ptt using selenium
27.1.35.
Line notify
27.1.36.
PTT爬文物品 + line 發送
27.1.37.
露天拍賣 換頁
27.1.38.
ultrasound raw data
27.1.39.
campsaver.py
27.1.40.
選出股本50億以上的股票代號
27.1.41.
goodinfo 股票篩選
27.1.42.
抓取臺股證交所每日股價資料,儲存到MongoDB
27.1.43.
音頻文件按照正常語句,斷句拆分的處理方法
27.1.44.
台股大盤季線計算
27.2.
pandas
27.2.1.
pandas 入門
27.2.2.
Python Pandas DataFrame 的 iloc[0] 與 iloc[[0]]
27.2.3.
Pandas Dataframes to_html: Highlighting table rows
27.2.4.
open HTML 網頁分析
27.2.5.
Pandas 無法處理HTML 透過Soup 輔助
27.2.6.
pandas create dataframe example
27.2.7.
Convert list of numpy.float64 to float and Converting strings to floats in a DataFrame
27.2.8.
Pandas Excel example
27.2.9.
十分鐘快速入門 Pandas
27.2.10.
Add a row to dataframe
27.2.11.
Pandas DataFrame 的 iloc[0] 與 iloc[[0]]
27.2.12.
數據操作(Pandas) 完整
27.2.13.
pandas read csv
27.2.14.
read html
27.3.
編碼
27.3.1.
Python - 瞭解bytes、str與unicode的區別
27.3.2.
淺談 python2及 python3處理中文字串編碼的差異
27.3.3.
立即停止使用 setdefaultencoding('utf-8'), 以及為什麼
27.3.4.
Python + Requests 編碼問題
27.3.5.
Python 的編碼
27.3.6.
瞭解Unicode
27.3.7.
python string and unicode string
27.3.8.
python2 與 python3 編碼差異
27.4.
django
27.4.1.
使用heroku部署django應用測試
27.4.2.
Python Django 快速入門教學
27.4.3.
Django 基本命令
27.5.
正則 Regex
27.5.1.
Python的re模塊
27.6.
BeautifulSoup
27.6.1.
remove script tags with BeautifulSoup
27.6.2.
使用BeautifulSoup
27.6.3.
Python使用beautifulsoup解析HTML、XML
27.6.4.
python爬蟲之BeautifulSoup
27.7.
爬蟲
27.7.1.
Python爬蟲模擬登錄的黑魔法
27.7.2.
Selenium 使用 CSS locator 定位 HTML element
27.8.
常見錯誤訊息
27.9.
安裝 Jupyter
27.10.
編譯python & 安裝pip
27.11.
pip 使用詳解
27.12.
5個很好的Python面試題
27.13.
Python-網頁爬蟲-&-文本處理-&-科學計算-&-機器學習-&-數據挖掘兵器譜
27.14.
選擇Python科學計算發行版
27.15.
Python常用的數學函數
27.16.
python debug 入門
27.17.
Python 直譯器如何處理字串編碼
27.18.
Python--線性代數篇
27.19.
python字符串連接的N種方式
27.20.
Python調用Linux下的動態庫(so)
27.21.
python堆棧回溯示例代碼
27.22.
Generate c/c++ header file from a CSV file (for array declaration)
27.23.
觀察技巧 with Chrome開發人員工具
27.24.
steepandcheap alerts
27.25.
Anaconda使用總結
27.26.
python setup.py uninstall
27.27.
Python 原始碼 使用 gdb trace
27.28.
Debugging CPython with gdb
27.29.
PTT gamesale 板的買賣文
27.30.
How to define two-dimensional array in python
27.31.
Python技巧(漂亮又通順的程式碼)
27.32.
DB
27.32.1.
SQLite - Python 安裝
27.33.
Python 讀取csv的某行
27.34.
用 Anaconda 完美解決 Python2 和 python3 共存問題
27.35.
Embed python / numpy in C++
27.36.
practice
27.37.
Selenium
27.38.
utctime to localtime
27.39.
區塊鏈
27.39.1.
50 行 Python 代碼構建一個區塊鏈
28.
Vim
28.1.
HOWTO - vi, vim
28.2.
編譯vim8並添加對lua,python,ruby的支持
28.3.
NVIM
29.
TDD
29.1.
程式設計師升級必練內功:TDD Kata
30.
Raspberry_Pi
30.1.
燒錄新版系統
30.2.
Hello world on qemu Raspberry Pi
30.3.
自己動手編譯 Raspberry Pi 的 Kernel
30.4.
Building and Deploying Raspberry PI Kernel
30.5.
Preparing Raspberry PI for JTAG Debugging
30.6.
Raspberry Pi 2 Bare Metal Multicore JTAG Debugging
30.7.
rpi, serial and kgdb
30.8.
[Raspberry Pi Project] How does Raspberry Pi boot?
30.9.
[Raspberry Pi Project] Compile and update Raspbian kernel
30.10.
[Raspberry Pi Project] kernel啟動參數
30.11.
Raspberry Pi 編譯 Linux 核心
30.12.
用 Raspberry pi 寫驅動程式 -- 基本觀念
30.13.
用 Raspberry pi 寫驅動程式 -- 範例1:LED
30.14.
在Raspberry pi 上建立自己的system call
30.15.
Raspberry pi GPIO 控制
30.16.
Raspberry Pi的開始流程
30.17.
consile fullscreen
30.18.
Raspberry Pi:Raspbian增加deb套件的下載來源
30.19.
使用 C++ 讀取 MPU-6050 加速度計與陀螺儀感測資料
30.20.
使用 MPU-6050 的 DMP 來取得更精準的運動感測資料
30.21.
kgdb for RPI
30.22.
telnet for raspberry
30.23.
Debugging Raspberry Pi Linux kernel with JTAG and GDB
30.24.
raspberrypi2_kernel_debug
30.25.
fichugh
30.25.1.
buildRoot study - 建立自己的作業系統
30.25.2.
u-boot 組態研究- raspberry pi 2
30.25.3.
How to Build a GCC Cross-Compiler
30.26.
ARM assembler in Raspberry Pi
30.26.1.
Table of contents
30.26.2.
Introduction
30.26.3.
Registers and basic arithmetic
30.26.4.
Memory, addresses. Load and store.
30.26.5.
GDB
30.26.6.
Branching
30.26.7.
Control structures
30.26.8.
Indexing modes
30.26.9.
Arrays and structures
30.26.10.
Functions (I)
30.26.11.
Functions (II). The stack
30.26.12.
Predication
30.26.13.
Loops and the status register
30.26.14.
Floating point numbers
30.26.15.
Matrix multiply
30.26.16.
Integer division
30.26.17.
Switch control structure
30.26.18.
Passing data to functions
30.26.19.
Local data and the frame pointer
30.26.20.
The operating system
30.26.21.
Indirect calls
30.26.22.
Subword data
30.26.23.
The Thumb instruction set
30.26.24.
Nested functions
30.26.25.
Trampolines
30.26.26.
Integer SIMD
30.26.27.
A primer about linking
30.26.28.
Objects and libraries
30.27.
Exploring AArch64 assembler
30.27.1.
Chapter 1
30.27.2.
Chapter 2
30.27.3.
Chapter 3
30.27.4.
Chapter 4
30.27.5.
Chapter 5
30.27.6.
Chapter 6
30.27.7.
Chapter 7
30.27.8.
Chapter 8
30.28.
raspberry 3b 64bit 系統安裝,以及交叉編譯環境、調試環境的搭建
30.29.
樹莓派autossh反向隧道
30.30.
Kernel Initialization
30.31.
Debugging Raspberry Pi 3 with JTAG
30.32.
pi3 設定
30.33.
兩種方式教你編譯更新RaspberryPi3的內核
31.
OpenGL
31.1.
opengl(mesa) for ubuntu14.04
31.2.
ubuntu 14.04 安裝OpenGL(基於freeglut)
31.3.
Ubuntu下安裝OpenGL圖形庫
31.4.
OpenGL,glx,glaux,glut,freeglut,glew,glfw,mesa
32.
arduino
32.1.
Processing communication with Arduino via serial
32.2.
使用gdb實時調式arduino
32.3.
Arduino UNO控制板簡介
32.4.
時脈算換
32.4.1.
I2C protocol 原理及應用
32.5.
邱小新8051
32.5.1.
I2C protocol 時間計算
32.5.2.
8051 clock
32.5.3.
I2C protocol 原理及應用
32.6.
I2C
32.7.
讓 arduino 不需要使用 sudo
33.
edb
33.1.
EDB (Evan's Debugger)
34.
Debug Tips
34.1.
分析問題想法筆記
34.2.
gcc/g++ -instrument-functions 參數
34.3.
core dump 之前的 frame
34.4.
使用valgrind檢查cache命中率,提高程序性能
34.5.
GDB調試技巧:gdb at pid無法調試的問題
34.6.
GDB調試技巧:調試複雜的宏定義
34.7.
使用valgrind檢查內存問題
34.8.
GDB技巧:使用checkpoint解決難以復現的Bug
34.9.
強制進程產生coredump,檢測死鎖以及進程快照
34.10.
如何快速地在每個函數入口處加入相同的語句?
34.11.
C++源碼的調用圖生成
35.
thinker_note
35.1.
如果有人要求你改善系統
35.2.
閱讀程式碼的心理層面
35.3.
學習程式設計的方法?!
35.4.
讀 code 和讀文章應該差不多
35.5.
程式碼要清的多乾淨?
35.6.
GDB 追蹤 memory corruption
35.7.
GDB 自動化 debug
35.8.
unittest 與 pdb 改善開發效率
35.9.
程式註解如何寫
35.10.
程式碼的可讀性比較
35.11.
軟體元件的使用
36.
GCC_and_Clang
36.1.
GCC
36.1.1.
__thread關鍵字
36.1.2.
gcc中-pthread和-lpthread的區別
36.1.3.
memory layout C++ objects for g++
36.1.4.
gcc -E -P
36.1.5.
g++參數介紹
36.1.6.
gcc編譯,ld連接
36.1.7.
編譯步驟 - 組譯 連結 測試
36.1.8.
Linux GCC 編譯4個過程
36.1.9.
dlopen() 與 GCC -rdynamic 選項
36.2.
Clang
36.2.1.
memory layout C++ objects for clang
37.
FreeRTOS
37.1.
FreeRTOS-GCC-ARM926ejs_QEMU
37.2.
[STM32] 4. 移植 FreeRTOS
38.
tinyclub
38.1.
源碼分析
38.1.1.
靜態分析 C 程序函數調用關係圖
38.1.2.
動態分析 C 程序函數調用關係
38.1.3.
函數調用關係繪製方法與逆向建模
38.1.4.
動態分析 Linux 內核函數調用關係
38.2.
Linux 彙編語言快速上手:4大架構一塊學
39.
VR
39.1.
Linux Build Instructions
39.2.
kalman filter
39.3.
MPU6050
39.4.
卡爾曼濾波 配合程式 講解
39.5.
MPU6050數據輕鬆分析
39.6.
Quat Euler 互轉
39.7.
四元數 diff
40.
Treace code
40.1.
[轉]閱讀程式碼的心理層面
40.2.
我的原始碼閱讀之道
40.3.
磨練閱讀程式技巧,不受黑盒限制
40.4.
閱讀他人的程式碼
40.4.1.
讀懂程式碼,使心法皆為我所用
40.4.2.
摸清架構,便可輕鬆掌握全貌
40.4.3.
優質工具在手,讀懂程式非難事
40.4.4.
望文生義,進而推敲組件的作用
40.4.5.
找到程式入口,再由上而下抽絲剝繭
40.4.6.
閱讀的樂趣:透過程式碼認識作者
41.
Log
41.1.
打印log
41.2.
如何在 Android 各 level ( 包含 user space 與 kernel space ) 使用dump call stack的方法
42.
embedded
42.1.
JTAG是把屠龍刀,說說其作用和原理
42.2.
TQ210
42.2.1.
TQ210 成功使用 JLink debug kernel
43.
Linux Network
43.1.
Linux Socket 入門
43.2.
Socket programming 筆記
43.3.
TCP Socket Programming 學習筆記
43.4.
ntohs, ntohl, htons,htonl的比較
43.5.
AF_INET和PF_INET的區別
44.
node.js
44.1.
安裝 NodeJS、NPM
44.2.
JavaScript 快速入門[轉]
44.2.1.
JavaScript 快速入門(序)
44.2.2.
JavaScript 快速入門(1/10)- 訊息輸出
44.2.3.
JavaScript 快速入門(2/10)- 變數與資料型別
44.2.4.
JavaScript 快速入門(3/10)- 數字/ 字串/ 布林值
44.2.5.
JavaScript 快速入門(4/10)- 運算子
44.2.6.
JavaScript 快速入門(5/10)- 敘述句 if / switch
44.2.7.
JavaScript 快速入門(6/10)- 迴圈
44.2.8.
JavaScript 快速入門(7/10)- 函式
44.2.9.
JavaScript 快速入門(8/10)- 物件
44.2.10.
JavaScript 快速入門(9/10)- 陣列
44.2.11.
JavaScript 快速入門(10/10)- 使用內建物件
45.
100 gdb tips
45.1.
信息顯示
45.1.1.
顯示gdb版本信息
45.1.2.
顯示gdb版權相關信息
45.1.3.
輸出信息多時不會暫停輸出
45.1.4.
啟動時不顯示提示信息
45.1.5.
退出時不顯示提示信息
45.2.
函數
45.2.1.
列出函數的名字
45.2.2.
是否進入帶調試信息的函數
45.2.3.
進入不帶調試信息的函數
45.2.4.
退出正在調試的函數
45.2.5.
直接執行函數
45.2.6.
打印函數堆棧幀信息
45.2.7.
打印尾調用堆棧幀信息
45.2.8.
選擇函數堆棧幀
45.2.9.
向上或向下切換函數堆棧幀
45.3.
斷點
45.3.1.
在匿名空間設置斷點
45.3.2.
在程序地址上打斷點
45.3.3.
在程序入口處打斷點
45.3.4.
在文件行號上打斷點
45.3.5.
保存已經設置的斷點
45.3.6.
設置臨時斷點
45.3.7.
設置條件斷點
45.3.8.
忽略斷點
45.4.
觀察點
45.4.1.
設置觀察點
45.4.2.
設置觀察點只針對特定線程生效
45.4.3.
設置讀觀察點
45.4.4.
設置讀寫觀察點
45.5.
Catchpoint
45.5.1.
讓catchpoint只觸發一次
45.5.2.
為fork調用設置catchpoint
45.5.3.
為vfork調用設置catchpoint
45.5.4.
為exec調用設置catchpoint
45.5.5.
為系統調用設置catchpoint
45.5.6.
通過為ptrace調用設置catchpoint破解anti-debugging的程序
45.6.
打印
45.6.1.
打印ASCII和寬字符字符串
45.6.2.
打印STL容器中的內容
45.6.3.
打印大數組中的內容
45.6.4.
打印數組中任意連續元素值
45.6.5.
打印數組的索引下標
45.6.6.
打印函數局部變量的值
45.6.7.
打印進程內存信息
45.6.8.
打印靜態變量的值
45.6.9.
打印變量的類型和所在文件
45.6.10.
打印內存的值
45.6.11.
打印源代碼行
45.6.12.
每行打印一個結構體成員
45.6.13.
按照派生類型打印對象
45.6.14.
指定程序的輸入輸出設備
45.6.15.
使用“$\\_”和“$\\__”變量
45.6.16.
打印程序動態分配內存的信息
45.6.17.
打印調用棧幀中變量的值
45.7.
多進程/線程
45.7.1.
調試已經運行的進程
45.7.2.
調試子進程
45.7.3.
同時調試父進程和子進程
45.7.4.
查看線程信息
45.7.5.
在Solaris上使用maintenance命令查看線程信息
45.7.6.
不顯示線程啟動和退出信息
45.7.7.
只允許一個線程運行
45.7.8.
使用“$_thread”變量
45.7.9.
一個gdb會話中同時調試多個程序
45.7.10.
打印程序進程空間信息
45.7.11.
使用“$_exitcode”變量
45.8.
core dump文件
45.8.1.
為調試進程產生core dump文件
45.8.2.
加載可執行程序和core dump文件
45.9.
彙編
45.9.1.
設置彙編指令格式
45.9.2.
在函數的第一條彙編指令打斷點
45.9.3.
自動反彙編後面要執行的代碼
45.9.4.
將源程序和彙編指令映射起來
45.9.5.
顯示將要執行的彙編指令
45.9.6.
打印寄存器的值
45.9.7.
顯示程序原始機器碼
45.10.
改變程序的執行
45.10.1.
改變字符串的值
45.10.2.
設置變量的值
45.10.3.
修改PC寄存器的值
45.10.4.
跳轉到指定位置執行
45.10.5.
使用斷點命令改變程序的執行
45.10.6.
修改被調試程序的二進制文件
45.11.
信號
45.11.1.
查看信號處理信息
45.11.2.
信號發生時是否暫停程序
45.11.3.
信號發生時是否打印信號信息
45.11.4.
信號發生時是否把信號丟給程序處理
45.11.5.
給程序發送信號
45.11.6.
使用“$_siginfo”變量
45.12.
共享庫
45.12.1.
顯示共享鏈接庫信息
45.13.
腳本
45.13.1.
配置gdb init文件
45.13.2.
按何種方式解析腳本文件
45.13.3.
保存歷史命令
45.14.
源文件
45.14.1.
設置源文件查找路徑
45.14.2.
替換查找源文件的目錄
45.15.
圖形化界面
45.15.1.
進入和退出圖形化調試界面
45.15.2.
顯示彙編代碼窗口
45.15.3.
顯示寄存器窗口
45.15.4.
調整窗口大小
45.16.
其它
45.16.1.
命令行選項的格式
45.16.2.
支持預處理器宏信息
45.16.3.
使用命令的縮寫形式
45.16.4.
在gdb中執行shell命令和make
45.16.5.
在gdb中執行cd和pwd命令
45.16.6.
設置命令提示符
45.16.7.
設置被調試程序的參數
45.16.8.
設置被調試程序的環境變量
45.16.9.
得到命令的幫助信息
45.16.10.
記錄執行gdb的過程
46.
compiler
46.1.
手把手教你構建 C 語言編譯器
46.1.1.
前言
46.1.2.
設計
46.1.3.
虛擬機
46.1.4.
詞法分析器
46.1.5.
遞歸下降
46.1.6.
變量定義
46.1.7.
函數定義
46.1.8.
語句
46.1.9.
表達式
46.1.10.
總結
46.2.
自己動手寫編譯器、鏈接器
46.3.
深入淺出教你寫編譯器
46.4.
C-compiler-optimizations
46.5.
tcc 原始碼分析技巧
47.
linked_and_loader
47.1.
基礎範例
47.1.1.
LIBRARY_PATH和LD_LIBRARY_PATH環境變量的區別
47.1.2.
so file crash using addr2line
47.2.
把共享庫(SO)加載到指定的內存地址
47.3.
Linux GOT與PLT
47.4.
GOT和PLT原理簡析
47.5.
Linux 動態連結資料庫
47.6.
通過 GDB 調試理解 GOT/PLT
47.7.
ELF文件的加載
47.8.
再議PLT與GOT
47.9.
Linux gcc鏈接動態庫出錯:LIBRARY_PATH和LD_LIBRARY_PATH的區別
47.10.
Linux 靜態庫與共享庫的使用
47.11.
linux 下動態鏈接實現原理
47.12.
Linux 共用程式庫的組織
47.13.
動態載入函式庫 (Dynamically Lodaded Libraries)
47.14.
gcc編譯參數-fPIC的一些問題
47.15.
Linux下怎樣判斷一個binary是否可以debug
47.16.
查看正在運行的動態鏈接的程序中,某個動態庫中函數的虛擬地址
47.17.
使用另一個版本的glibc
47.18.
linux 動態裝載動態庫 ldd,ldconfig,ld.so.conf, ld.so.cache
47.19.
Linux 的動態連結與載入 (Dynamic Linking)
47.20.
ld-linux.so.X查找和加載共享動態庫的順序
47.21.
-L,-rpath-link,-rpath 動態庫的鏈接和鏈接選項
47.22.
gcc -rpath 動態庫路徑
47.23.
動態庫及靜態庫的製作步驟講解
47.24.
動態鏈接庫的搜索路徑
47.25.
Linux添加環境變量與GCC編譯器添加INCLUDE與LIB環境變量
47.26.
linux下運行時連結庫的路徑順序
47.27.
gcc/g++鏈接時.o文件以及庫的順序問題
47.28.
程式設計師的自我修養
47.28.1.
介紹
47.28.2.
編譯和連結
47.28.3.
目的檔
47.28.4.
靜態連結
47.28.5.
鏈接、裝載、與庫_讀書筆記
47.29.
gcc 編譯順序問題
47.30.
C 編譯鏈接
47.31.
C 加載過程
48.
Bochs
48.1.
OS dev的Bochs調試
49.
Nginx
49.1.
nginx 模塊 使用gdb調試nginx源碼
50.
Other
50.1.
練寫作可以讓你成為「神級程式設計師」,但不是不二法門
50.2.
編程的智慧
50.3.
為什麼 thread (執行緒、線程)越少越好?
50.4.
頂尖程序員不同於常人的5個區別
50.5.
認知學習法 by xdite
50.6.
認知學習法 - 自學篇 by xdite
50.7.
笨方法學語言
50.8.
我是如何學一門新技術的
50.9.
測試的道理
50.10.
快速掌握一個語言最常用的50%
51.
DS_ALGO
51.1.
內核雙向鏈表的使用
51.2.
Linux kernel linked list impl. for user space
51.3.
Linux的container_of 與 offsetof巨集
51.4.
linux list.h for userspace
51.5.
Linux kernel doubly linked-list implementation
52.
C
52.1.
offsetof與container_of
52.2.
read csv in c
52.3.
Q Format Number in C
52.4.
IEEE764 using C
52.5.
struct pointer to array
52.6.
gyro raw data filter
52.7.
Template in C
52.8.
signed 跟 unsigned 高位元差別
52.9.
21st Century C / 21世紀 C 語言 筆記
52.10.
你所不知道的 C 語言
52.10.1.
為何要深入學習C語言
52.10.2.
指標篇
52.10.3.
編譯器和最佳化原理篇
52.10.4.
函式呼叫篇
52.10.5.
物件導向程式設計篇
52.10.6.
前置處理器應用篇
52.10.7.
動態連結器篇
52.10.8.
遞迴呼叫篇
52.10.9.
數值系統篇
52.10.10.
技巧篇
52.10.11.
server-framework
52.10.12.
開發工具和規格標準
52.10.13.
goto 和流程控制篇
52.10.14.
linked list 和非連續記憶體操作
52.10.15.
Stream I/O 和 EOF
52.10.16.
未定義行為篇
52.10.17.
記憶體管理、對齊及硬體特性
52.11.
幫 C 語言加上 Garbage Collector
52.12.
memcpy alignment
52.13.
如何得知 malloc/free 的呼叫次數
52.14.
How to use LD_PRELOAD and dlsym hook
52.15.
C Style
52.16.
C 語言的奇技淫巧
53.
OpenSoruce
53.1.
開源網絡庫的分析libevent muduo nginx
53.2.
libevent 專案分析
53.3.
使用 gdb 研究 libevent
53.4.
15款值得學習的小型開源項目,帶你快速步入開源世界
53.5.
最值得閱讀學習的 10 個 C 語言開源項目代碼
54.
STM32
54.1.
STM32的FPU體驗
55.
hacker
55.1.
c9s
55.1.1.
快速進入工作狀況的十個要點
55.1.2.
API 設計 — 建構之道: 類別建構子設計
55.1.3.
架構之必要
55.1.4.
談設計模式之迷思
55.1.5.
想創業?再想想吧
55.1.6.
健康的泡沫
55.1.7.
API 設計— 命名之術
56.
Saleae
56.1.
ARM CM4 Pratice (3): USART 初探
57.
Docker
57.1.
構建docker開發環境
57.2.
門外漢的 Docker 小試身手
57.3.
OpenKore in Docker Dockerfile
57.4.
利用iptables給Docker綁定一個外網IP
57.5.
Docker 修改默認存儲位置
57.6.
Docker 安裝使用
57.7.
快速刪除多個 docker 容器的方法
57.8.
ubuntu docker 開啟ssh
57.9.
QEMU + GDB + LK4 on Docker
58.
Javascript
58.1.
14款基於javascript的數據可視化工具
59.
ncku 嵌入式課程 (Jserv)
59.1.
2016
59.1.1.
利用 gprof2dot 工具,將最耗時的函式與呼叫的路徑視覺化
59.1.2.
GDB command開發說明(use Python)
59.1.3.
GPIO
59.1.4.
重新理解數值
59.1.5.
類似 C++ template 來實做呢?C11 有 _Generic 關鍵字
59.1.6.
mergesort-concurrent
59.1.7.
A01: phonebook
59.1.8.
A02: raytracing
59.1.9.
A03: compute-pi
59.1.10.
A04: clz
59.1.11.
A05: introspect
59.1.12.
A06: phonebook-concurrent
59.1.13.
Matrix Multiplication using SIMD
60.
逆向工程
60.1.
Linux 逆向工程的工具介紹
61.
Git
61.1.
Keeping a fork up to date
61.2.
Clone all repos from a GitHub organization
61.3.
Git倉庫遷移而不丟失log的方法
61.4.
如何將GIT存儲庫從一個服務器遷移到新服務器
61.5.
git文件夾內容過大的解決方法
61.6.
git commit tree 保留最新20筆
62.
Interview
62.1.
DS_Algo
62.1.1.
Linked List的複習總結
62.1.2.
面試精選:鏈表問題集錦
62.1.3.
鏈表面試常見合集
62.1.4.
編程判斷兩個鏈表是否相交
62.2.
面試經驗談 - C 語言篇
62.3.
CHT
62.3.1.
筆試
63.
Java
63.1.
開檔讀檔 & 正則範例
63.2.
Thread和Runnable的區別
63.3.
用javac命令行編譯多個java文件
63.4.
Java -jar 選項與 -cp/-classpath
63.5.
打印函數 / call stack
63.6.
Ubuntu 16.04 安裝 Eclipse
63.7.
java命令行編譯運行多個java文件
63.8.
Java中變數有效的範圍(Variable Scope)
63.9.
Java Thread 之間 記憶體空間分析
63.10.
java中如何給Runnable線程傳遞參數?
63.11.
Java的兩種多線程實現方式
63.12.
gradle init --type java-application
63.13.
Unit test
63.14.
Java併發程式設計-Future系列之Future的介紹和基本用法
63.15.
Java_Gossip
63.15.1.
例外處理
63.15.1.1.
要抓還是要拋?
63.15.1.2.
貼心還是造成麻煩?
64.
Linear Algebra
64.1.
理解矩陣
64.2.
旋轉矩陣與四元數
65.
Redis
66.
OpenCV
66.1.
安裝 OpenCV
66.2.
ubuntu下多版本opencv切換
66.3.
IplImage 和 Mat 互轉
66.4.
通過C++ wrapper 實現存取圖像像素
66.5.
如何把OpenCV Python獲取的圖像傳遞到C層處理
66.6.
ubuntu 18.04 安裝 OpenCV3.4 contrib 編譯 C++
66.7.
Opencv 讀寫圖檔基本操作
66.8.
Opencv 3.4 + gdb
66.9.
gdb-imagewatch
66.10.
Opencv Makefile
67.
Qt
67.1.
ubuntu編譯安裝 qt 5.8
67.2.
在QT官網下載最新的版本
67.3.
環境安裝 & 第一個 Qt 程式
67.4.
花了 6 年才找到的 bug?
68.
SlickEdit
69.
Kotlin
69.1.
Kotlin ?!! 這些符號到底什麼意思
69.2.
簡介 Kotlin: run, let, with, also 和 apply
69.3.
與Java的比較
70.
Rust
70.1.
Rust Note
70.2.
給 C++ 使用者的 Rust 簡介
70.3.
Rust 概念
70.4.
Rust筆記
70.5.
Rust 與記憶體
70.6.
給 C++ 使用者的 Rust 簡介:智慧指標
70.7.
給 C++ 使用者的 Rust 簡介:字串與陣列
70.8.
給 C++ 使用者的 Rust 簡介:參考型別與 Borrow Checker
70.9.
給 C++ 使用者的 Rust 簡介
70.10.
給 C++ 使用者的 Rust 簡介:物件導向篇
70.11.
物件導向程式設計
70.12.
Linux核心採納Rust的狀況
70.13.
30 天深入淺出 Rust
70.13.1.
Overview
70.13.2.
安裝環境
70.13.3.
Rust 的套件管理工具 Cargo 與套件倉庫
70.13.4.
Rust 基礎
70.13.5.
變數的所有權與借出變數
71.
Deep Learning
71.1.
人工智慧、機器學習與深度學習間有什麼區別?
71.2.
機器學習(Machine Learning) 介紹
71.3.
深度學習開發環境配置:Ubuntu1 6.04+Nvidia GTX 1080+CUDA 8.0
71.4.
在Linux Ubuntu 安裝 Tensorflow 與Keras
72.
Parallel Computing
72.1.
並行計算工具的選擇
73.
Cuda
73.1.
CUDA ---- Hello World From GPU
74.
Math
74.1.
三角函數
74.2.
Angle Between Two 3D Vectors
74.3.
FINDING OPTIMAL ROTATION AND TRANSLATION BETWEEN CORRESPONDING 3D POINTS
74.4.
以矩陣來表示轉換
74.5.
NumPy 矩陣乘法
74.6.
奇異值分解(SVD) --- 幾何意義
74.7.
NumPy中array和matrix用於矩陣乘法時的區別
74.8.
OpenGL Angles to Axes
75.
Third-party
75.1.
Eigen 使用
75.2.
C++矩陣處理庫--Eigen初步使用
75.3.
C++矩陣庫 Eigen 快速入門
75.4.
Vector3d Quaterniond Affine3d MatrixXd for Eigen
75.5.
Google Protocol Buffers
75.5.1.
Google Protocol Buffers 學習筆記
75.6.
openh264在ubuntu下的android版編譯
76.
Big Data
76.1.
Spark與Hadoop關係
76.2.
TensorFlow和Spark MLlib有什麼區別?
77.
IOT
77.1.
ESP8266 & NodeMCU 開發入門
77.2.
在 NODEMCU 上執行 MICROPYTHON
78.
media player
78.1.
vlc-android 編譯 for ubuntu 18.04
78.2.
C++ 影像串流 Raspberry Pi camera RTSP 影像串流
78.3.
流媒體與直播技術學習筆記
78.4.
Streaming 通訊協定 RTP RTCP RTSP RTMP HLS 介紹
79.
投資
79.1.
ubuntu TA-lib的安裝
79.2.
talib BBands + twstock
79.3.
finviz 篩選
80.
Golang
Published with GitBook
Jason note
C++