止于至善
Tags
Mac
Git指令整理
常用 Git 操作与排错记录
终端
Git指令整理
常用 Git 操作与排错记录
Git
项目工程化规约:pre-commit 钩子 + 跨平台换行符
把 .pre-commit-config.yaml、CMake 自动安装、.gitattributes EOL 这三件事合并整理
常用工具网站收藏
先记一个源码查找站点和最基础的 git 命令占位
Git指令整理
常用 Git 操作与排错记录
Spark
Spark / Spark SQL 常用命令速查
正则提取、过滤聚合与官方文档入口整理
SQL
Spark / Spark SQL 常用命令速查
正则提取、过滤聚合与官方文档入口整理
Cheat Sheet
Markdown 速查表(繁中翻译版)
Adam-P 的 Markdown Cheatsheet 中文翻譯版
Spark / Spark SQL 常用命令速查
正则提取、过滤聚合与官方文档入口整理
Markdown
Markdown 语法学习笔记
一份 2014 年记的入门笔记,按目录 / 文本 / 链接 / 图片 / 列表 / 代码 / 表格分块
Markdown 速查表(繁中翻译版)
Adam-P 的 Markdown Cheatsheet 中文翻譯版
Tools
A/B 测试样本量估算工具
只保留一个常用的在线样本量计算器链接
大模型 / Coding Agent 对比收藏
常看的几个产品入口与排名网站
常用工具网站收藏
先记一个源码查找站点和最基础的 git 命令占位
C++
VS Code 配置整理
插件清单、clangd / IWYU / lldb / Bash Debug 配置与一份个人 settings.json
Graphviz 状态图脚本整理
从 C++ 状态机代码提取状态转移并导出 PNG
gperftools / tcmalloc 安装与使用要点
把版本选择、libunwind、链接方式、编译开关汇总在一处
纯 C++ 写一个最小可用的 TimerThread
只用 thread / mutex / condition_variable 的简化版本与设计取舍
Templight 使用整理
编译期模板元编程调试的最小准备记录
C/C++ 宏定义小技巧
用 MARCO_EXPAND 解决 __VA_ARGS__ 嵌套被吞参数的问题
hicc::debug::X 调试工具类
一个用来观察 RVO / 拷贝省略 / 就地构造的埋点小类
Protobuf 使用笔记整理
代码生成、lite 运行时、链接方式与 CMake 接入
用最小堆实现 Top-K(KthLargest)
priority_queue + greater 的固定写法记录
folly 阅读笔记:架构相关的几条记录
crc32 / memcpy / 编译入口与待补的 barrier.h
C++ lambda 捕获与原始字符串整理
捕获方式、内存对比、复现程序与 R"(..)" 写法
C++ 常用小技巧三则
读文件到 string、struct 与 ostream 互转、placement new
.clang-format 中文注释版配置示例
一份带中文说明的整 .clang-format 模板,方便回看每一项含义
CMake 速查表
编译选项、ccache/distcc、graphviz、version script 等常用片段
clang-format 使用整理
增量格式化、VS Code 接入与多份配置 demo
Bazel 构建备忘
围绕 `bzlmod` 的几个最常用命令
如何提升程序的性能
从定位瓶颈到优化落地的检查清单
Address Sanitizer 使用笔记
Linux、WSL 与 Android 场景下的快速排查记录
clang-tidy 使用记录
安装、配置与批量检查脚本示例
C/C++ 编译相关整理
编译流程 / 静态动态库 / GCC 优化选项 / FDO / AutoFDO / LTO / BOLT / LLVM 笔记汇总
GDB 指令整理
core dump、内存问题、线程栈、so 调试与 .gdbinit 模板
C++ 开发遇到的坑
原始字符串、std::thread 崩溃、链接错误、循环依赖与静态对象初始化顺序
Linker
so 裁剪笔记整理
从编译选项到体积分析的最小排查链路
Android NDK 链接报错:file format not recognized
从输入文件格式、ABI 与产物完整性排查
C++ 开发遇到的坑
原始字符串、std::thread 崩溃、链接错误、循环依赖与静态对象初始化顺序
Thread
纯 C++ 写一个最小可用的 TimerThread
只用 thread / mutex / condition_variable 的简化版本与设计取舍
C++ 开发遇到的坑
原始字符串、std::thread 崩溃、链接错误、循环依赖与静态对象初始化顺序
Pitfalls
C++ 开发遇到的坑
原始字符串、std::thread 崩溃、链接错误、循环依赖与静态对象初始化顺序
Linux
Ubuntu 环境搭建笔记
apt 换源(清华 / 163 / 阿里云 / 中科大)+ pip / 网络 / 工具杂记
fd 泄漏排查入口
先用 KOOM 找范围,再按需用 strace 跟打开路径
CPU / 内存飙升 100% 排查清单
把 perf、top、strace、pstack 等常用排查命令归到一处
Ninja 与 CMake 速记
安装 Ninja 后,如何确认工程已切到 Ninja 生成器
Bloaty 体积分析备忘
从符号、编译单元到运行时映射的最小排查入口
OpenSSL 1.1.1g 与 Python 3.8.6 安装记录
在保留原始经验的基础上,优先使用独立前缀安装
如何提升程序的性能
从定位瓶颈到优化落地的检查清单
Redis Cheat Sheet
常用命令速查与线上使用注意事项
MySQL 常用操作记录
导出查询结果与大表删除的安全做法
Docker 安装与常用命令记录
旧环境下的部署笔记与风险提示
glibc 升级踩坑后的应急恢复
出现 segmentation fault 或 libc.so.6 缺失时,先别退出 SSH
glibc 升级记录
为什么不要直接替换系统 glibc,以及更稳妥的替代方案
core dump 调试技巧
从开启 core 到用 addr2line 和 gdb 定位崩溃点
GDB 指令整理
core dump、内存问题、线程栈、so 调试与 .gdbinit 模板
Socket 问题排查整理
accept 队列 / 内核参数 / fd 泄漏 / tcpdump / WebSocket curl
linux指令整理
常用 Linux 排查与运维命令整理
Socket
Socket 问题排查整理
accept 队列 / 内核参数 / fd 泄漏 / tcpdump / WebSocket curl
TCP
KCP 协议笔记
设计目的、缓存控制、丢包模拟与 TCP 单连接吞吐推导
Socket 问题排查整理
accept 队列 / 内核参数 / fd 泄漏 / tcpdump / WebSocket curl
Network
XQUIC 笔记整理
握手流程、传输模式与简单压测结论
流量下线排查清单
从重启服务到按 logid 和时间戳追链路的最小步骤
手机抓包前的网卡设置
360 随身 WiFi 配合 Wireshark 时的一个前置检查点
Socket 问题排查整理
accept 队列 / 内核参数 / fd 泄漏 / tcpdump / WebSocket curl
GDB
core dump 调试技巧
从开启 core 到用 addr2line 和 gdb 定位崩溃点
GDB 指令整理
core dump、内存问题、线程栈、so 调试与 .gdbinit 模板
Debug
工程问题的三大法宝
评估影响、对比定位、再不行就抄
Android 开发零散记录
反编译、Gradle 对齐与 debug 构建配置的最小备忘
GDB 指令整理
core dump、内存问题、线程栈、so 调试与 .gdbinit 模板
leetcode
根据字符出现频率排序
LeetCode 451 题解笔记
把二叉搜索树转换为累加树(反向中序)
剑指 Offer II 054 / LeetCode 538 题解笔记
搜索旋转排序数组
LeetCode 33 题解笔记
旋转数组中的最小值
LeetCode 153 题解笔记
单词搜索(DFS + 回溯)
LeetCode 79 题解笔记
双路快速排序
分区原理与 LeetCode 笔记
合并 K 个升序链表(优先队列)
LeetCode 23 题解笔记
合并 K 个升序链表(STL 演示版)
priority_queue + list iterator 的 K 路归并
爱吃香蕉的珂珂(答案二分)
LeetCode 875 题解笔记
二叉树的最低公共祖先(路径回溯法)
LeetCode 236 题解笔记
二叉树展开为单链表
LeetCode 114 题解笔记
二叉搜索树中序遍历(求最小绝对差)
LeetCode 530 题解笔记
二叉搜索树展开为有序双向循环链表
剑指 Offer II 题解 / LeetCode 426 题解笔记
LRU 缓存(STL list + unordered_map 演示)
用 STL 容器写一遍 LRU
LRU 缓存(哈希表 + 双向链表)
LeetCode 146 题解笔记
分隔链表题解
LeetCode 86 双指针解法
链表
合并 K 个升序链表(优先队列)
LeetCode 23 题解笔记
合并 K 个升序链表(STL 演示版)
priority_queue + list iterator 的 K 路归并
二叉搜索树展开为有序双向循环链表
剑指 Offer II 题解 / LeetCode 426 题解笔记
分隔链表题解
LeetCode 86 双指针解法
双指针
分隔链表题解
LeetCode 86 双指针解法
WSL
Seastar 编译与 DPDK 记录整理
编译依赖、WSL 限制与 DPDK 运行要点
WSL Ubuntu 升级与配置小记
虚拟化开关、do-release-upgrade 报错、桥接模式、wsl 资源与 perf 编译脚本
Ubuntu
Ubuntu 环境搭建笔记
apt 换源(清华 / 163 / 阿里云 / 中科大)+ pip / 网络 / 工具杂记
Ubuntu 上准备多版本 GCC 的源
通过修改 apt 源拉取 gcc 7.3 / 7.5
WSL Ubuntu 升级与配置小记
虚拟化开关、do-release-upgrade 报错、桥接模式、wsl 资源与 perf 编译脚本
Windows
Windows / PowerShell 常用命令速查
软链接、环境变量重载、vcpkg 安装与配置
Windows 下接入 vcpkg 备忘
PATH、toolchain 文件与 Boost 路径的最小记录
WSL Ubuntu 升级与配置小记
虚拟化开关、do-release-upgrade 报错、桥接模式、wsl 资源与 perf 编译脚本
Linux Kernel
Linux 内核定时器学习入口
先记下从 timer.c 开始读起的位置
WSL Ubuntu 升级与配置小记
虚拟化开关、do-release-upgrade 报错、桥接模式、wsl 资源与 perf 编译脚本
GCC
gcc12 + O2 下 protobuf required 字段的诡异问题
一次"加日志"思路带来的 30 分钟反思
Ubuntu 上准备多版本 GCC 的源
通过修改 apt 源拉取 gcc 7.3 / 7.5
C/C++ 编译相关整理
编译流程 / 静态动态库 / GCC 优化选项 / FDO / AutoFDO / LTO / BOLT / LLVM 笔记汇总
LLVM
C/C++ 编译相关整理
编译流程 / 静态动态库 / GCC 优化选项 / FDO / AutoFDO / LTO / BOLT / LLVM 笔记汇总
LTO
C/C++ 编译相关整理
编译流程 / 静态动态库 / GCC 优化选项 / FDO / AutoFDO / LTO / BOLT / LLVM 笔记汇总
FDO
C/C++ 编译相关整理
编译流程 / 静态动态库 / GCC 优化选项 / FDO / AutoFDO / LTO / BOLT / LLVM 笔记汇总
AutoFDO
C/C++ 编译相关整理
编译流程 / 静态动态库 / GCC 优化选项 / FDO / AutoFDO / LTO / BOLT / LLVM 笔记汇总
BOLT
C/C++ 编译相关整理
编译流程 / 静态动态库 / GCC 优化选项 / FDO / AutoFDO / LTO / BOLT / LLVM 笔记汇总
编译优化
C/C++ 编译相关整理
编译流程 / 静态动态库 / GCC 优化选项 / FDO / AutoFDO / LTO / BOLT / LLVM 笔记汇总
Android
mbedTLS / curl 配置 TLS 的踩坑记录
CIPHER_LIST、Android NDK 版本与 LTO、裁剪后的 config 同步
fd 泄漏排查入口
先用 KOOM 找范围,再按需用 strace 跟打开路径
Android NDK 链接报错:file format not recognized
从输入文件格式、ABI 与产物完整性排查
Android 开发零散记录
反编译、Gradle 对齐与 debug 构建配置的最小备忘
strdup 崩溃线索与 wrap.sh 切换记录
HWASan / ASan 下的排查入口
Address Sanitizer 使用笔记
Linux、WSL 与 Android 场景下的快速排查记录
采集 dumpsys meminfo 曲线
用 `adb` 和 `gnuplot` 快速观察 Android 进程内存变化
手机抓包前的网卡设置
360 随身 WiFi 配合 Wireshark 时的一个前置检查点
Android simpleperf 使用记录
从设备采样到生成火焰图的最小流程
Android Perfetto 堆分析记录
heapprofd 与 java_hprof 采集时的环境要求和配置片段
adb 端口占用排查
针对 5037 端口冲突的最小检查流程
adb
采集 dumpsys meminfo 曲线
用 `adb` 和 `gnuplot` 快速观察 Android 进程内存变化
adb 端口占用排查
针对 5037 端口冲突的最小检查流程
Troubleshooting
延迟优化排查思路
从压测构造到链路隔离的最小检查清单
流量下线排查清单
从重启服务到按 logid 和时间戳追链路的最小步骤
fd 泄漏排查入口
先用 KOOM 找范围,再按需用 strace 跟打开路径
glibc 升级踩坑后的应急恢复
出现 segmentation fault 或 libc.so.6 缺失时,先别退出 SSH
adb 端口占用排查
针对 5037 端口冲突的最小检查流程
Perfetto
Android Perfetto 堆分析记录
heapprofd 与 java_hprof 采集时的环境要求和配置片段
Profiling
Android simpleperf 使用记录
从设备采样到生成火焰图的最小流程
Android Perfetto 堆分析记录
heapprofd 与 java_hprof 采集时的环境要求和配置片段
simpleperf
Android simpleperf 使用记录
从设备采样到生成火焰图的最小流程
Wireshark
手机抓包前的网卡设置
360 随身 WiFi 配合 Wireshark 时的一个前置检查点
Memory
采集 dumpsys meminfo 曲线
用 `adb` 和 `gnuplot` 快速观察 Android 进程内存变化
gnuplot
采集 dumpsys meminfo 曲线
用 `adb` 和 `gnuplot` 快速观察 Android 进程内存变化
clang-tidy
clang-tidy 使用记录
安装、配置与批量检查脚本示例
静态分析
clang-tidy 使用记录
安装、配置与批量检查脚本示例
Sanitizer
strdup 崩溃线索与 wrap.sh 切换记录
HWASan / ASan 下的排查入口
Address Sanitizer 使用笔记
Linux、WSL 与 Android 场景下的快速排查记录
Core Dump
core dump 调试技巧
从开启 core 到用 addr2line 和 gdb 定位崩溃点
glibc
glibc 升级踩坑后的应急恢复
出现 segmentation fault 或 libc.so.6 缺失时,先别退出 SSH
glibc 升级记录
为什么不要直接替换系统 glibc,以及更稳妥的替代方案
Deployment
glibc 升级记录
为什么不要直接替换系统 glibc,以及更稳妥的替代方案
HWASan
strdup 崩溃线索与 wrap.sh 切换记录
HWASan / ASan 下的排查入口
Docker
Docker 安装与常用命令记录
旧环境下的部署笔记与风险提示
MySQL
数据库迁移与冷热分表方案
停机迁移 / 双写迁移 / 千万级单表的冷热归档实践
MySQL 常用操作记录
导出查询结果与大表删除的安全做法
Database
Redis Cheat Sheet
常用命令速查与线上使用注意事项
MySQL 常用操作记录
导出查询结果与大表删除的安全做法
Redis
Redis Cheat Sheet
常用命令速查与线上使用注意事项
性能优化
如何提升程序的性能
从定位瓶颈到优化落地的检查清单
OpenSSL
OpenSSL 1.1.1g 与 Python 3.8.6 安装记录
在保留原始经验的基础上,优先使用独立前缀安装
Python
百度 OCR 调用记录
从创建应用到获取 access token 再到发起识别请求的最小备忘
Python 逐行读取文件并执行命令
把"读一行 / 跑一行 shell"的小脚本固化成模板
Python 常用代码片段速查
后台运行、读 txt、dict 初始化/打印/排序、按行执行 shell
UUID1 时间戳解析
从 UUID 里反推出生成时间的最小 Python 备忘
CMake 依赖分析脚本
扫描 target_link_libraries、检测循环依赖并导出 dot 图
OpenSSL 1.1.1g 与 Python 3.8.6 安装记录
在保留原始经验的基础上,优先使用独立前缀安装
Gradle
Android 开发零散记录
反编译、Gradle 对齐与 debug 构建配置的最小备忘
iOS
APNs 调试与鉴权记录
token-based 与 certificate-based 两种调试方式的最小备忘
APNs
APNs 调试与鉴权记录
token-based 与 certificate-based 两种调试方式的最小备忘
JWT
APNs 调试与鉴权记录
token-based 与 certificate-based 两种调试方式的最小备忘
curl
mbedTLS / curl 配置 TLS 的踩坑记录
CIPHER_LIST、Android NDK 版本与 LTO、裁剪后的 config 同步
APNs 调试与鉴权记录
token-based 与 certificate-based 两种调试方式的最小备忘
NDK
Android NDK 链接报错:file format not recognized
从输入文件格式、ABI 与产物完整性排查
Bazel
Bazel 构建备忘
围绕 `bzlmod` 的几个最常用命令
Build
Protobuf 使用笔记整理
代码生成、lite 运行时、链接方式与 CMake 接入
Bazel 构建备忘
围绕 `bzlmod` 的几个最常用命令
ELF
so 裁剪笔记整理
从编译选项到体积分析的最小排查链路
Bloaty 体积分析备忘
从符号、编译单元到运行时映射的最小排查入口
Bloaty
Bloaty 体积分析备忘
从符号、编译单元到运行时映射的最小排查入口
clang-format
.clang-format 中文注释版配置示例
一份带中文说明的整 .clang-format 模板,方便回看每一项含义
clang-format 使用整理
增量格式化、VS Code 接入与多份配置 demo
CMake
项目工程化规约:pre-commit 钩子 + 跨平台换行符
把 .pre-commit-config.yaml、CMake 自动安装、.gitattributes EOL 这三件事合并整理
Windows 下接入 vcpkg 备忘
PATH、toolchain 文件与 Boost 路径的最小记录
Ninja 与 CMake 速记
安装 Ninja 后,如何确认工程已切到 Ninja 生成器
CMake 依赖分析脚本
扫描 target_link_libraries、检测循环依赖并导出 dot 图
CMake 速查表
编译选项、ccache/distcc、graphviz、version script 等常用片段
构建
CMake 速查表
编译选项、ccache/distcc、graphviz、version script 等常用片段
Graphviz
Graphviz 状态图脚本整理
从 C++ 状态机代码提取状态转移并导出 PNG
CMake 依赖分析脚本
扫描 target_link_libraries、检测循环依赖并导出 dot 图
apt
Ubuntu 上准备多版本 GCC 的源
通过修改 apt 源拉取 gcc 7.3 / 7.5
Ninja
Ninja 与 CMake 速记
安装 Ninja 后,如何确认工程已切到 Ninja 生成器
Performance
延迟优化排查思路
从压测构造到链路隔离的最小检查清单
folly 阅读笔记:架构相关的几条记录
crc32 / memcpy / 编译入口与待补的 barrier.h
so 裁剪笔记整理
从编译选项到体积分析的最小排查链路
vcpkg
Windows / PowerShell 常用命令速查
软链接、环境变量重载、vcpkg 安装与配置
Windows 下接入 vcpkg 备忘
PATH、toolchain 文件与 Boost 路径的最小记录
Protobuf
Protobuf 使用笔记整理
代码生成、lite 运行时、链接方式与 CMake 接入
gcc12 + O2 下 protobuf required 字段的诡异问题
一次"加日志"思路带来的 30 分钟反思
排查
报警排查 && 性能分析的常用步骤
从"是不是单机房"到"模块互相影响"的五步排查清单
CPU / 内存飙升 100% 排查清单
把 perf、top、strace、pstack 等常用排查命令归到一处
gcc12 + O2 下 protobuf required 字段的诡异问题
一次"加日志"思路带来的 30 分钟反思
技巧
C++ 常用小技巧三则
读文件到 string、struct 与 ostream 互转、placement new
速查
Python 常用代码片段速查
后台运行、读 txt、dict 初始化/打印/排序、按行执行 shell
性能与建模常用公式速查
QPS、同步/异步选型、cpu.load、逻辑斯蒂曲线
C++ 常用小技巧三则
读文件到 string、struct 与 ostream 互转、placement new
lambda
C++ lambda 捕获与原始字符串整理
捕获方式、内存对比、复现程序与 R"(..)" 写法
内存
内存管理速查表
freelist / 大内存分配测试 / 伪共享 padding / 内存占用分析
C++ lambda 捕获与原始字符串整理
捕获方式、内存对比、复现程序与 R"(..)" 写法
folly
folly 阅读笔记:架构相关的几条记录
crc32 / memcpy / 编译入口与待补的 barrier.h
Hash
常见哈希算法速览
加密哈希与查找型哈希的分类整理
Algorithm
常见哈希算法速览
加密哈希与查找型哈希的分类整理
Cryptography
常见哈希算法速览
加密哈希与查找型哈希的分类整理
STL
合并 K 个升序链表(STL 演示版)
priority_queue + list iterator 的 K 路归并
LRU 缓存(STL list + unordered_map 演示)
用 STL 容器写一遍 LRU
用最小堆实现 Top-K(KthLargest)
priority_queue + greater 的固定写法记录
算法
用最小堆实现 Top-K(KthLargest)
priority_queue + greater 的固定写法记录
RPC
rest_rpc 协议与接口阅读笔记
req/res header & body 字段,以及 register_handler / call 用法
rest_rpc
rest_rpc 协议与接口阅读笔记
req/res header & body 字段,以及 register_handler / call 用法
协议
rest_rpc 协议与接口阅读笔记
req/res header & body 字段,以及 register_handler / call 用法
Seastar
Seastar 编译与 DPDK 记录整理
编译依赖、WSL 限制与 DPDK 运行要点
DPDK
Seastar 编译与 DPDK 记录整理
编译依赖、WSL 限制与 DPDK 运行要点
Tricks
日常使用小技巧
暂时只记录强制 Chrome 进入 Dark Mode 的命令
macOS
日常使用小技巧
暂时只记录强制 Chrome 进入 Dark Mode 的命令
Chrome
日常使用小技巧
暂时只记录强制 Chrome 进入 Dark Mode 的命令
UUID
UUID1 时间戳解析
从 UUID 里反推出生成时间的最小 Python 备忘
调试
《调试九法》读书总结
把九条规则整理成一份对照清单,便于以后回看
hicc::debug::X 调试工具类
一个用来观察 RVO / 拷贝省略 / 就地构造的埋点小类
RVO
hicc::debug::X 调试工具类
一个用来观察 RVO / 拷贝省略 / 就地构造的埋点小类
Macro
C/C++ 宏定义小技巧
用 MARCO_EXPAND 解决 __VA_ARGS__ 嵌套被吞参数的问题
Trick
C/C++ 宏定义小技巧
用 MARCO_EXPAND 解决 __VA_ARGS__ 嵌套被吞参数的问题
性能分析
gperftools / tcmalloc 安装与使用要点
把版本选择、libunwind、链接方式、编译开关汇总在一处
CPU / 内存飙升 100% 排查清单
把 perf、top、strace、pstack 等常用排查命令归到一处
fd
fd 泄漏排查入口
先用 KOOM 找范围,再按需用 strace 跟打开路径
Clang
Templight 使用整理
编译期模板元编程调试的最小准备记录
Template
Templight 使用整理
编译期模板元编程调试的最小准备记录
性能
程序性能分析的五个要素
评估 API / 库性能时需要同时关注的五个维度
内存管理速查表
freelist / 大内存分配测试 / 伪共享 padding / 内存占用分析
性能与建模常用公式速查
QPS、同步/异步选型、cpu.load、逻辑斯蒂曲线
报警排查 && 性能分析的常用步骤
从"是不是单机房"到"模块互相影响"的五步排查清单
运维
报警排查 && 性能分析的常用步骤
从"是不是单机房"到"模块互相影响"的五步排查清单
Log
流量下线排查清单
从重启服务到按 logid 和时间戳追链路的最小步骤
读书笔记
《程序员修炼之道》读书笔记
前言与"务实的哲学"两章的关键摘抄
《巴菲特教你读财报》读书笔记
股票价值判断的几个抓手与几个常见弱点
《极客与团队》摘要:HRT、复盘、开会、保护团队
把书中几条易记的清单整理成可直接对照执行的版本
《调试九法》读书总结
把九条规则整理成一份对照清单,便于以后回看
方法论
编程通用思路
把"分析—建模—实现—优化"七步骤整理成清单
复杂世界中的简单规则——一次拆分容量估算
用一个幂律式的粗估,把"母子公司拆分后群数"算到八九不离十
工程问题的三大法宝
评估影响、对比定位、再不行就抄
《调试九法》读书总结
把九条规则整理成一份对照清单,便于以后回看
Ceph
Ceph 笔记占位整理
当前只保留一条文档环境准备命令
数据库
数据库迁移与冷热分表方案
停机迁移 / 双写迁移 / 千万级单表的冷热归档实践
架构
Jenkins 部署拓扑:通用逻辑、阿里云 ACK、本地 IDC
代理与负载均衡入门:VIP / L4 / L7 / Nginx 速记
Jenkins 部署 FAQ:域名 vs IP、外置 DB、任务可见性
Jenkins 平台设计:HA / 权限 / 备份 / 网络 / 合规 / LDAP
Jenkins + jk 平台部署文档总览
在本地 IDC 局域网部署 Jenkins(VM + Docker Compose)
在阿里云 ACK 上部署 Jenkins 控制器
Jenkins 上线检查清单:交付 / 安全 / 合规
数据库迁移与冷热分表方案
停机迁移 / 双写迁移 / 千万级单表的冷热归档实践
OP-TEE
OP-TEE 运行与构建笔记整理
QEMU 仿真环境部署、一键构建与 demo 快速验证脚本
QEMU
OP-TEE 运行与构建笔记整理
QEMU 仿真环境部署、一键构建与 demo 快速验证脚本
ARM
OP-TEE 运行与构建笔记整理
QEMU 仿真环境部署、一键构建与 demo 快速验证脚本
环境搭建
Ubuntu 环境搭建笔记
apt 换源(清华 / 163 / 阿里云 / 中科大)+ pip / 网络 / 工具杂记
Prometheus
Prometheus 监控常用查询片段
收藏几条 pod / 磁盘 / TCP 连接数的 PromQL
监控
Prometheus 监控常用查询片段
收藏几条 pod / 磁盘 / TCP 连接数的 PromQL
PromQL
Prometheus 监控常用查询片段
收藏几条 pod / 磁盘 / TCP 连接数的 PromQL
旅游
北京市郊区旅游攻略
一份按区收集的近郊景点清单
北京
北京市郊区旅游攻略
一份按区收集的近郊景点清单
攻略
北京市郊区旅游攻略
一份按区收集的近郊景点清单
影视
永远的赤名莉香
重看《东京爱情故事》之后写下的随笔
随笔
永远的赤名莉香
重看《东京爱情故事》之后写下的随笔
C#
C# 并发读取日志(未调通版本)
一个基于 ConcurrentBag + Parallel.ForEach 的多线程日志切分 Demo
多线程
C# 并发读取日志(未调通版本)
一个基于 ConcurrentBag + Parallel.ForEach 的多线程日志切分 Demo
日志
C# 并发读取日志(未调通版本)
一个基于 ConcurrentBag + Parallel.ForEach 的多线程日志切分 Demo
ROS2
ROS2 Navigation 中文文档环境笔记
只保留一条把 reST 转成 PDF 的依赖安装命令
Navigation
ROS2 Navigation 中文文档环境笔记
只保留一条把 reST 转成 PDF 的依赖安装命令
Documentation
ROS2 Navigation 中文文档环境笔记
只保留一条把 reST 转成 PDF 的依赖安装命令
网络
代理与负载均衡入门:VIP / L4 / L7 / Nginx 速记
mmtls 协议笔记
微信自研 mmtls 与 TLS 1.3 在握手方式 / 公钥派发 / 密钥扩展上的取舍
KCP 协议笔记
设计目的、缓存控制、丢包模拟与 TCP 单连接吞吐推导
KCP
KCP 协议笔记
设计目的、缓存控制、丢包模拟与 TCP 单连接吞吐推导
Timer
纯 C++ 写一个最小可用的 TimerThread
只用 thread / mutex / condition_variable 的简化版本与设计取舍
Linux 内核定时器学习入口
先记下从 timer.c 开始读起的位置
HHWheelTimer
Linux 内核定时器学习入口
先记下从 timer.c 开始读起的位置
mbedTLS
mmtls 协议笔记
微信自研 mmtls 与 TLS 1.3 在握手方式 / 公钥派发 / 密钥扩展上的取舍
mbedTLS / curl 配置 TLS 的踩坑记录
CIPHER_LIST、Android NDK 版本与 LTO、裁剪后的 config 同步
TLS
mmtls 协议笔记
微信自研 mmtls 与 TLS 1.3 在握手方式 / 公钥派发 / 密钥扩展上的取舍
mbedTLS / curl 配置 TLS 的踩坑记录
CIPHER_LIST、Android NDK 版本与 LTO、裁剪后的 config 同步
安全
Jenkins 上线检查清单:交付 / 安全 / 合规
mmtls 协议笔记
微信自研 mmtls 与 TLS 1.3 在握手方式 / 公钥派发 / 密钥扩展上的取舍
微信
mmtls 协议笔记
微信自研 mmtls 与 TLS 1.3 在握手方式 / 公钥派发 / 密钥扩展上的取舍
QUIC
XQUIC 笔记整理
握手流程、传输模式与简单压测结论
XQUIC
XQUIC 笔记整理
握手流程、传输模式与简单压测结论
负载均衡
代理与负载均衡入门:VIP / L4 / L7 / Nginx 速记
负载均衡相关的几点思考
滚动上线导致的不均衡,以及 TCP 长连接负载均衡的几种思路
分布式
负载均衡相关的几点思考
滚动上线导致的不均衡,以及 TCP 长连接负载均衡的几种思路
个人发展
个人发展规划
程序开发库清单 / 阅读书单 / 项目开发文档资料
学习计划
个人发展规划
程序开发库清单 / 阅读书单 / 项目开发文档资料
估算
复杂世界中的简单规则——一次拆分容量估算
用一个幂律式的粗估,把"母子公司拆分后群数"算到八九不离十
容量
复杂世界中的简单规则——一次拆分容量估算
用一个幂律式的粗估,把"母子公司拆分后群数"算到八九不离十
团队管理
《极客与团队》摘要:HRT、复盘、开会、保护团队
把书中几条易记的清单整理成可直接对照执行的版本
复盘
《极客与团队》摘要:HRT、复盘、开会、保护团队
把书中几条易记的清单整理成可直接对照执行的版本
LLM
大模型 / Coding Agent 对比收藏
常看的几个产品入口与排名网站
AI
大模型 / Coding Agent 对比收藏
常看的几个产品入口与排名网站
工作方法
什么是有效的工作汇报
从"内容 / 论证 / 表达方式"三个角度梳理汇报要点
汇报
什么是有效的工作汇报
从"内容 / 论证 / 表达方式"三个角度梳理汇报要点
沟通
什么是有效的工作汇报
从"内容 / 论证 / 表达方式"三个角度梳理汇报要点
投资
《巴菲特教你读财报》读书笔记
股票价值判断的几个抓手与几个常见弱点
财报
《巴菲特教你读财报》读书笔记
股票价值判断的几个抓手与几个常见弱点
公式
性能与建模常用公式速查
QPS、同步/异步选型、cpu.load、逻辑斯蒂曲线
软件工程
《程序员修炼之道》读书笔记
前言与"务实的哲学"两章的关键摘抄
编程
编程通用思路
把"分析—建模—实现—优化"七步骤整理成清单
A/B Test
A/B 测试样本量估算工具
只保留一个常用的在线样本量计算器链接
tcmalloc
gperftools / tcmalloc 安装与使用要点
把版本选择、libunwind、链接方式、编译开关汇总在一处
C/C++
内存管理速查表
freelist / 大内存分配测试 / 伪共享 padding / 内存占用分析
API 设计
程序性能分析的五个要素
评估 API / 库性能时需要同时关注的五个维度
脚本
Python 逐行读取文件并执行命令
把"读一行 / 跑一行 shell"的小脚本固化成模板
Python 常用代码片段速查
后台运行、读 txt、dict 初始化/打印/排序、按行执行 shell
OCR
百度 OCR 调用记录
从创建应用到获取 access token 再到发起识别请求的最小备忘
API
百度 OCR 调用记录
从创建应用到获取 access token 再到发起识别请求的最小备忘
跨平台
项目工程化规约:pre-commit 钩子 + 跨平台换行符
把 .pre-commit-config.yaml、CMake 自动安装、.gitattributes EOL 这三件事合并整理
工程化
项目工程化规约:pre-commit 钩子 + 跨平台换行符
把 .pre-commit-config.yaml、CMake 自动安装、.gitattributes EOL 这三件事合并整理
GitKraken
GitKraken 自行编译记录
只是把当时尝试 yarn install / build 时遇到的报错记下来
Node.js
GitKraken 自行编译记录
只是把当时尝试 yarn install / build 时遇到的报错记下来
yarn
GitKraken 自行编译记录
只是把当时尝试 yarn install / build 时遇到的报错记下来
Agent
Codex / Copilot Agent 使用记录
Homebrew 国内源、Copilot 模型切换报错与一份 Codex Agent Stage 2 脚手架
Copilot
Codex / Copilot Agent 使用记录
Homebrew 国内源、Copilot 模型切换报错与一份 Codex Agent Stage 2 脚手架
Codex
Codex / Copilot Agent 使用记录
Homebrew 国内源、Copilot 模型切换报错与一份 Codex Agent Stage 2 脚手架
OpenAI
Codex / Copilot Agent 使用记录
Homebrew 国内源、Copilot 模型切换报错与一份 Codex Agent Stage 2 脚手架
Shell
Graphviz 状态图脚本整理
从 C++ 状态机代码提取状态转移并导出 PNG
逆向
IDA Pro 历史版本资源记录
收藏一份从 0.1 到 8.3 的 Demo/Free/Leak 版本镜像
IDA
IDA Pro 历史版本资源记录
收藏一份从 0.1 到 8.3 的 Demo/Free/Leak 版本镜像
工具
Telegram 注册流程整理
虚拟号码、代理、隐私设置等关键步骤一次列清楚
IDA Pro 历史版本资源记录
收藏一份从 0.1 到 8.3 的 Demo/Free/Leak 版本镜像
笔记
Markdown 语法学习笔记
一份 2014 年记的入门笔记,按目录 / 文本 / 链接 / 图片 / 列表 / 代码 / 表格分块
Telegram
Telegram 注册流程整理
虚拟号码、代理、隐私设置等关键步骤一次列清楚
VSCode
VS Code 配置整理
插件清单、clangd / IWYU / lldb / Bash Debug 配置与一份个人 settings.json
clangd
VS Code 配置整理
插件清单、clangd / IWYU / lldb / Bash Debug 配置与一份个人 settings.json
lldb
VS Code 配置整理
插件清单、clangd / IWYU / lldb / Bash Debug 配置与一份个人 settings.json
PowerShell
Windows / PowerShell 常用命令速查
软链接、环境变量重载、vcpkg 安装与配置
LRU
LRU 缓存(STL list + unordered_map 演示)
用 STL 容器写一遍 LRU
LRU 缓存(哈希表 + 双向链表)
LeetCode 146 题解笔记
Cache
LRU 缓存(哈希表 + 双向链表)
LeetCode 146 题解笔记
二叉树
把二叉搜索树转换为累加树(反向中序)
剑指 Offer II 054 / LeetCode 538 题解笔记
二叉树的最低公共祖先(路径回溯法)
LeetCode 236 题解笔记
二叉树展开为单链表
LeetCode 114 题解笔记
二叉搜索树中序遍历(求最小绝对差)
LeetCode 530 题解笔记
二叉搜索树展开为有序双向循环链表
剑指 Offer II 题解 / LeetCode 426 题解笔记
BST
把二叉搜索树转换为累加树(反向中序)
剑指 Offer II 054 / LeetCode 538 题解笔记
二叉搜索树中序遍历(求最小绝对差)
LeetCode 530 题解笔记
二叉搜索树展开为有序双向循环链表
剑指 Offer II 题解 / LeetCode 426 题解笔记
中序遍历
把二叉搜索树转换为累加树(反向中序)
剑指 Offer II 054 / LeetCode 538 题解笔记
二叉搜索树中序遍历(求最小绝对差)
LeetCode 530 题解笔记
递归
二叉树展开为单链表
LeetCode 114 题解笔记
回溯
单词搜索(DFS + 回溯)
LeetCode 79 题解笔记
二叉树的最低公共祖先(路径回溯法)
LeetCode 236 题解笔记
LCA
二叉树的最低公共祖先(路径回溯法)
LeetCode 236 题解笔记
二分查找
搜索旋转排序数组
LeetCode 33 题解笔记
旋转数组中的最小值
LeetCode 153 题解笔记
爱吃香蕉的珂珂(答案二分)
LeetCode 875 题解笔记
答案二分
爱吃香蕉的珂珂(答案二分)
LeetCode 875 题解笔记
优先队列
根据字符出现频率排序
LeetCode 451 题解笔记
合并 K 个升序链表(优先队列)
LeetCode 23 题解笔记
合并 K 个升序链表(STL 演示版)
priority_queue + list iterator 的 K 路归并
堆
合并 K 个升序链表(优先队列)
LeetCode 23 题解笔记
排序
根据字符出现频率排序
LeetCode 451 题解笔记
双路快速排序
分区原理与 LeetCode 笔记
快速排序
双路快速排序
分区原理与 LeetCode 笔记
分治
双路快速排序
分区原理与 LeetCode 笔记
DFS
单词搜索(DFS + 回溯)
LeetCode 79 题解笔记
网格
单词搜索(DFS + 回溯)
LeetCode 79 题解笔记
旋转数组
搜索旋转排序数组
LeetCode 33 题解笔记
旋转数组中的最小值
LeetCode 153 题解笔记
哈希
根据字符出现频率排序
LeetCode 451 题解笔记
jenkins
Jenkins 部署拓扑:通用逻辑、阿里云 ACK、本地 IDC
代理与负载均衡入门:VIP / L4 / L7 / Nginx 速记
Jenkins 部署 FAQ:域名 vs IP、外置 DB、任务可见性
Jenkins 平台设计:HA / 权限 / 备份 / 网络 / 合规 / LDAP
Jenkins + jk 平台部署文档总览
在本地 IDC 局域网部署 Jenkins(VM + Docker Compose)
在阿里云 ACK 上部署 Jenkins 控制器
Jenkins 上线检查清单:交付 / 安全 / 合规
checklist
Jenkins 上线检查清单:交付 / 安全 / 合规
合规
Jenkins 上线检查清单:交付 / 安全 / 合规
部署
Jenkins + jk 平台部署文档总览
在本地 IDC 局域网部署 Jenkins(VM + Docker Compose)
在阿里云 ACK 上部署 Jenkins 控制器
kubernetes
在阿里云 ACK 上部署 Jenkins 控制器
阿里云
在阿里云 ACK 上部署 Jenkins 控制器
docker
在本地 IDC 局域网部署 Jenkins(VM + Docker Compose)
idc
在本地 IDC 局域网部署 Jenkins(VM + Docker Compose)
总览
Jenkins + jk 平台部署文档总览
设计
Jenkins 平台设计:HA / 权限 / 备份 / 网络 / 合规 / LDAP
HA
Jenkins 平台设计:HA / 权限 / 备份 / 网络 / 合规 / LDAP
LDAP
Jenkins 平台设计:HA / 权限 / 备份 / 网络 / 合规 / LDAP
faq
Jenkins 部署 FAQ:域名 vs IP、外置 DB、任务可见性
nginx
代理与负载均衡入门:VIP / L4 / L7 / Nginx 速记
拓扑
Jenkins 部署拓扑:通用逻辑、阿里云 ACK、本地 IDC