Jiajun的技术笔记
  • EN
  • 归档
  • 分享
  • 随想
  • 友链
  • 工具
    面试题库 幻灯片
  • 关于
  • 2025-05-24 - Wake on LAN 实现工作机的自动开关机
  • 2025-05-05 - KVM 穿透板载蓝牙和无线网卡
  • 2025-04-03 - CockroachDB Serverless Architecture
  • 2025-04-02 - podman 无故退出
  • 2025-03-22 - Cursor Control-L (CTRL-L) Keyboard Shortcuts in Terminal
  • 2025-03-21 - Replace docker with podman
  • 2025-03-18 - Using xmonad with xfce4
  • 2025-03-16 - A RC script for freebsd frpc
  • 2025-03-15 - BottleRocket Linux check kubelet logs
  • 2025-03-02 - Cockpit Create VM Permission Denied
  • 2025-02-16 - AWS IAM 信任链 和 EKS IRSA
  • 2025-02-16 - 自己动手写一个k8s controller
  • 2025-02-15 - AI 会取代你的(编程)岗位吗?
  • 2024-12-29 - 2024年终总结
  • 2024-11-20 - 自建DERP服务器提升Tailscale连接速度(使用Nginx转发)
  • 2024-11-07 - 自动升级Docker容器
  • 2024-09-07 - 再读《程序员修炼之道-从小工到专家》
  • 2024-09-06 - 让浏览器下载文件
  • 2024-09-06 - 再读《软件随想录》/《黑客与画家》/《软技能》
  • 2024-08-30 - HTTP 压力测试中的 Coordinated Omission
  • 2024-07-24 - 2的补码
  • 2024-07-21 - 编程语言中的 context 是什么?
  • 2024-03-20 - flutter macOS 构建出错
  • 2024-03-19 - Flatpak 使用小记
  • 2024-03-10 - Golang CAS 操作是怎么实现的
  • 2024-03-09 - PostgreSQL 当MQ来使用
  • 2024-03-08 - Clash 结合 工作VPN 的网络设计
  • 2024-03-07 - 使用 PostgreSQL 搭建 JuiceFS
  • 2024-03-05 - PostgreSQL 配置优化和日志分析
  • 2024-03-03 - 有GitHub Copilot?那就可以搭建你的ChatGPT4服务
  • 2024-03-01 - 窗口函数的使用(以PG为例)
  • 2024-01-16 - 读《为什么学生不喜欢上学》
  • 2024-01-07 - OpenAI Prompt Engineering 摘录和总结
  • 2023-12-30 - 读《打造真正的新产品》
  • 2023-12-26 - 2023年终总结
  • 2023-12-17 - VueJS 总结
  • 2023-11-29 - Linux 自动挂载 alist 提供的webdav
  • 2023-11-17 - FreeBSD 使用 vm-bhyve 安装Debian虚拟机
  • 2023-11-16 - FreeBSD 和 Linux 网卡聚合实现提速
  • 2023-11-15 - GPT 帮我搞定了时区转换问题
  • 2023-11-12 - 长任务系统如何处理?
  • 2023-11-11 - macOS/Linux 编译 InputLeap
  • 2023-11-10 - 使用开源软KVM - synergy-core
  • 2023-11-06 - 解决 macOS 终端hostname一直变化问题
  • 2023-11-05 - KVM 共享 Intel 集成显卡
  • 2023-10-17 - PromQL 备忘
  • 2023-07-09 - 读《格鲁夫给经理人的第一课》
  • 2023-07-06 - 读《打开心智》
  • 2023-02-03 - 为什么要把复杂的联表操作拆成多个单表查询?
  • 2023-01-31 - 红包系统的设计
  • 2022-12-31 - 2022年终总结
  • 2022-12-28 - MySQL Index Condition Pushdown Optimization
  • 2022-12-16 - Go mod 简明教程
  • 2022-12-04 - OpenWRT 使用 Android/iOS USB 网络
  • 2022-11-20 - 搭建旁路由
  • 2022-11-04 - Golang gRPC 错误处理
  • 2022-10-31 - 编写可维护的单元测试代码
  • 2022-10-12 - OAuth 2 详解(六):Authorization Code Flow with PKCE
  • 2022-10-11 - OAuth 2 详解(五):Device Authorization Flow
  • 2022-10-10 - OAuth 2 详解(三):Resource Owner Password Credentials Grant
  • 2022-10-10 - OAuth 2 详解(四):Client Credentials Flow
  • 2022-10-09 - OAuth 2 详解(二):Implict Grant Flow
  • 2022-10-08 - OAuth 2 详解(一):简介及 Authorization Code 模式
  • 2022-10-06 - ElasticSearch 学习笔记
  • 2022-07-28 - 三种git流程以及发版模型
  • 2022-07-27 - 错误处理实践
  • 2022-07-15 - 权限模型(RBAC/ABAC)
  • 2022-07-06 - OIDC(OpenID Connect) 简介
  • 2022-07-05 - 任务队列简介
  • 2022-04-29 - PostgreSQL 操作笔记
  • 2022-04-29 - 使用Drone CI构建CI/CD系统
  • 2022-04-28 - Golang migrate 做数据库变更管理
  • 2022-04-12 - 使用PostgreSQL做搜索引擎
  • 2022-03-23 - Nginx 源码阅读(三): 连接池、内存池
  • 2022-03-22 - Nginx 源码阅读(二): 请求处理
  • 2022-03-21 - Nginx 源码阅读(一): 启动流程
  • 2022-03-17 - Go 泛型简明教程
  • 2022-03-15 - KVM 显卡穿透给 Windows
  • 2022-03-12 - 使用 HTTP Router 处理 Telegram Bot 按钮回调
  • 2022-01-10 - 使用反射(reflect)对结构体赋值
  • 2022-01-09 - GIN 是如何绑定参数的
  • 2021-12-30 - 你好 2022(2021 年终总结)
  • 2021-12-11 - 用Go导入大型CSV到PostgreSQL
  • 2021-12-01 - 使用 OpenWRT 搭建软路由
  • 2021-11-26 - 使用软KVM切换器 barrier 共享键鼠
  • 2021-11-04 - SQL 防注入及原理
  • 2021-10-12 - 使用 gomock 测试 Go 代码
  • 2021-10-11 - gevent不是黑魔法(二): gevent 实现
  • 2021-09-29 - gevent不是黑魔法(一): greenlet 实现
  • 2021-09-06 - 用 entgo 替代 gorm
  • 2021-09-01 - 应用内使用crontab不是那么方便
  • 2021-08-27 - 单测时要不要 mock 数据库?
  • 2021-08-25 - Sentry 自建指南
  • 2021-08-19 - 用selenium完成自动化任务
  • 2021-07-09 - 用闲置的安卓手机做垃圾电话短信过滤
  • 2021-07-06 - 推荐三个时间管理工具
  • 2021-07-02 - 一次事故反思
  • 2021-06-22 - 当JS遇到uint64:JS整数溢出问题
  • 2021-06-19 - SQLite3 存储以及ACID原理
  • 2021-06-07 - Redis源码阅读:pub/sub实现
  • 2021-06-06 - Redis源码阅读:zset实现
  • 2021-05-30 - Redis源码阅读:bitmap 位图的运算
  • 2021-05-29 - Redis源码阅读:set是怎么做交并集运算的?
  • 2021-05-28 - Redis源码阅读:list实现(ziplist, quicklist)
  • 2021-05-27 - Redis源码阅读:RDB是怎么实现的
  • 2021-05-26 - Redis源码阅读:AOF重写
  • 2021-05-25 - Redis源码阅读:AOF持久化
  • 2021-05-24 - Redis源码阅读:字典是怎么实现的
  • 2021-05-24 - Redis源码阅读:key是怎么过期的
  • 2021-05-23 - Redis源码阅读:执行命令
  • 2021-05-22 - Redis源码阅读:启动过程
  • 2021-05-15 - WAL(Write-ahead logging)的套路
  • 2021-04-29 - 搞定CORS问题
  • 2021-04-15 - 如何定位程序问题所在
  • 2021-04-14 - 设计一个IM归档系统
  • 2021-04-11 - logrotate read only filesystem问题
  • 2021-03-23 - Golang GIN写单测时,愉快的使用返回值
  • 2021-03-20 - Python Queue源码分析
  • 2021-03-18 - Go里优雅的使用全局配置
  • 2021-03-15 - Golang sync.Map源码分析
  • 2021-03-11 - Android滑动时隐藏FAB
  • 2021-02-25 - Python中用tuple作为key
  • 2021-02-24 - 一些常用的算法思维
  • 2021-02-21 - 编写可维护的函数
  • 2021-02-04 - 为什么要把配置保存在仓库里?
  • 2021-01-27 - Android自动展示和关闭进度条
  • 2021-01-13 - Kotlin/Java 列表Protobuf序列化
  • 2021-01-03 - deeplink结合路由处理扩展App的能力
  • 2021-01-03 - 怎么使用ViewModel 和 RecyclerView
  • 2021-01-02 - Android手动挡MVVM
  • 2020-12-23 - 来电拦截方案
  • 2020-12-22 - 你好,2021!
  • 2020-12-19 - gRPC鉴权方案
  • 2020-12-16 - Golang里数据库migration方案
  • 2020-12-12 - Android SwipeRefreshLayout左右滑动冲突的解决
  • 2020-12-07 - Android调用gRPC的两个小工具函数
  • 2020-12-01 - Android上结合kotlin使用coroutine
  • 2020-11-26 - gRPC错误处理
  • 2020-11-13 - Java collection的结构
  • 2020-11-02 - 为啥Redis使用pipelining会更快?
  • 2020-10-24 - 通过阳台种菜实现蔬菜自由
  • 2020-10-19 - 从GORM里学习到的panic处理方式
  • 2020-10-17 - Go使用闭包简化数据库操作代码
  • 2020-10-10 - TCMalloc设计文档学习
  • 2020-09-27 - Flask和requests做一个简单的请求代理
  • 2020-09-21 - Linux常用命令(四):xargs
  • 2020-09-20 - Linux常用命令(三):watch
  • 2020-09-20 - Linux常用命令(二):htop
  • 2020-09-19 - Linux常用命令(一):netcat
  • 2020-09-16 - 结合Flask 与 marshmallow快速进行参数校验
  • 2020-09-10 - 规整数据的重要性
  • 2020-09-05 - apt安装特定包以及忽略升级某个包
  • 2020-08-26 - Goroutine是如何处理栈的?
  • 2020-08-26 - StackGuard的作用
  • 2020-08-22 - Go DiskQueue源码阅读
  • 2020-08-16 - NSQ源码分析
  • 2020-08-15 - NSQ简明教程
  • 2020-08-11 - 结合Redis与MySQL实现又快又好的数据方案
  • 2020-07-28 - 程序员的MySQL手册(五):索引优化
  • 2020-07-27 - 程序员的MySQL手册(四):索引设计
  • 2020-07-26 - 程序员的MySQL手册(三):数据库设计
  • 2020-07-25 - Linux窗口管理器下的截图
  • 2020-07-23 - Go设计模式:facade模式和观察者模式
  • 2020-07-23 - 程序员的MySQL手册(二): 监控与benchmark
  • 2020-07-21 - Go设计模式: 责任链模式
  • 2020-07-15 - 我们真的需要这么复杂的技术栈吗?
  • 2020-07-14 - Go设计模式:装饰器模式
  • 2020-07-05 - 程序员的MySQL手册(一): 安装,基本配置
  • 2020-07-04 - ElasticSearch学习笔记
  • 2020-07-02 - Go设计模式:composite模式
  • 2020-06-25 - 拯救删除ZFS之后的分区表
  • 2020-06-23 - Linux使用redshift自动调整屏幕色温
  • 2020-06-21 - Go设计模式:桥接模式和策略模式
  • 2020-06-20 - Go设计模式:单例模式、原型模式和Builder模式
  • 2020-06-15 - 操作系统也是CRUD
  • 2020-06-13 - Go设计模式:简单工厂模式
  • 2020-06-13 - 把USB设备穿透给虚拟机里的系统
  • 2020-06-12 - debug故事之:事务让生活更美好
  • 2020-06-11 - Go设计模式:模板模式
  • 2020-06-09 - Go设计模式:适配器模式
  • 2020-06-07 - Go设计模式:Iterator
  • 2020-05-30 - glusterfs 笔记
  • 2020-05-29 - 用peewee代替SQLAlchemy
  • 2020-05-23 - Go的slice工作机制
  • 2020-05-22 - Linux系统迁移记录(从HDD到SSD)
  • 2020-05-21 - Redis是如何工作的?
  • 2020-05-18 - virsh自动关闭windows虚拟机
  • 2020-05-16 - Golang sort源码阅读
  • 2020-05-15 - 分治的思维方式
  • 2020-05-13 - Debian 使用NetworkManager之后networking.service崩溃
  • 2020-05-09 - httprouter源码阅读与分析
  • 2020-05-08 - 《程序员的自我修养-装载、链接与库》笔记
  • 2020-05-05 - Golang sync.Pool源码阅读与分析
  • 2020-05-01 - MySQL操作笔记
  • 2020-04-30 - Go语言解析GBK编码的xml
  • 2020-04-28 - Golang log 源码阅读
  • 2020-04-24 - 使用Go语言实现一个异步任务框架
  • 2020-04-23 - Golang flag源码阅读及自己实现
  • 2020-04-23 - Go使用gdb调试
  • 2020-04-22 - Golang ASM简明教程
  • 2020-04-22 - Golang context源码阅读与分析
  • 2020-04-21 - Golang中的并发控制
  • 2020-04-21 - 善用闭包(closure)让Go代码更优雅
  • 2020-04-20 - Golang的可选参数实践
  • 2020-04-13 - FreeBSD ipfw使用教程
  • 2020-04-12 - Golang expvar库源码阅读
  • 2020-04-11 - Golang SQL生成库 Squirrel 教程及源码阅读
  • 2020-04-10 - Golang validator使用教程
  • 2020-04-09 - 价值编程与职业发展
  • 2020-04-09 - 使用Redis的Stream模块实现群聊功能
  • 2020-04-08 - 解决k8s cron无法读取环境变量的问题
  • 2020-03-27 - 应用内购的坑
  • 2020-03-26 - 两种常见的访问控制模型
  • 2020-03-25 - gunicorn max-requests 选项的作用
  • 2020-03-23 - Redis使用中的几点注意事项
  • 2020-03-12 - 给你的代码跑个分?pylint使用教程
  • 2020-03-11 - 一个Gunicorn worker数量引发的血案
  • 2020-03-06 - MySQL Boolean类型的坑
  • 2020-03-04 - pip freeze是魔鬼
  • 2020-03-02 - 一个feed流系统的演进
  • 2020-03-01 - Android 使用view binding
  • 2020-02-27 - 系统调用的过程
  • 2020-02-26 - MySQL charset不同导致无法使用索引的坑
  • 2020-02-19 - 微服务的缺点
  • 2020-02-14 - 远程工作一周有感
  • 2020-02-12 - Python中的并发控制
  • 2020-02-08 - KVM spice协议在高分屏上的分辨率问题
  • 2020-01-11 - 计算机中的权衡(trade-off)
  • 2020-01-10 - [声明]本站所有文章禁止转载
  • 2020-01-07 - Golang不那么蛋疼的sort
  • 2020-01-06 - Flutter给Android应用签名
  • 2020-01-01 - 使用Gitea+Drone打造自己的CI/CD系统
  • 2019-12-31 - 2019年就要结束啦!
  • 2019-12-27 - 为什么要使用gRPC?
  • 2019-12-24 - Matebook X Pro 2019安装Debian 10
  • 2019-12-22 - ArchLinux忽略某个包的升级
  • 2019-12-21 - SQLAlchemy使用主从与数据库autocommit
  • 2019-12-19 - Blackbox禁用IPv6
  • 2019-12-18 - 预防缓存击穿
  • 2019-12-18 - Go 1.13的errors挺香
  • 2019-12-16 - flutter开发体验汇报
  • 2019-12-13 - 自己封装一个好用的Dart HTTP库
  • 2019-12-11 - Flutter应用启动后检查更新
  • 2019-12-10 - Grafana Gravatar头像显示bug修复
  • 2019-12-09 - flutter中使用RESTful接口
  • 2019-12-04 - Vim YouCompleteMe使用LSP(以dart为例)
  • 2019-12-03 - flutter webview加载时显示进度
  • 2019-12-02 - SQLAlchemy快速更新或插入对象
  • 2019-11-26 - 修复Linux下curl等无法使用letsencrypt证书
  • 2019-11-24 - 欣赏一下K&R两位大神的代码
  • 2019-11-19 - MySQL的ON DUPLICATE KEY UPDATE语句
  • 2019-11-17 - 使用microk8s快速搭建k8s
  • 2019-11-15 - Python中优雅的处理文件路径
  • 2019-11-14 - Go语言MySQL时区问题
  • 2019-11-13 - 我的技术栈选型
  • 2019-11-11 - 为什么我要用Linux作为桌面?
  • 2019-11-08 - disqus获取评论时忽略query string
  • 2019-11-06 - MySQL性能优化指南
  • 2019-11-01 - 网络编程所需要熟悉的那些函数
  • 2019-10-31 - DNSCrypt简明教程
  • 2019-10-30 - SQLAlchemy简明教程
  • 2019-10-25 - 这些年,我们错过的n个亿
  • 2019-10-19 - 给Linux用户的FreeBSD快速指南
  • 2019-10-18 - 旧电脑也不能闲着:家用备份方案
  • 2019-10-15 - 将SQLite的数据迁移到MySQL
  • 2019-10-08 - Linux托管Windows虚拟机最佳实践
  • 2019-09-29 - 为什么gRPC难以推广
  • 2019-09-26 - 关于ORM的思考
  • 2019-09-25 - MySQL指定使用索引(使用索引提示)
  • 2019-09-23 - QT5使用GTK主题
  • 2019-09-23 - 搭建samba服务器
  • 2019-09-18 - ssh时自动运行tmux
  • 2019-09-14 - ufw简明教程
  • 2019-09-11 - zerotier简明教程
  • 2019-09-04 - 提取kindle笔记
  • 2019-09-02 - 一个Golang gRPC握手错误的坑
  • 2019-08-31 - Golang(Go语言)爬虫框架colly简明教程及源码阅读与分析
  • 2019-08-30 - 选择合适的技术栈
  • 2019-08-23 - Golang的template(模板引擎)简明教程
  • 2019-08-21 - 毕业三年,一路走来
  • 2019-08-18 - 代码的坏味道
  • 2019-08-05 - 消息分帧(字符串设计或协议设计)的两种形式
  • 2019-08-01 - C, Go, Python的错误处理和异常机制杂谈
  • 2019-07-29 - 好的命名是最好的文档
  • 2019-07-24 - 读《系统之美:决策者的系统思考》
  • 2019-07-20 - Linux高分屏支持
  • 2019-07-16 - GCC默认的头文件搜索路径
  • 2019-07-15 - 读《远见-如何规划职业生涯3大阶段》
  • 2019-07-13 - 后端工程师学前端(五): SASS
  • 2019-07-10 - 后端工程师学前端(四): CSS进阶(盒子模型)
  • 2019-07-06 - 读《投资中最简单的事》
  • 2019-07-04 - 后端工程师学前端(三): CSS进阶(特指度、单位和字体族)
  • 2019-07-02 - 后端工程师学前端(二): CSS基础知识(规则与选择器)
  • 2019-06-25 - Swift语法笔记
  • 2019-06-23 - 后端工程师学前端(一): HTML
  • 2019-06-23 - 读《管理的实践》
  • 2019-06-19 - frp 源码阅读与分析(二):TCP内网穿透的实现
  • 2019-06-15 - 五天不用微信 - 爽得很
  • 2019-06-11 - frp 源码阅读与分析(一):流程和概念
  • 2019-06-10 - 学习frp源码之简洁的在两个connection之间转发流量
  • 2019-06-09 - 自己动手写一个反向代理
  • 2019-06-08 - 读《债务危机》
  • 2019-06-08 - 从XMonad迁移到i3
  • 2019-06-06 - socks5 协议详解
  • 2019-06-06 - 服务器IP被ban学到的经验
  • 2019-06-04 - 开启HSTS(HTTP Strict Transport Security)
  • 2019-06-01 - 网络乞讨之合并支付宝和微信的收款二维码
  • 2019-06-01 - 从Chrome切换到Firefox
  • 2019-05-31 - nomad简明教程
  • 2019-05-31 - Linux下当笔记本合上盖子之后只使用扩展显示器
  • 2019-05-30 - Ubuntu 18.04 dhcp更换新IP
  • 2019-05-29 - Python中的新式类(new style class)和老式类(old style class)
  • 2019-05-18 - Python Requests 简明教程
  • 2019-05-15 - 密码技术简明教程(三):证书和TLS
  • 2019-05-14 - 密码技术简明教程(二):散列、消息认证码和数字签名
  • 2019-05-14 - SEO学习笔记
  • 2019-05-12 - 密码技术简明教程(一):对称加密和非对称加密
  • 2019-05-10 - Kubernetes 笔记
  • 2019-05-09 - go mod 和 logrus 路径大小写的问题
  • 2019-05-08 - Flask自动加载Blueprint
  • 2019-05-07 - 在KVM里安装Minikube
  • 2019-04-29 - 搞定面试中的系统设计题
  • 2019-04-25 - Crontab + Sendmail实现定时任务并且通知
  • 2019-04-23 - Nginx设置Referer来防止盗图
  • 2019-04-20 - Graphviz dot简明教程
  • 2019-04-19 - jQuery简明教程
  • 2019-04-18 - Python RQ(Redis Queue)添加gevent支持
  • 2019-04-17 - 读《超级运营术》- 如何做社区?
  • 2019-04-17 - 技术人,光有技术是不行的
  • 2019-04-06 - 搭建aria2服务器
  • 2019-04-06 - 使用shairport-sync搭建airplay音频服务器
  • 2019-04-05 - VirtManager Windows自适应屏幕
  • 2019-04-03 - 使用btrfs组建RAID1
  • 2019-04-01 - Swagger? 不好用
  • 2019-03-29 - Golang/Python最佳实践
  • 2019-03-24 - 读《毛泽东选集》
  • 2019-03-19 - GORM源码阅读与分析
  • 2019-03-16 - 随想
  • 2019-03-15 - Golang中的错误处理
  • 2019-03-14 - Golang 的槽点
  • 2019-03-12 - 一个想当然的bug
  • 2019-03-06 - 读《稀缺》
  • 2019-03-03 - 读《影响力》
  • 2019-03-01 - 读《自控力》
  • 2019-02-27 - Containerd简明教程
  • 2019-02-26 - 软件设计套路之推拉模式
  • 2019-01-30 - 记一次Golang TLS编程踩坑
  • 2019-01-13 - 杂谈
  • 2019-01-12 - 使用autossh实现内网穿透
  • 2019-01-07 - Linux线程内存模型
  • 2019-01-03 - 关闭手机通知,修复碎片化的生活
  • 2019-01-01 - Linux下系统调用的过程
  • 2018-12-27 - Redis 5.0 Stream简明教程
  • 2018-12-27 - 耍耍OverlayFS
  • 2018-12-26 - 删除分区表
  • 2018-12-24 - Docker组件介绍(二):shim, docker-init和docker-proxy
  • 2018-12-24 - YouCompleteMe ycmd server SHUTDOWN 和 pyenv的问题
  • 2018-12-22 - Docker组件介绍(一):runc和containerd
  • 2018-12-16 - Prometheus MySQL Exporter源码阅读与分析
  • 2018-12-13 - MySQL性能指标
  • 2018-12-12 - 使用Dropbox来备份服务器文件
  • 2018-12-10 - 《计算机网络-系统方法》读书笔记
  • 2018-12-08 - Y Combinator《如何创业》笔记
  • 2018-12-01 - Go类型嵌套
  • 2018-11-28 - etcd源码阅读与分析(五):mvcc
  • 2018-11-27 - etcd源码阅读与分析(四):lease
  • 2018-11-26 - 干了这碗叔本华牌毒鸡汤 --- 《人生的智慧》
  • 2018-11-24 - etcd源码阅读与分析(三):wal
  • 2018-11-24 - Memory leak in net/http
  • 2018-11-22 - etcd源码阅读与分析(二):raft
  • 2018-11-20 - etcd源码阅读与分析(一):raftexample
  • 2018-11-18 - 虚拟机里的Ubuntu sudo时卡住
  • 2018-11-16 - Go访问私有变量
  • 2018-11-16 - Raft论文阅读笔记
  • 2018-11-15 - 避免全局变量
  • 2018-11-13 - Go的unsafe包
  • 2018-11-12 - Golang中实现禁止拷贝
  • 2018-11-11 - 人生如戏,全靠演技 -- 《日常生活中的自我呈现》读后感
  • 2018-11-10 - Golang的反射
  • 2018-11-10 - 数据库事务
  • 2018-11-09 - 把网站去掉CSS之后
  • 2018-11-07 - 处理并发的方式
  • 2018-11-02 - 常见的索引方式
  • 2018-11-01 - Golang 实践经验
  • 2018-10-23 - 高性能MySQL笔记第一章
  • 2018-10-21 - 面试的一些技巧
  • 2018-10-13 - HTTP/2 简介
  • 2018-09-24 - 独立运营博客一年的一些数据分享
  • 2018-09-22 - To B(usiness) 和 To C(ustomer)
  • 2018-09-16 - Cookie 中的secure和httponly属性
  • 2018-09-16 - 常见的软件架构套路
  • 2018-09-10 - Google Ads使用体验
  • 2018-09-07 - Go的custom import path
  • 2018-09-06 - 如何挖掘二级子域名?
  • 2018-09-03 - Go Module 简明教程
  • 2018-09-02 - 写了一个Telegram Bot:自动化分享高质量内容
  • 2018-09-01 - ArchLinux 怎么降级 package ?
  • 2018-09-01 - Vim打开很慢,怎么找出最慢的插件?怎么解决?
  • 2018-08-29 - Web后端工程师进阶指南(2018)
  • 2018-08-28 - How to implement fork syscall in Golang?
  • 2018-08-28 - macOS ansible 遇到 rsync: --chown=www-data: unknown option
  • 2018-08-26 - 关于运营的思考-运营要怎么做?
  • 2018-08-24 - Python中实现单例模式的n种方式和原理
  • 2018-08-23 - Golang defer中修改返回值
  • 2018-08-12 - Python dataclass 源码阅读与分析
  • 2018-08-08 - gRPC-gateway 源码阅读与分析
  • 2018-08-04 - 如何阅读源代码
  • 2018-07-22 - 我心目中的配置中心应该怎么做?
  • 2018-07-18 - 设计一个HTTP网关
  • 2018-07-08 - 设计一个分布式块存储
  • 2018-06-24 - Linux低电量自动关机
  • 2018-06-15 - CGO简明教程
  • 2018-05-22 - 求值策略:Applicative Order vs Normal Order
  • 2018-05-17 - High Performance MySQL阅读笔记
  • 2018-05-15 - MySQL EXPLAIN中的filesort是什么?
  • 2018-05-13 - 数据库索引设计与优化
  • 2018-05-08 - 如何调试?
  • 2018-04-14 - Docker CE 18.03源码阅读与分析
  • 2018-04-12 - 容器时代的日志处理
  • 2018-04-10 - Golang和Thrift
  • 2018-04-05 - 折腾Kubernetes
  • 2018-04-03 - 协程(coroutine)简介 - 什么是协程?
  • 2018-03-29 - goroutine 切换的时候发生了什么?
  • 2018-03-19 - Prometheus 数据类型
  • 2018-03-16 - Gin源码阅读与分析
  • 2018-03-10 - 如何面试-作为面试官得到的经验
  • 2018-03-09 - 自己写一个容器
  • 2018-03-08 - Golang(Go语言)中实现典型的fork调用
  • 2018-02-26 - 软件开发之禅---大事化小,各个击破
  • 2018-02-25 - 程序员的自我修养:链接,装载与库 阅读笔记
  • 2018-02-24 - Redis源码阅读与分析二:双链表
  • 2018-02-24 - Redis源码阅读与分析三:哈希表
  • 2018-02-24 - Redis源码阅读与分析一:sds
  • 2018-02-02 - Golang runtime 源码阅读与分析
  • 2018-01-31 - Golang的一些坑
  • 2018-01-30 - GC 垃圾回收
  • 2018-01-28 - 设计一个路由
  • 2018-01-22 - Go语言性能优化实战
  • 2018-01-14 - 那些年开发的时候踩过的坑
  • 2018-01-08 - (关系型)数据库优化总结
  • 2018-01-04 - 动态规划民科教程
  • 2017-12-30 - Golang 分布式异步任务队列 Machinery 教程
  • 2017-12-27 - 使用geohash完成地理距离计算
  • 2017-12-20 - 2018年就要到了,这一年都做了什么呢?
  • 2017-12-02 - 算法导论阅读笔记 --- 排序算法
  • 2017-11-29 - Git HTTPS 如何保存密码
  • 2017-11-29 - 短链系统的实现
  • 2017-11-13 - 程序员修炼之道 阅读笔记
  • 2017-11-04 - Python开发实践经验
  • 2017-10-25 - Golang实现平滑重启(优雅重启)
  • 2017-10-24 - traefik 教程
  • 2017-10-19 - Web开发系列(十):事务和锁
  • 2017-10-19 - Web开发系列(十一):数据库扩展
  • 2017-10-19 - Nginx作为TCP/UDP的负载均衡
  • 2017-10-19 - Web开发简介系列
  • 2017-10-19 - Web开发系列(九):消息队列,异步任务
  • 2017-10-18 - Nginx 请求匹配规则
  • 2017-10-18 - Web开发系列(六):关系型数据库,ORM
  • 2017-10-18 - Web开发系列(七):缓存,CDN
  • 2017-10-18 - Web开发系列(八):单点故障,负载均衡
  • 2017-10-17 - Web开发系列(五):form, json, xml
  • 2017-10-16 - Web开发系列(四):Flask, Tornado和WSGI
  • 2017-10-15 - Web开发系列(三):什么是HTML,CSS,JS?
  • 2017-10-14 - Web开发系列(二):HTTP协议
  • 2017-10-13 - Web开发系列(一):从输入网址到最后,这个过程经历了什么?
  • 2017-10-11 - SNI: 让Nginx在一个IP上使用多个证书
  • 2017-09-27 - Haskell: infixl, infixr, infix
  • 2017-09-26 - Haskell简明教程(五):处理JSON
  • 2017-09-25 - Haskell简明教程(四):Monoid, Applicative, Monad
  • 2017-09-22 - HTTPS 的详细流程
  • 2017-09-21 - OAuth2 为什么需要 Authorization Code?
  • 2017-09-20 - 任务队列怎么写?python rq源码阅读与分析
  • 2017-09-19 - XMonad 配置教程
  • 2017-09-18 - Haskell简明教程(三):Haskell语法
  • 2017-09-17 - Haskell简明教程(二):从命令式语言进行抽象
  • 2017-09-11 - Haskell简明教程(一):从递归说起
  • 2017-09-03 - 2017年必装的VIM插件推荐
  • 2017-09-02 - TCP/IP简明教程 - 从零构建TCP/IP协议(二)连接,断开与拥塞控制
  • 2017-08-12 - TCP/IP简明教程 - 从零构建TCP/IP协议(这次叫PCT协议)
  • 2017-08-09 - Lua Manual 阅读笔记
  • 2017-07-27 - Golang Map 源码阅读与分析
  • 2017-07-26 - MySQL 零碎知识 - MySQL必知必会
  • 2017-07-18 - Golang slice 源码阅读与分析
  • 2017-07-15 - 经典好书推荐(2017)
  • 2017-07-11 - Golang log库 源码阅读与分析
  • 2017-07-02 - 毕业后一年
  • 2017-06-22 - ansible 简明教程
  • 2017-06-02 - 自己写个搜索引擎
  • 2017-05-24 - HTTP 路由的两种常见设计形式
  • 2017-05-12 - Golang的short variable declaration
  • 2017-04-26 - Greenlet和Stackless Python
  • 2017-04-25 - 写一个简单的ORM
  • 2017-04-19 - 从源码看Python的descriptor
  • 2017-04-16 - Python字符串格式化
  • 2017-04-08 - Gunicorn 简明教程
  • 2017-03-29 - Raft 论文阅读笔记
  • 2017-03-06 - 什么是 Golang Comparable Types
  • 2017-03-02 - GFS 论文阅读
  • 2017-03-02 - MapReduce 论文阅读
  • 2017-02-24 - 一起来做贼:Goroutine原理和Work stealing
  • 2017-02-15 - Go语言的defer, panic和recover
  • 2017-01-24 - 再读vim help:vim小技巧
  • 2017-01-24 - 再读 Python Language Reference
  • 2017-01-22 - 设计模式(2)- 深入浅出设计模式 阅读笔记
  • 2017-01-21 - 设计模式(1)- 深入浅出设计模式 阅读笔记
  • 2017-01-15 - Cython! Python和C两个世界的交叉点
  • 2017-01-09 - socketserver 源码阅读与分析
  • 2017-01-08 - functools 源码阅读与分析
  • 2017-01-07 - contextlib代码阅读
  • 2017-01-06 - Collections 源码阅读与分析
  • 2017-01-06 - Redis通信协议阅读
  • 2016-12-31 - 2016年就要结束了,2017年就要开始啦!
  • 2016-12-29 - unittest 源代码阅读
  • 2016-12-26 - APUEv3 - 重读笔记
  • 2016-12-22 - Mock源码阅读与分析
  • 2016-12-16 - Thinking in Python
  • 2016-12-15 - 我的代码进CPython标准库啦
  • 2016-12-09 - Python零碎小知识
  • 2016-12-07 - Python和单元测试
  • 2016-12-07 - 工作一年的总结
  • 2016-12-06 - Python 的继承
  • 2016-12-06 - MongoDB 的一些坑
  • 2016-11-29 - Python的yield关键字有什么作用?
  • 2016-11-27 - 借助coroutine用同步的语法写异步
  • 2016-11-21 - Python3函数参数中的星号
  • 2016-11-08 - 使用Git Hooks
  • 2016-11-05 - Token Bucket 算法
  • 2016-11-03 - nginx配置笔记
  • 2016-09-15 - 阅读Flask源码
  • 2016-08-25 - 尤克里里
  • 2016-06-20 - 学习使用Bootstrap4的栅格系统
  • 2016-06-19 - 利用Github的WebHook完成自动部署
  • 2016-06-18 - 使用Tornado和rst来写博客
  • 2016-06-05 - Haskell do notation
  • 2016-05-22 - foldl 和 foldr 的变换
  • 2016-05-05 - Haskell TypeClass 笔记
  • 2016-04-03 - 重新捡起你那吃灰的树莓派
  • 2016-03-14 - Tornado 源码阅读
  • 2016-03-06 - JavaScript权威指南笔记
  • 2016-03-05 - Python零碎知识汇总
  • 2016-02-06 - C语言的位操作
  • 2016-01-25 - 分治
  • 2015-12-05 - 关于python的decorator和descriptor
  • 2015-10-09 - 程序设计实践笔记
  • 2015-09-05 - Thinking Recursively
  • 2015-06-22 - Block I/O
  • 2015-03-17 - 如何解读c的声明
  • 2015-01-11 - 关于输入法的猜想
  • 2014-12-12 - C语言与抽象思维
  • 2014-11-04 - C注意事项
  • 2014-09-09 - C语言中点操作符(.)和箭头操作符(->)的不同之处
  • 2014-09-07 - 征服C指针笔记 - 数组和指针的微妙关系
  • 2014-08-22 - 关于文件权限的摘记
  • 2014-06-17 - 用crontab完成自动化
  • DigitalOcean Referral Badge
  • 邮件 订阅
  • RSS 订阅
  • Web开发简介系列
  • 数据结构的实际使用
  • Golang 简明教程
  • Python 教程

@jiajunhuang 2015-2024, All Rights Reserved。本站禁止转载,引用请注明作者与原链。