2024
- 2024/06/07Webflux 线程模型理解
- 2024/05/05Java Agent 入门教程
2023
- 2023/05/26Percona 线程池行为验证
- 2023/05/01TIL: 使用 einsum 进行复杂的矩阵计算
- 2023/04/16自动微分(Automatic Differentiation):实现篇
- 2023/04/15深度学习中的矩阵运算
- 2023/04/09自动微分(Automatic Differentiation):算法篇
- 2023/01/13BUG 定位:ZK 引起 HDFS 集群问题,导致 Spark 任务失败
2022
- 2022/11/27记一次 BUG 定位:时钟偏移引起 K8S 鉴权失败
- 2022/07/09去 TM 的全局最优
- 2022/06/23iptables 实用教程
- 2022/05/08Lamport 时钟与 Vector 时钟
- 2022/05/01伪共享(False Sharing)简介
- 2022/04/24MESI 协议学习笔记
- 2022/03/27异步编程(async)底层实现机制
- 2022/01/24Kubernetes Service iptables 网络通信验证
- 2022/01/23Flannel 网络通信验证
2021
- 2021/10/06Java GC 入门(不必知不必会)
- 2021/05/20我的内存呢?Linux MemAvailable 如何计算
- 2021/05/01Linux sysctl 网络相关参数
- 2021/01/31QQA: Spring Bean 如何开启懒加载
- 2021/01/25如何理解 Explicit is Better than Implicit?
- 2021/01/24Spring Bean 生命周期介绍
2020
- 2020/12/13MySQL 加锁机制验证记录
- 2020/12/12Optional 不管用的日子
- 2020/10/09Ansible 入门介绍
- 2020/06/14Deprecated. Java 并发(零)- 原子性
- 2020/05/09QQA: MySQL 竟然无法区分大小写?
- 2020/05/07Kubernetes 快速入门
- 2020/05/06声明式(declarative) vs 命令式(imperative)
- 2020/04/17事务隔离级别备忘
- 2020/04/15C3 算法:Python 多继承的内部原理
- 2020/04/12低延时场景不要用 Webflux
- 2020/04/06过早优化为什么是万恶之源?
- 2020/04/01实验:ForkJoinPool 并行度
- 2020/03/27Python fileinput 模块:命令行工具利器
- 2020/03/15评:分布式系统相关挑战
- 2020/02/21《微服务设计》
- 2020/02/16理解 OAuth 2.0 认证流程
- 2020/01/21背压(Back Pressure)与流量控制
- 2020/01/05《MySQL技术内幕:InnoDB存储引擎(第2版)》
- 2020/01/05主动健康检查要点(Ribbon 为例)
2019
- 2019/12/23Reactive Streams JVM Specification 翻译
- 2019/12/20QQA: Nginx 如何做健康检查?
- 2019/10/20Spark Window 入门介绍
- 2019/10/15聊一聊时间戳
- 2019/09/29HTTP keep-alive 二三事
- 2019/09/26复习:TCP 三次握手、四次挥手
- 2019/09/23QQA: /tmp 目录下的 spring-boot-libs 是什么
- 2019/08/31理解 Java volatile 关键字
- 2019/08/29QQA: 什么是 double checked locking
- 2019/08/21分布式系统常见同步机制
- 2019/08/10什么是顺序一致性(Sequential Consistency)
- 2019/08/03QQA: 为什么 Prometheus increase 不返回整数?
- 2019/07/31精秒的算法──最大子序列和
- 2019/07/20QQA: Zookeeper 如何保证单一视图
- 2019/06/09SSH 端口转发教程
- 2019/05/26UUID 生成器有多快?
- 2019/05/16Raft 一致性算法
- 2019/05/02《科学究竟是什么?》
- 2019/04/25QQA: 如何从远程运行的 Vim 中复制内容
- 2019/02/18Spring Security 实现 API Token 权限认证
2018
- 2018/12/12Expression Problem 随想
- 2018/11/23QQA: Spring Data 如何查询属性是否在列表中
- 2018/11/13加权随机采样 (Weighted Random Sampling)
- 2018/11/11QQA: jstat gcutil 的输出是什么意思
- 2018/10/30理解系统负载
- 2018/10/05跳表──没听过但很犀利的数据结构
- 2018/10/04最高楼层问题
- 2018/09/28Maven Profile 与 Spring Profile 管理多环境打包
- 2018/08/22性能对比:ReentrantLock vs Synchronized
- 2018/07/28QQA: Hibernate 为什么需要手工管理双向关联
- 2018/07/21HTML 5 Drag and Drop 入门教程
- 2018/07/13Kafka 入门介绍
- 2018/07/11为 vim + tmux 开启真彩色(true color)
- 2018/06/28Reactor 模式简介
- 2018/06/272^128 有多大
- 2018/04/14分享创造 rargs
- 2018/04/06Python 元类 (MetaClass) 小教程
- 2018/04/04QQA: Python 中的 str 与 repr
- 2018/04/02QQA: 为什么 java 中要写 getter/setter?
- 2018/04/01QQA: Rust 中 Send 与 Sync 有什么区别
- 2018/03/31QQA: 什么是 Servlet
- 2018/03/30QQA: 如何启用 @Autowired
- 2018/03/29WGAN 笔记
- 2018/03/29ƒ-divergence GAN 笔记
- 2018/03/13Back Propagation 笔记
- 2018/03/10逻辑回归实验
- 2018/03/05性能优化三件套
- 2018/03/02决策树 (decision tree)
- 2018/02/27核密度估计(kernel density estimation)
- 2018/02/08线段树 (区间树)
- 2018/01/29二叉索引树
- 2018/01/18Git: merge vs rebase
- 2018/01/07不要轻易使用元编程
- 2018/01/03DIP vs IoC vs DI
2017
- 2017/12/31Java Annotation Processor 小记
- 2017/11/19及时获取反馈以提升工作效率
- 2017/11/03估算:古代水稻亩产量
- 2017/09/29CSS 子元素依次收缩的实现
- 2017/09/29Python Decorator(装饰器)
- 2017/09/24Underscore.js 源码阅读
- 2017/09/04CSS position:sticky
- 2017/09/03理解 Python asyncio
- 2017/09/01评:30 多年的编码经验浓缩成的 10 条最佳实践
- 2017/08/29Python Generator
- 2017/08/02Git: Those You Don't Want to Learn by Youself
- 2017/04/30在面向对象语言中写纯函数!
- 2017/01/07简谈 Rust 中的错误处理
2016
- 2016/12/24理解 Rust 中的生命周期
- 2016/12/21《慢思考》大脑超载时代的思考学
- 2016/08/27再谈闭包
- 2016/03/21JSONP 简介
- 2016/03/17CSS 垂直居中
- 2016/02/06Let's Build a C Compiler (1) -- Design
- 2016/02/06Let's Build a C Compiler(0) -- Preface
- 2016/01/30结构的悖论
- 2016/01/23写一个 Mustache 模板引擎
- 2016/01/14Hexo 自动部署到 Github
- 2016/01/05手把手教你构建 C 语言编译器(9)- 总结
- 2016/01/04手把手教你构建 C 语言编译器(8)- 表达式
- 2016/01/04手把手教你构建 C 语言编译器(7)- 语句
- 2016/01/03手把手教你构建 C 语言编译器(6)- 函数定义
- 2016/01/03手把手教你构建 C 语言编译器(5)- 变量定义
- 2016/01/02手把手教你构建 C 语言编译器(4)- 递归下降
2015
- 2015/12/29手把手教你构建 C 语言编译器(3)- 词法分析器
- 2015/12/22手把手教你构建 C 语言编译器(2)- 虚拟机
- 2015/12/22手把手教你构建 C 语言编译器(1)- 设计
- 2015/12/22手把手教你构建 C 语言编译器(0)- 前言
- 2015/12/21Vim 小技巧——合并行块
- 2015/12/14Vim 小技巧-删除行末空格
- 2015/11/15Closure 内涵理解
- 2015/11/12Vim 最大化当前窗口
- 2015/11/03Test of Hexo