Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jiajunhuang/blog
Jiajun的编程随想
https://github.com/jiajunhuang/blog
blog golang goroutine haskell mysql nginx programming python redis vim
Last synced: about 1 month ago
JSON representation
Jiajun的编程随想
- Host: GitHub
- URL: https://github.com/jiajunhuang/blog
- Owner: jiajunhuang
- Created: 2014-09-21T11:42:20.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2024-11-07T00:48:26.000Z (about 2 months ago)
- Last Synced: 2024-11-15T03:45:59.870Z (about 1 month ago)
- Topics: blog, golang, goroutine, haskell, mysql, nginx, programming, python, redis, vim
- Language: Go
- Homepage: https://jiajunhuang.com
- Size: 24.4 MB
- Stars: 595
- Watchers: 56
- Forks: 67
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Jiajun's Blog
会当凌绝顶,一览众山小。
- [关于我](https://jiajunhuang.com/aboutme)
- 欢迎订阅Telegram Channel:分享后端相关的精选文章
https://t.me/jiajunhuangcom
## 目录
- 2024/07/24 - [2的补码](https://jiajunhuang.com/articles/2024_07_24-twos_complement.md.html)
- 2024/07/21 - [编程语言中的 context 是什么?](https://jiajunhuang.com/articles/2024_07_21-context.md.html)
- 2024/03/20 - [flutter macOS 构建出错](https://jiajunhuang.com/articles/2024_03_20-flutter_macos.md.html)
- 2024/03/19 - [Flatpak 使用小记](https://jiajunhuang.com/articles/2024_03_19-flatpak.md.html)
- 2024/03/10 - [Golang CAS 操作是怎么实现的](https://jiajunhuang.com/articles/2024_03_10-golang_cas.md.html)
- 2024/03/09 - [PostgreSQL 当MQ来使用](https://jiajunhuang.com/articles/2024_03_09-postgresql_as_mq.md.html)
- 2024/03/08 - [Clash 结合 工作VPN 的网络设计](https://jiajunhuang.com/articles/2024_03_08-clash_vpn.md.html)
- 2024/03/07 - [使用 PostgreSQL 搭建 JuiceFS](https://jiajunhuang.com/articles/2024_03_07-juicefs_postgresql.md.html)
- 2024/03/05 - [PostgreSQL 配置优化和日志分析](https://jiajunhuang.com/articles/2024_03_05-postgresql_conf.md.html)
- 2024/03/03 - [有GitHub Copilot?那就可以搭建你的ChatGPT4服务](https://jiajunhuang.com/articles/2024_03_03-copilot_as_gpt4.md.html)
- 2024/03/01 - [窗口函数的使用(以PG为例)](https://jiajunhuang.com/articles/2024_03_01-pg_window_function.md.html)
- 2024/01/16 - [读《为什么学生不喜欢上学》](https://jiajunhuang.com/articles/2024_01_16-why_dont_students_like_school.md.html)
- 2024/01/07 - [OpenAI Prompt Engineering 摘录和总结](https://jiajunhuang.com/articles/2024_01_07-openai_prompt_engineering.md.html)
- 2023/12/30 - [读《打造真正的新产品》](https://jiajunhuang.com/articles/2023_12_30-something_really_new.md.html)
- 2023/12/26 - [2023年终总结](https://jiajunhuang.com/articles/2023_12_26-good_bye_2023.md.html)
- 2023/12/17 - [VueJS 总结](https://jiajunhuang.com/articles/2023_12_17-vue3.md.html)
- 2023/11/29 - [Linux 自动挂载 alist 提供的webdav](https://jiajunhuang.com/articles/2023_11_29-alist_webdav.md.html)
- 2023/11/17 - [FreeBSD 使用 vm-bhyve 安装Debian虚拟机](https://jiajunhuang.com/articles/2023_11_17-freebsd_vm_bhyve.md.html)
- 2023/11/16 - [FreeBSD 和 Linux 网卡聚合实现提速](https://jiajunhuang.com/articles/2023_11_16-freebsd_linux_link_aggr.md.html)
- 2023/11/15 - [GPT 帮我搞定了时区转换问题](https://jiajunhuang.com/articles/2023_11_15-python_datetime_with_timezone.md.html)
- 2023/11/12 - [长任务系统如何处理?](https://jiajunhuang.com/articles/2023_11_12-long_running_task.md.html)
- 2023/11/11 - [macOS/Linux 编译 InputLeap](https://jiajunhuang.com/articles/2023_11_11-input_leap.md.html)
- 2023/11/10 - [使用开源软KVM - synergy-core](https://jiajunhuang.com/articles/2023_11_10-synergy_core.md.html)
- 2023/11/06 - [解决 macOS 终端hostname一直变化问题](https://jiajunhuang.com/articles/2023_11_06-mac_keep_hostname.md.html)
- 2023/11/05 - [KVM 共享 Intel 集成显卡](https://jiajunhuang.com/articles/2023_11_05-kvm_windows_intel_gpu.md.html)
- 2023/10/17 - [PromQL 备忘](https://jiajunhuang.com/articles/2023_10_17-prometheus_promql.md.html)
- 2023/07/09 - [读《格鲁夫给经理人的第一课》](https://jiajunhuang.com/articles/2023_07_09-high_output_management.md.html)
- 2023/07/06 - [读《打开心智》](https://jiajunhuang.com/articles/2023_07_06-free_your_mind.md.html)
- 2023/02/03 - [为什么要把复杂的联表操作拆成多个单表查询?](https://jiajunhuang.com/articles/2023_02_03-mysql.md.html)
- 2023/01/31 - [红包系统的设计](https://jiajunhuang.com/articles/2023_01_31-red_envelope.md.html)
- 2022/12/31 - [2022年终总结](https://jiajunhuang.com/articles/2022_12_31-hello_2023.md.html)
- 2022/12/28 - [MySQL Index Condition Pushdown Optimization](https://jiajunhuang.com/articles/2022_12_28-index_condition_pushdown_optimization.md.html)
- 2022/12/16 - [Go mod 简明教程](https://jiajunhuang.com/articles/2022_12_16-go_mod.md.html)
- 2022/12/04 - [OpenWRT 使用 Android/iOS USB 网络](https://jiajunhuang.com/articles/2022_12_04-openwrt_usb.md.html)
- 2022/11/20 - [搭建旁路由](https://jiajunhuang.com/articles/2022_11_20-router.md.html)
- 2022/11/04 - [Golang gRPC 错误处理](https://jiajunhuang.com/articles/2022_11_04-grpc_error_handling.md.html)
- 2022/10/31 - [编写可维护的单元测试代码](https://jiajunhuang.com/articles/2022_10_31-goconvey.md.html)
- 2022/10/12 - [OAuth 2 详解(六):Authorization Code Flow with PKCE](https://jiajunhuang.com/articles/2022_10_12-oauth2_explained_authorization_code_pkce.md.html)
- 2022/10/11 - [OAuth 2 详解(五):Device Authorization Flow](https://jiajunhuang.com/articles/2022_10_11-oauth2_explained_device_code.md.html)
- 2022/10/10 - [OAuth 2 详解(三):Resource Owner Password Credentials Grant](https://jiajunhuang.com/articles/2022_10_10-oauth2_explained_password.md.html)
- 2022/10/10 - [OAuth 2 详解(四):Client Credentials Flow](https://jiajunhuang.com/articles/2022_10_10-oauth2_explained_client_credentials.md.html)
- 2022/10/09 - [OAuth 2 详解(二):Implict Grant Flow](https://jiajunhuang.com/articles/2022_10_09-oauth2_explained_implict_grant.md.html)
- 2022/10/08 - [OAuth 2 详解(一):简介及 Authorization Code 模式](https://jiajunhuang.com/articles/2022_10_08-oauth2_explained.md.html)
- 2022/10/06 - [ElasticSearch 学习笔记](https://jiajunhuang.com/articles/2022_10_06-elasticsearch.md.html)
- 2022/07/28 - [三种git流程以及发版模型](https://jiajunhuang.com/articles/2022_07_28-git_flows.md.html)
- 2022/07/27 - [错误处理实践](https://jiajunhuang.com/articles/2022_07_27-how_to_return_error.md.html)
- 2022/07/15 - [权限模型(RBAC/ABAC)](https://jiajunhuang.com/articles/2022_07_15-access_control.md.html)
- 2022/07/06 - [OIDC(OpenID Connect) 简介](https://jiajunhuang.com/articles/2022_07_06-openid_connect.md.html)
- 2022/07/05 - [任务队列简介](https://jiajunhuang.com/articles/2022_07_05-task_queue.md.html)
- 2022/04/29 - [PostgreSQL 操作笔记](https://jiajunhuang.com/articles/2022_04_29-postgres_notes.md.html)
- 2022/04/29 - [使用Drone CI构建CI/CD系统](https://jiajunhuang.com/articles/2022_04_29-drone_ci.md.html)
- 2022/04/28 - [Golang migrate 做数据库变更管理](https://jiajunhuang.com/articles/2022_04_28-golang_migrate_iofs.md.html)
- 2022/04/12 - [使用PostgreSQL做搜索引擎](https://jiajunhuang.com/articles/2022_04_12-postgresql_fulltext_search.md.html)
- 2022/03/23 - [Nginx 源码阅读(三): 连接池、内存池](https://jiajunhuang.com/articles/2022_03_23-nginx_source_code_3.md.html)
- 2022/03/22 - [Nginx 源码阅读(二): 请求处理](https://jiajunhuang.com/articles/2022_03_22-nginx_source_code_2.md.html)
- 2022/03/21 - [Nginx 源码阅读(一): 启动流程](https://jiajunhuang.com/articles/2022_03_21-nginx_source_code_1.md.html)
- 2022/03/17 - [Go 泛型简明教程](https://jiajunhuang.com/articles/2022_03_17-go_generics.md.html)
- 2022/03/15 - [KVM 显卡穿透给 Windows](https://jiajunhuang.com/articles/2022_03_15-kvm_windows_gpu_passthrough.md.html)
- 2022/03/12 - [使用 HTTP Router 处理 Telegram Bot 按钮回调](https://jiajunhuang.com/articles/2022_03_12-tgbot_httprouter.md.html)
- 2022/01/10 - [使用反射(reflect)对结构体赋值](https://jiajunhuang.com/articles/2022_01_10-reflect_binding_args.md.html)
- 2022/01/09 - [GIN 是如何绑定参数的](https://jiajunhuang.com/articles/2022_01_09-gin_binding_args.md.html)
- 2021/12/30 - [你好 2022(2021 年终总结)](https://jiajunhuang.com/articles/2021_12_30-hello_2022.md.html)
- 2021/12/11 - [用Go导入大型CSV到PostgreSQL](https://jiajunhuang.com/articles/2021_12_11-go_copy_large_file_to_pg.md.html)
- 2021/12/01 - [使用 OpenWRT 搭建软路由](https://jiajunhuang.com/articles/2021_12_01-openwrt.md.html)
- 2021/11/26 - [使用软KVM切换器 barrier 共享键鼠](https://jiajunhuang.com/articles/2021_11_26-use_barrier.md.html)
- 2021/11/04 - [SQL 防注入及原理](https://jiajunhuang.com/articles/2021_11_04-sql_injection.md.html)
- 2021/10/12 - [使用 gomock 测试 Go 代码](https://jiajunhuang.com/articles/2021_10_12-go_mock.md.html)
- 2021/10/11 - [gevent不是黑魔法(二): gevent 实现](https://jiajunhuang.com/articles/2021_10_11-gevent_is_good_part2.md.html)
- 2021/09/29 - [gevent不是黑魔法(一): greenlet 实现](https://jiajunhuang.com/articles/2021_09_29-gevent_is_good_part1.md.html)
- 2021/09/06 - [用 entgo 替代 gorm](https://jiajunhuang.com/articles/2021_09_06-use_entgo.md.html)
- 2021/09/01 - [应用内使用crontab不是那么方便](https://jiajunhuang.com/articles/2021_09_01-cron_is_not_convenient.md.html)
- 2021/08/27 - [单测时要不要 mock 数据库?](https://jiajunhuang.com/articles/2021_08_27-mock_db_or_not.md.html)
- 2021/08/25 - [Sentry 自建指南](https://jiajunhuang.com/articles/2021_08_25-use_sentry.md.html)
- 2021/08/19 - [用selenium完成自动化任务](https://jiajunhuang.com/articles/2021_08_19-selenium.md.html)
- 2021/07/09 - [用闲置的安卓手机做垃圾电话短信过滤](https://jiajunhuang.com/articles/2021_07_09-filter_your_call_and_sms.md.html)
- 2021/07/06 - [推荐三个时间管理工具](https://jiajunhuang.com/articles/2021_07_06-manage_your_time.md.html)
- 2021/07/02 - [一次事故反思](https://jiajunhuang.com/articles/2021_07_02-reflection_on_bug.md.html)
- 2021/06/22 - [当JS遇到uint64:JS整数溢出问题](https://jiajunhuang.com/articles/2021_06_22-json_int_precision.md.html)
- 2021/06/19 - [SQLite3 存储以及ACID原理](https://jiajunhuang.com/articles/2021_06_19-sqlite3.md.html)
- 2021/06/07 - [Redis源码阅读:pub/sub实现](https://jiajunhuang.com/articles/2021_06_07-redis_source_code_12.md.html)
- 2021/06/06 - [Redis源码阅读:zset实现](https://jiajunhuang.com/articles/2021_06_06-redis_source_code_11.md.html)
- 2021/05/30 - [Redis源码阅读:bitmap 位图的运算](https://jiajunhuang.com/articles/2021_05_30-redis_source_code_10.md.html)
- 2021/05/29 - [Redis源码阅读:set是怎么做交并集运算的?](https://jiajunhuang.com/articles/2021_05_29-redis_source_code_9.md.html)
- 2021/05/28 - [Redis源码阅读:list实现(ziplist, quicklist)](https://jiajunhuang.com/articles/2021_05_28-redis_source_code_8.md.html)
- 2021/05/27 - [Redis源码阅读:RDB是怎么实现的](https://jiajunhuang.com/articles/2021_05_27-redis_source_code_7.md.html)
- 2021/05/26 - [Redis源码阅读:AOF重写](https://jiajunhuang.com/articles/2021_05_26-redis_source_code_6.md.html)
- 2021/05/25 - [Redis源码阅读:AOF持久化](https://jiajunhuang.com/articles/2021_05_25-redis_source_code_5.md.html)
- 2021/05/24 - [Redis源码阅读:key是怎么过期的](https://jiajunhuang.com/articles/2021_05_24-redis_source_code_4.md.html)
- 2021/05/24 - [Redis源码阅读:字典是怎么实现的](https://jiajunhuang.com/articles/2021_05_24-redis_source_code_3.md.html)
- 2021/05/23 - [Redis源码阅读:执行命令](https://jiajunhuang.com/articles/2021_05_23-redis_source_code_2.md.html)
- 2021/05/22 - [Redis源码阅读:启动过程](https://jiajunhuang.com/articles/2021_05_22-redis_source_code_1.md.html)
- 2021/05/15 - [WAL(Write-ahead logging)的套路](https://jiajunhuang.com/articles/2021_05_15-wal.md.html)
- 2021/04/29 - [搞定CORS问题](https://jiajunhuang.com/articles/2021_04_29-cors.md.html)
- 2021/04/15 - [如何定位程序问题所在](https://jiajunhuang.com/articles/2021_04_15-how_to_debug_program.md.html)
- 2021/04/14 - [设计一个IM归档系统](https://jiajunhuang.com/articles/2021_04_14-system_design_archive.md.html)
- 2021/04/11 - [logrotate read only filesystem问题](https://jiajunhuang.com/articles/2021_04_11-logrotate_read_only_filesystem.md.html)
- 2021/03/23 - [Golang GIN写单测时,愉快的使用返回值](https://jiajunhuang.com/articles/2021_03_23-go_gin_unittest.md.html)
- 2021/03/20 - [Python Queue源码分析](https://jiajunhuang.com/articles/2021_03_20-python_queue.md.html)
- 2021/03/18 - [Go里优雅的使用全局配置](https://jiajunhuang.com/articles/2021_03_18-go_config.md.html)
- 2021/03/15 - [Golang sync.Map源码分析](https://jiajunhuang.com/articles/2021_03_15-go_sync_map.md.html)
- 2021/03/11 - [Android滑动时隐藏FAB](https://jiajunhuang.com/articles/2021_03_11-android_fab_hide.md.html)
- 2021/02/25 - [Python中用tuple作为key](https://jiajunhuang.com/articles/2021_02_25-python_dict_tuple_as_key.md.html)
- 2021/02/24 - [一些常用的算法思维](https://jiajunhuang.com/articles/2021_02_24-use_algorithms_in_life.md.html)
- 2021/02/21 - [编写可维护的函数](https://jiajunhuang.com/articles/2021_02_21-maintainable_function.md.html)
- 2021/02/04 - [为什么要把配置保存在仓库里?](https://jiajunhuang.com/articles/2021_02_04-why_save_config_to_repo.md.html)
- 2021/01/27 - [Android自动展示和关闭进度条](https://jiajunhuang.com/articles/2021_01_27-android_progress_bar.md.html)
- 2021/01/13 - [Kotlin/Java 列表Protobuf序列化](https://jiajunhuang.com/articles/2021_01_13-kotlin_protobuf_serialization.md.html)
- 2021/01/03 - [怎么使用ViewModel 和 RecyclerView](https://jiajunhuang.com/articles/2021_01_03-recycler_list_view_model.md.html)
- 2021/01/03 - [deeplink结合路由处理扩展App的能力](https://jiajunhuang.com/articles/2021_01_03-deeplink_server_route.md.html)
- 2021/01/02 - [Android手动挡MVVM](https://jiajunhuang.com/articles/2021_01_02-android_mvvm.md.html)
- 2020/12/23 - [来电拦截方案](https://jiajunhuang.com/articles/2020_12_23-call_screening.md.html)
- 2020/12/22 - [你好,2021!](https://jiajunhuang.com/articles/2020_12_22-hello_2021.md.html)
- 2020/12/19 - [gRPC鉴权方案](https://jiajunhuang.com/articles/2020_12_19-grpc_authentication.md.html)
- 2020/12/16 - [Golang里数据库migration方案](https://jiajunhuang.com/articles/2020_12_16-golang_migration.md.html)
- 2020/12/12 - [Android SwipeRefreshLayout左右滑动冲突的解决](https://jiajunhuang.com/articles/2020_12_12-android_swiperefresh_swipe_left_right.md.html)
- 2020/12/07 - [Android调用gRPC的两个小工具函数](https://jiajunhuang.com/articles/2020_12_07-android_kotlin_grpc.md.html)
- 2020/12/01 - [Android上结合kotlin使用coroutine](https://jiajunhuang.com/articles/2020_12_01-android_kotlin_coroutine.md.html)
- 2020/11/26 - [gRPC错误处理](https://jiajunhuang.com/articles/2020_11_26-grpc_error_handle.md.html)
- 2020/11/13 - [Java collection的结构](https://jiajunhuang.com/articles/2020_11_13-java_colletions.md.html)
- 2020/11/02 - [为啥Redis使用pipelining会更快?](https://jiajunhuang.com/articles/2020_11_02-why_pipelining_fast.md.html)
- 2020/10/24 - [通过阳台种菜实现蔬菜自由](https://jiajunhuang.com/articles/2020_10_24-vegetable.md.html)
- 2020/10/19 - [从GORM里学习到的panic处理方式](https://jiajunhuang.com/articles/2020_10_19-gorm_paniced.md.html)
- 2020/10/17 - [Go使用闭包简化数据库操作代码](https://jiajunhuang.com/articles/2020_10_17-golang_db_transaction.md.html)
- 2020/10/10 - [TCMalloc设计文档学习](https://jiajunhuang.com/articles/2020_10_10-tcmalloc.md.html)
- 2020/09/27 - [Flask和requests做一个简单的请求代理](https://jiajunhuang.com/articles/2020_09_27-flask_proxy.md.html)
- 2020/09/21 - [Linux常用命令(四):xargs](https://jiajunhuang.com/articles/2020_09_21-linux_cmd_xargs.md.html)
- 2020/09/20 - [Linux常用命令(三):watch](https://jiajunhuang.com/articles/2020_09_20-linux_cmd_watch.md.html)
- 2020/09/20 - [Linux常用命令(二):htop](https://jiajunhuang.com/articles/2020_09_20-linux_cmd_htop.md.html)
- 2020/09/19 - [Linux常用命令(一):netcat](https://jiajunhuang.com/articles/2020_09_19-linux_cmd_netcat.md.html)
- 2020/09/16 - [结合Flask 与 marshmallow快速进行参数校验](https://jiajunhuang.com/articles/2020_09_16-flask_marshmallow.md.html)
- 2020/09/10 - [规整数据的重要性](https://jiajunhuang.com/articles/2020_09_10-form_check.md.html)
- 2020/09/05 - [apt安装特定包以及忽略升级某个包](https://jiajunhuang.com/articles/2020_09_05-apt.md.html)
- 2020/08/26 - [StackGuard的作用](https://jiajunhuang.com/articles/2020_08_26-stackguard.md.html)
- 2020/08/26 - [Goroutine是如何处理栈的?](https://jiajunhuang.com/articles/2020_08_26-goroutine_stack.md.html)
- 2020/08/22 - [Go DiskQueue源码阅读](https://jiajunhuang.com/articles/2020_08_22-go_diskqueue.md.html)
- 2020/08/16 - [NSQ源码分析](https://jiajunhuang.com/articles/2020_08_16-nsq_source_code.md.html)
- 2020/08/15 - [NSQ简明教程](https://jiajunhuang.com/articles/2020_08_15-nsq.md.html)
- 2020/08/11 - [结合Redis与MySQL实现又快又好的数据方案](https://jiajunhuang.com/articles/2020_08_11-redis_mysql.md.html)
- 2020/07/28 - [程序员的MySQL手册(五):索引优化](https://jiajunhuang.com/articles/2020_07_28-mysql_part5.md.html)
- 2020/07/27 - [程序员的MySQL手册(四):索引设计](https://jiajunhuang.com/articles/2020_07_27-mysql_part4.md.html)
- 2020/07/26 - [程序员的MySQL手册(三):数据库设计](https://jiajunhuang.com/articles/2020_07_26-mysql_part3.md.html)
- 2020/07/25 - [Linux窗口管理器下的截图](https://jiajunhuang.com/articles/2020_07_25-linux_screenshot.md.html)
- 2020/07/23 - [程序员的MySQL手册(二): 监控与benchmark](https://jiajunhuang.com/articles/2020_07_23-mysql_part2.md.html)
- 2020/07/23 - [Go设计模式:facade模式和观察者模式](https://jiajunhuang.com/articles/2020_07_23-go_design_pattern_facade.md.html)
- 2020/07/21 - [Go设计模式: 责任链模式](https://jiajunhuang.com/articles/2020_07_21-go_design_pattern_chain.md.html)
- 2020/07/15 - [我们真的需要这么复杂的技术栈吗?](https://jiajunhuang.com/articles/2020_07_15-do_we_need_these.md.html)
- 2020/07/14 - [Go设计模式:装饰器模式](https://jiajunhuang.com/articles/2020_07_14-go_design_pattern_decorator.md.html)
- 2020/07/05 - [程序员的MySQL手册(一): 安装,基本配置](https://jiajunhuang.com/articles/2020_07_05-mysql_part1.md.html)
- 2020/07/04 - [ElasticSearch学习笔记](https://jiajunhuang.com/articles/2020_07_04-elasticsearch.md.html)
- 2020/07/02 - [Go设计模式:composite模式](https://jiajunhuang.com/articles/2020_07_02-go_design_pattern_composite.md.html)
- 2020/06/25 - [拯救删除ZFS之后的分区表](https://jiajunhuang.com/articles/2020_06_25-save_partition_table_zfs.md.html)
- 2020/06/23 - [Linux使用redshift自动调整屏幕色温](https://jiajunhuang.com/articles/2020_06_23-redshift.md.html)
- 2020/06/21 - [Go设计模式:桥接模式和策略模式](https://jiajunhuang.com/articles/2020_06_21-go_design_pattern_bridge.md.html)
- 2020/06/20 - [Go设计模式:单例模式、原型模式和Builder模式](https://jiajunhuang.com/articles/2020_06_20-go_design_pattern_singleton.md.html)
- 2020/06/15 - [操作系统也是CRUD](https://jiajunhuang.com/articles/2020_06_15-unix_crud.md.html)
- 2020/06/13 - [把USB设备穿透给虚拟机里的系统](https://jiajunhuang.com/articles/2020_06_13-macos_kvm_usb_pass.md.html)
- 2020/06/13 - [Go设计模式:简单工厂模式](https://jiajunhuang.com/articles/2020_06_13-go_design_pattern_factory.md.html)
- 2020/06/12 - [debug故事之:事务让生活更美好](https://jiajunhuang.com/articles/2020_06_12-transaction_life_easy.md.html)
- 2020/06/11 - [Go设计模式:模板模式](https://jiajunhuang.com/articles/2020_06_11-go_design_pattern_template.md.html)
- 2020/06/09 - [Go设计模式:适配器模式](https://jiajunhuang.com/articles/2020_06_09-go_design_pattern_adapter.md.html)
- 2020/06/07 - [Go设计模式:Iterator](https://jiajunhuang.com/articles/2020_06_07-go_design_pattern_iter.md.html)
- 2020/05/30 - [glusterfs 笔记](https://jiajunhuang.com/articles/2020_05_30-glusterfs.md.html)
- 2020/05/29 - [用peewee代替SQLAlchemy](https://jiajunhuang.com/articles/2020_05_29-use_peewee.md.html)
- 2020/05/23 - [Go的slice工作机制](https://jiajunhuang.com/articles/2020_05_23-go_slice.md.html)
- 2020/05/22 - [Linux系统迁移记录(从HDD到SSD)](https://jiajunhuang.com/articles/2020_05_22-linux_clone_sys.md.html)
- 2020/05/21 - [Redis是如何工作的?](https://jiajunhuang.com/articles/2020_05_21-how_does_redis_work.md.html)
- 2020/05/18 - [virsh自动关闭windows虚拟机](https://jiajunhuang.com/articles/2020_05_18-virsh_shutdown_win.md.html)
- 2020/05/16 - [Golang sort源码阅读](https://jiajunhuang.com/articles/2020_05_16-go_sort.md.html)
- 2020/05/15 - [分治的思维方式](https://jiajunhuang.com/articles/2020_05_15-divide_and_conquer.md.html)
- 2020/05/13 - [Debian 使用NetworkManager之后networking.service崩溃](https://jiajunhuang.com/articles/2020_05_13-debian_networking.md.html)
- 2020/05/09 - [httprouter源码阅读与分析](https://jiajunhuang.com/articles/2020_05_09-httprouter.md.html)
- 2020/05/08 - [《程序员的自我修养-装载、链接与库》笔记](https://jiajunhuang.com/articles/2020_05_08-linker_and_loader.md.html)
- 2020/05/05 - [Golang sync.Pool源码阅读与分析](https://jiajunhuang.com/articles/2020_05_05-go_sync_pool.md.html)
- 2020/05/01 - [MySQL操作笔记](https://jiajunhuang.com/articles/2020_05_01-mysql_notes.md.html)
- 2020/04/30 - [Go语言解析GBK编码的xml](https://jiajunhuang.com/articles/2020_04_30-golang_gbk_xml.md.html)
- 2020/04/28 - [Golang log 源码阅读](https://jiajunhuang.com/articles/2020_04_28-golang_log.md.html)
- 2020/04/24 - [使用Go语言实现一个异步任务框架](https://jiajunhuang.com/articles/2020_04_24-gotasks.md.html)
- 2020/04/23 - [Go使用gdb调试](https://jiajunhuang.com/articles/2020_04_23-go_gdb.md.html)
- 2020/04/23 - [Golang flag源码阅读及自己实现](https://jiajunhuang.com/articles/2020_04_23-go_flag.md.html)
- 2020/04/22 - [Golang context源码阅读与分析](https://jiajunhuang.com/articles/2020_04_22-golang_context.md.html)
- 2020/04/22 - [Golang ASM简明教程](https://jiajunhuang.com/articles/2020_04_22-go_asm.md.html)
- 2020/04/21 - [善用闭包(closure)让Go代码更优雅](https://jiajunhuang.com/articles/2020_04_21-use_closure.md.html)
- 2020/04/21 - [Golang中的并发控制](https://jiajunhuang.com/articles/2020_04_21-golang_concurrency.md.html)
- 2020/04/20 - [Golang的可选参数实践](https://jiajunhuang.com/articles/2020_04_20-golang_optional_parameters.md.html)
- 2020/04/13 - [FreeBSD ipfw使用教程](https://jiajunhuang.com/articles/2020_04_13-freebsd_ipfw.md.html)
- 2020/04/12 - [Golang expvar库源码阅读](https://jiajunhuang.com/articles/2020_04_12-expvar.md.html)
- 2020/04/11 - [Golang SQL生成库 Squirrel 教程及源码阅读](https://jiajunhuang.com/articles/2020_04_11-squirrel.md.html)
- 2020/04/10 - [Golang validator使用教程](https://jiajunhuang.com/articles/2020_04_10-golang_validator.md.html)
- 2020/04/09 - [价值编程与职业发展](https://jiajunhuang.com/articles/2020_04_09-value_programming.md.html)
- 2020/04/09 - [使用Redis的Stream模块实现群聊功能](https://jiajunhuang.com/articles/2020_04_09-redis_stream_as_im.md.html)
- 2020/04/08 - [解决k8s cron无法读取环境变量的问题](https://jiajunhuang.com/articles/2020_04_08-k8s_cron_environment_variable.md.html)
- 2020/03/27 - [应用内购的坑](https://jiajunhuang.com/articles/2020_03_27-iap.md.html)
- 2020/03/26 - [两种常见的访问控制模型](https://jiajunhuang.com/articles/2020_03_26-access_control.md.html)
- 2020/03/25 - [gunicorn max-requests 选项的作用](https://jiajunhuang.com/articles/2020_03_25-gunicorn_max_requests.md.html)
- 2020/03/23 - [Redis使用中的几点注意事项](https://jiajunhuang.com/articles/2020_03_23-redis_practice.md.html)
- 2020/03/12 - [给你的代码跑个分?pylint使用教程](https://jiajunhuang.com/articles/2020_03_12-pylint.md.html)
- 2020/03/11 - [一个Gunicorn worker数量引发的血案](https://jiajunhuang.com/articles/2020_03_11-gunicorn_worker.md.html)
- 2020/03/06 - [MySQL Boolean类型的坑](https://jiajunhuang.com/articles/2020_03_06-mysql_boolean_tinyint_index.md.html)
- 2020/03/04 - [pip freeze是魔鬼](https://jiajunhuang.com/articles/2020_03_04-pip_list.md.html)
- 2020/03/02 - [一个feed流系统的演进](https://jiajunhuang.com/articles/2020_03_02-feed_system_design.md.html)
- 2020/03/01 - [Android 使用view binding](https://jiajunhuang.com/articles/2020_03_01-android_view_binding.md.html)
- 2020/02/27 - [系统调用的过程](https://jiajunhuang.com/articles/2020_02_27-syscall.md.html)
- 2020/02/26 - [MySQL charset不同导致无法使用索引的坑](https://jiajunhuang.com/articles/2020_02_26-mysql_charset_index.md.html)
- 2020/02/19 - [微服务的缺点](https://jiajunhuang.com/articles/2020_02_19-should_i_use_microservice.md.html)
- 2020/02/14 - [远程工作一周有感](https://jiajunhuang.com/articles/2020_02_14-remote_work.md.html)
- 2020/02/12 - [Python中的并发控制](https://jiajunhuang.com/articles/2020_02_12-python_concurrency.md.html)
- 2020/02/08 - [KVM spice协议在高分屏上的分辨率问题](https://jiajunhuang.com/articles/2020_02_08-kvm_spice_high_dpi.md.html)
- 2020/01/11 - [计算机中的权衡(trade-off)](https://jiajunhuang.com/articles/2020_01_11-paradigm.md.html)
- 2020/01/10 - [[声明]本站所有文章禁止转载](https://jiajunhuang.com/articles/2020_01_10-please_do_not_copy.md.html)
- 2020/01/07 - [Golang不那么蛋疼的sort](https://jiajunhuang.com/articles/2020_01_07-golang_sort_slice.md.html)
- 2020/01/06 - [Flutter给Android应用签名](https://jiajunhuang.com/articles/2020_01_06-flutter_sign_android_apk.md.html)
- 2020/01/01 - [使用Gitea+Drone打造自己的CI/CD系统](https://jiajunhuang.com/articles/2020_01_01-use_gitea_with_drone.md.html)
- 2019/12/31 - [2019年就要结束啦!](https://jiajunhuang.com/articles/2019_12_31-hello_2020.md.html)
- 2019/12/27 - [为什么要使用gRPC?](https://jiajunhuang.com/articles/2019_12_27-why_grpc.md.html)
- 2019/12/24 - [Matebook X Pro 2019安装Debian 10](https://jiajunhuang.com/articles/2019_12_24-matebook_x_pro_2019_debian_10.md.html)
- 2019/12/22 - [ArchLinux忽略某个包的升级](https://jiajunhuang.com/articles/2019_12_22-archlinux_ignore_pkg.md.html)
- 2019/12/21 - [SQLAlchemy使用主从与数据库autocommit](https://jiajunhuang.com/articles/2019_12_21-autocommit.md.html)
- 2019/12/19 - [Blackbox禁用IPv6](https://jiajunhuang.com/articles/2019_12_19-blackbox_disable_ipv6.md.html)
- 2019/12/18 - [Go 1.13的errors挺香](https://jiajunhuang.com/articles/2019_12_18-golang_133_errors.md.html)
- 2019/12/18 - [预防缓存击穿](https://jiajunhuang.com/articles/2019_12_18-cache_miss.md.html)
- 2019/12/16 - [flutter开发体验汇报](https://jiajunhuang.com/articles/2019_12_16-flutter_dev.md.html)
- 2019/12/13 - [自己封装一个好用的Dart HTTP库](https://jiajunhuang.com/articles/2019_12_13-dart_requests.md.html)
- 2019/12/11 - [Flutter应用启动后检查更新](https://jiajunhuang.com/articles/2019_12_11-flutter_do_sth_after_boot.md.html)
- 2019/12/10 - [Grafana Gravatar头像显示bug修复](https://jiajunhuang.com/articles/2019_12_10-grafana_gravatar_http_hijack.md.html)
- 2019/12/09 - [flutter中使用RESTful接口](https://jiajunhuang.com/articles/2019_12_09-dart_flutter_json.md.html)
- 2019/12/04 - [Vim YouCompleteMe使用LSP(以dart为例)](https://jiajunhuang.com/articles/2019_12_04-ycm_lsp_dart.md.html)
- 2019/12/03 - [flutter webview加载时显示进度](https://jiajunhuang.com/articles/2019_12_03-flutter_webview_indicator.md.html)
- 2019/12/02 - [SQLAlchemy快速更新或插入对象](https://jiajunhuang.com/articles/2019_12_02-sqlalchemy_update_or_insert.md.html)
- 2019/11/26 - [修复Linux下curl等无法使用letsencrypt证书](https://jiajunhuang.com/articles/2019_11_26-lets_encrypt_linux_shell.md.html)
- 2019/11/24 - [欣赏一下K&R两位大神的代码](https://jiajunhuang.com/articles/2019_11_24-code_from_k_and_r.md.html)
- 2019/11/19 - [MySQL的ON DUPLICATE KEY UPDATE语句](https://jiajunhuang.com/articles/2019_11_19-mysql_duplicate_key_update.md.html)
- 2019/11/17 - [使用microk8s快速搭建k8s](https://jiajunhuang.com/articles/2019_11_17-microk8s.md.html)
- 2019/11/15 - [Python中优雅的处理文件路径](https://jiajunhuang.com/articles/2019_11_15-python_pathlib_path.md.html)
- 2019/11/14 - [Go语言MySQL时区问题](https://jiajunhuang.com/articles/2019_11_14-golang_mysql_timezone.md.html)
- 2019/11/13 - [我的技术栈选型](https://jiajunhuang.com/articles/2019_11_13-tech_stack.md.html)
- 2019/11/11 - [为什么我要用Linux作为桌面?](https://jiajunhuang.com/articles/2019_11_11-why_linux_as_desktop.md.html)
- 2019/11/08 - [disqus获取评论时忽略query string](https://jiajunhuang.com/articles/2019_11_08-disqus_thread_identifier.md.html)
- 2019/11/06 - [MySQL性能优化指南](https://jiajunhuang.com/articles/2019_11_06-mysql.md.html)
- 2019/11/01 - [网络编程所需要熟悉的那些函数](https://jiajunhuang.com/articles/2019_11_01-network_programming.md.html)
- 2019/10/31 - [DNSCrypt简明教程](https://jiajunhuang.com/articles/2019_10_31-dnscrypt.md.html)
- 2019/10/30 - [SQLAlchemy简明教程](https://jiajunhuang.com/articles/2019_10_30-sqlalchemy.md.html)
- 2019/10/25 - [这些年,我们错过的n个亿](https://jiajunhuang.com/articles/2019_10_25-oh_my_money.md.html)
- 2019/10/19 - [给Linux用户的FreeBSD快速指南](https://jiajunhuang.com/articles/2019_10_19-freebsd_for_linux_users.md.html)
- 2019/10/18 - [旧电脑也不能闲着:家用备份方案](https://jiajunhuang.com/articles/2019_10_18-build_your_own_nas.md.html)
- 2019/10/15 - [将SQLite的数据迁移到MySQL](https://jiajunhuang.com/articles/2019_10_15-grafana_moved_to_mysql.md.html)
- 2019/10/08 - [Linux托管Windows虚拟机最佳实践](https://jiajunhuang.com/articles/2019_10_08-linux_windows.md.html)
- 2019/09/29 - [为什么gRPC难以推广](https://jiajunhuang.com/articles/2019_09_29-why_grpc_is_not_popular.md.html)
- 2019/09/26 - [关于ORM的思考](https://jiajunhuang.com/articles/2019_09_26-orm.md.html)
- 2019/09/25 - [MySQL指定使用索引(使用索引提示)](https://jiajunhuang.com/articles/2019_09_25-mysql_use_index.md.html)
- 2019/09/23 - [搭建samba服务器](https://jiajunhuang.com/articles/2019_09_23-samba.md.html)
- 2019/09/23 - [QT5使用GTK主题](https://jiajunhuang.com/articles/2019_09_23-qt5_gtk_theme.md.html)
- 2019/09/18 - [ssh时自动运行tmux](https://jiajunhuang.com/articles/2019_09_18-run_tmux_automatically.md.html)
- 2019/09/14 - [ufw简明教程](https://jiajunhuang.com/articles/2019_09_14-ufw.md.html)
- 2019/09/11 - [zerotier简明教程](https://jiajunhuang.com/articles/2019_09_11-zerotier.md.html)
- 2019/09/04 - [提取kindle笔记](https://jiajunhuang.com/articles/2019_09_04-kindle_highlights.md.html)
- 2019/09/02 - [一个Golang gRPC握手错误的坑](https://jiajunhuang.com/articles/2019_09_02-go_grpc_handshake.md.html)
- 2019/08/31 - [Golang(Go语言)爬虫框架colly简明教程及源码阅读与分析](https://jiajunhuang.com/articles/2019_08_31-go_colly.md.html)
- 2019/08/30 - [选择合适的技术栈](https://jiajunhuang.com/articles/2019_08_30-choose_properly_tech.md.html)
- 2019/08/23 - [Golang的template(模板引擎)简明教程](https://jiajunhuang.com/articles/2019_08_23-golang_html_template.md.html)
- 2019/08/21 - [毕业三年,一路走来](https://jiajunhuang.com/articles/2019_08_21-three_years_after_graduate.md.html)
- 2019/08/18 - [代码的坏味道](https://jiajunhuang.com/articles/2019_08_18-code_with_bad_taste.md.html)
- 2019/08/05 - [消息分帧(字符串设计或协议设计)的两种形式](https://jiajunhuang.com/articles/2019_08_05-message_framing.md.html)
- 2019/08/01 - [C, Go, Python的错误处理和异常机制杂谈](https://jiajunhuang.com/articles/2019_08_01-error_handling.md.html)
- 2019/07/29 - [好的命名是最好的文档](https://jiajunhuang.com/articles/2019_07_29-name_is_the_best_doc.md.html)
- 2019/07/24 - [读《系统之美:决策者的系统思考》](https://jiajunhuang.com/articles/2019_07_24-thinking_in_systems_a_primer.md.html)
- 2019/07/20 - [Linux高分屏支持](https://jiajunhuang.com/articles/2019_07_20-linux_hidpi.md.html)
- 2019/07/16 - [GCC默认的头文件搜索路径](https://jiajunhuang.com/articles/2019_07_16-gcc_header_path.md.html)
- 2019/07/15 - [读《远见-如何规划职业生涯3大阶段》](https://jiajunhuang.com/articles/2019_07_15-the_long_view.md.html)
- 2019/07/13 - [后端工程师学前端(五): SASS](https://jiajunhuang.com/articles/2019_07_13-learn_front_end_5.md.html)
- 2019/07/10 - [后端工程师学前端(四): CSS进阶(盒子模型)](https://jiajunhuang.com/articles/2019_07_10-learn_front_end_4.md.html)
- 2019/07/06 - [读《投资中最简单的事》](https://jiajunhuang.com/articles/2019_07_06-the_simple_things_in_investment.md.html)
- 2019/07/04 - [后端工程师学前端(三): CSS进阶(特指度、单位和字体族)](https://jiajunhuang.com/articles/2019_07_04-learn_front_end_3.md.html)
- 2019/07/02 - [后端工程师学前端(二): CSS基础知识(规则与选择器)](https://jiajunhuang.com/articles/2019_07_02-learn_front_end_2.md.html)
- 2019/06/25 - [Swift语法笔记](https://jiajunhuang.com/articles/2019_06_25-swift.md.html)
- 2019/06/23 - [读《管理的实践》](https://jiajunhuang.com/articles/2019_06_23-the_practice_of_management.md.html)
- 2019/06/23 - [后端工程师学前端(一): HTML](https://jiajunhuang.com/articles/2019_06_23-learn_front_end.md.html)
- 2019/06/19 - [frp 源码阅读与分析(二):TCP内网穿透的实现](https://jiajunhuang.com/articles/2019_06_19-frp_source_code_part2.md.html)
- 2019/06/15 - [五天不用微信 - 爽得很](https://jiajunhuang.com/articles/2019_06_15-leave_wechat_for_5_days.md.html)
- 2019/06/11 - [frp 源码阅读与分析(一):流程和概念](https://jiajunhuang.com/articles/2019_06_11-frpc_source_code_part1.md.html)
- 2019/06/10 - [学习frp源码之简洁的在两个connection之间转发流量](https://jiajunhuang.com/articles/2019_06_10-learn_from_frp_source_code.md.html)
- 2019/06/09 - [自己动手写一个反向代理](https://jiajunhuang.com/articles/2019_06_09-write_you_a_simple_reverse_proxy.md.html)
- 2019/06/08 - [从XMonad迁移到i3](https://jiajunhuang.com/articles/2019_06_08-migrate_from_xmonad_to_i3wm.md.html)
- 2019/06/08 - [读《债务危机》](https://jiajunhuang.com/articles/2019_06_08-big_debt_crises.md.html)
- 2019/06/06 - [socks5 协议详解](https://jiajunhuang.com/articles/2019_06_06-socks5.md.html)
- 2019/06/06 - [服务器IP被ban学到的经验](https://jiajunhuang.com/articles/2019_06_06-ip_ban.md.html)
- 2019/06/04 - [开启HSTS(HTTP Strict Transport Security)](https://jiajunhuang.com/articles/2019_06_04-hsts.md.html)
- 2019/06/01 - [从Chrome切换到Firefox](https://jiajunhuang.com/articles/2019_06_01-from_chrome_to_firefox.md.html)
- 2019/06/01 - [网络乞讨之合并支付宝和微信的收款二维码](https://jiajunhuang.com/articles/2019_06_01-combine_wechat_alipay.md.html)
- 2019/05/31 - [Linux下当笔记本合上盖子之后只使用扩展显示器](https://jiajunhuang.com/articles/2019_05_31-turnoff_screen_when_lid_is_closed.md.html)
- 2019/05/31 - [nomad简明教程](https://jiajunhuang.com/articles/2019_05_31-nomad.md.html)
- 2019/05/30 - [Ubuntu 18.04 dhcp更换新IP](https://jiajunhuang.com/articles/2019_05_30-ubuntu_1804_dhcp_new_ip.md.html)
- 2019/05/29 - [Python中的新式类(new style class)和老式类(old style class)](https://jiajunhuang.com/articles/2019_05_29-python_old_new_style_class.md.html)
- 2019/05/18 - [Python Requests 简明教程](https://jiajunhuang.com/articles/2019_05_18-requests.md.html)
- 2019/05/15 - [密码技术简明教程(三):证书和TLS](https://jiajunhuang.com/articles/2019_05_15-crypto_part3.md.html)
- 2019/05/14 - [SEO学习笔记](https://jiajunhuang.com/articles/2019_05_14-seo.md.html)
- 2019/05/14 - [密码技术简明教程(二):散列、消息认证码和数字签名](https://jiajunhuang.com/articles/2019_05_14-crypto_part2.md.html)
- 2019/05/12 - [密码技术简明教程(一):对称加密和非对称加密](https://jiajunhuang.com/articles/2019_05_12-crypto.md.html)
- 2019/05/10 - [Kubernetes 笔记](https://jiajunhuang.com/articles/2019_05_10-kubernetes_tutorial.md.html)
- 2019/05/09 - [go mod 和 logrus 路径大小写的问题](https://jiajunhuang.com/articles/2019_05_09-go_mod_logrus.md.html)
- 2019/05/08 - [Flask自动加载Blueprint](https://jiajunhuang.com/articles/2019_05_08-flask_load_bp_automaticly.md.html)
- 2019/05/07 - [在KVM里安装Minikube](https://jiajunhuang.com/articles/2019_05_07-minikube_kvm.md.html)
- 2019/04/29 - [搞定面试中的系统设计题](https://jiajunhuang.com/articles/2019_04_29-system_design.md.html)
- 2019/04/25 - [Crontab + Sendmail实现定时任务并且通知](https://jiajunhuang.com/articles/2019_04_25-crontab_sendmail.md.html)
- 2019/04/23 - [Nginx设置Referer来防止盗图](https://jiajunhuang.com/articles/2019_04_23-nginx_referer.md.html)
- 2019/04/20 - [Graphviz dot简明教程](https://jiajunhuang.com/articles/2019_04_20-graphviz_dot.md.html)
- 2019/04/19 - [jQuery简明教程](https://jiajunhuang.com/articles/2019_04_19-jquery.md.html)
- 2019/04/18 - [Python RQ(Redis Queue)添加gevent支持](https://jiajunhuang.com/articles/2019_04_18-python_rq_gevent.md.html)
- 2019/04/17 - [技术人,光有技术是不行的](https://jiajunhuang.com/articles/2019_04_17-tech_only_is_bad.md.html)
- 2019/04/17 - [读《超级运营术》- 如何做社区?](https://jiajunhuang.com/articles/2019_04_17-chaojiyunyingshu.md.html)
- 2019/04/06 - [使用shairport-sync搭建airplay音频服务器](https://jiajunhuang.com/articles/2019_04_06-shairport_sync.md.html)
- 2019/04/06 - [搭建aria2服务器](https://jiajunhuang.com/articles/2019_04_06-aria2.md.html)
- 2019/04/05 - [VirtManager Windows自适应屏幕](https://jiajunhuang.com/articles/2019_04_05-virt_manager_win.md.html)
- 2019/04/03 - [使用btrfs组建RAID1](https://jiajunhuang.com/articles/2019_04_03-btrfs_raid1.md.html)
- 2019/04/01 - [Swagger? 不好用](https://jiajunhuang.com/articles/2019_04_01-swagger_i_dislike.md.html)
- 2019/03/29 - [Golang/Python最佳实践](https://jiajunhuang.com/articles/2019_03_29-python_golang_best_practice.md.html)
- 2019/03/24 - [读《毛泽东选集》](https://jiajunhuang.com/articles/2019_03_24-mao.md.html)
- 2019/03/19 - [GORM源码阅读与分析](https://jiajunhuang.com/articles/2019_03_19-gorm.md.html)
- 2019/03/16 - [随想](https://jiajunhuang.com/articles/2019_03_16-tittle_tattle.md.html)
- 2019/03/15 - [Golang中的错误处理](https://jiajunhuang.com/articles/2019_03_15-golang_errors.md.html)
- 2019/03/14 - [Golang 的槽点](https://jiajunhuang.com/articles/2019_03_14-golang_bad_side.md.html)
- 2019/03/12 - [一个想当然的bug](https://jiajunhuang.com/articles/2019_03_12-golang_strings_split.md.html)
- 2019/03/06 - [读《稀缺》](https://jiajunhuang.com/articles/2019_03_06-scarcity.md.html)
- 2019/03/03 - [读《影响力》](https://jiajunhuang.com/articles/2019_03_03-influence.md.html)
- 2019/03/01 - [读《自控力》](https://jiajunhuang.com/articles/2019_03_01-self_control.md.html)
- 2019/02/27 - [Containerd简明教程](https://jiajunhuang.com/articles/2019_02_27-containerd_tutorial.md.html)
- 2019/02/26 - [软件设计套路之推拉模式](https://jiajunhuang.com/articles/2019_02_26-push_pull_system.md.html)
- 2019/01/30 - [记一次Golang TLS编程踩坑](https://jiajunhuang.com/articles/2019_01_30-golang_tls.md.html)
- 2019/01/13 - [杂谈](https://jiajunhuang.com/articles/2019_01_13-goroutine.md.html)
- 2019/01/12 - [使用autossh实现内网穿透](https://jiajunhuang.com/articles/2019_01_12-autossh.md.html)
- 2019/01/07 - [Linux线程内存模型](https://jiajunhuang.com/articles/2019_01_07-linux_thread_mem_layout.md.html)
- 2019/01/03 - [关闭手机通知,修复碎片化的生活](https://jiajunhuang.com/articles/2019_01_03-drop_notifications.md.html)
- 2019/01/01 - [Linux下系统调用的过程](https://jiajunhuang.com/articles/2019_01_01-system_call.md.html)
- 2018/12/27 - [Redis 5.0 Stream简明教程](https://jiajunhuang.com/articles/2018_12_27-redis_stream.md.html)
- 2018/12/27 - [耍耍OverlayFS](https://jiajunhuang.com/articles/2018_12_27-overlayfs.md.html)
- 2018/12/26 - [删除分区表](https://jiajunhuang.com/articles/2018_12_26-delete_disk_partition_table.md.html)
- 2018/12/24 - [YouCompleteMe ycmd server SHUTDOWN 和 pyenv的问题](https://jiajunhuang.com/articles/2018_12_24-ycm_pyenv.md.html)
- 2018/12/24 - [Docker组件介绍(二):shim, docker-init和docker-proxy](https://jiajunhuang.com/articles/2018_12_24-docker_components_part2.md.html)
- 2018/12/22 - [Docker组件介绍(一):runc和containerd](https://jiajunhuang.com/articles/2018_12_22-docker_components.md.html)
- 2018/12/16 - [Prometheus MySQL Exporter源码阅读与分析](https://jiajunhuang.com/articles/2018_12_16-prometheus_mysqld_exporter.md.html)
- 2018/12/13 - [MySQL性能指标](https://jiajunhuang.com/articles/2018_12_13-db_metrics.md.html)
- 2018/12/12 - [使用Dropbox来备份服务器文件](https://jiajunhuang.com/articles/2018_12_12-use_dropbox_to_backup_server.md.html)
- 2018/12/10 - [《计算机网络-系统方法》读书笔记](https://jiajunhuang.com/articles/2018_12_10-computer_network_systems_approach.md.html)
- 2018/12/08 - [Y Combinator《如何创业》笔记](https://jiajunhuang.com/articles/2018_12_08-yc_startup.md.html)
- 2018/12/01 - [Go类型嵌套](https://jiajunhuang.com/articles/2018_12_01-go_embedding.md.html)
- 2018/11/28 - [etcd源码阅读与分析(五):mvcc](https://jiajunhuang.com/articles/2018_11_28-etcd_source_code_analysis_mvvc.md.html)
- 2018/11/27 - [etcd源码阅读与分析(四):lease](https://jiajunhuang.com/articles/2018_11_27-etcd_source_code_analysis_lease.md.html)
- 2018/11/26 - [干了这碗叔本华牌毒鸡汤 --- 《人生的智慧》](https://jiajunhuang.com/articles/2018_11_26-the_wisdom_of_life_on_human_nature.md.html)
- 2018/11/24 - [Memory leak in net/http](https://jiajunhuang.com/articles/2018_11_24-memory_leak_in_net_http.md.html)
- 2018/11/24 - [etcd源码阅读与分析(三):wal](https://jiajunhuang.com/articles/2018_11_24-etcd_source_code_analysis_wal.md.html)
- 2018/11/22 - [etcd源码阅读与分析(二):raft](https://jiajunhuang.com/articles/2018_11_22-etcd_source_code_analysis_raft.md.html)
- 2018/11/20 - [etcd源码阅读与分析(一):raftexample](https://jiajunhuang.com/articles/2018_11_20-etcd_source_code_analysis_raftexample.md.html)
- 2018/11/18 - [虚拟机里的Ubuntu sudo时卡住](https://jiajunhuang.com/articles/2018_11_18-ubuntu_sudo_hang.md.html)
- 2018/11/16 - [Raft论文阅读笔记](https://jiajunhuang.com/articles/2018_11_16-raft.md.html)
- 2018/11/16 - [Go访问私有变量](https://jiajunhuang.com/articles/2018_11_16-go_private_variable.md.html)
- 2018/11/15 - [避免全局变量](https://jiajunhuang.com/articles/2018_11_15-avoid_global_states.md.html)
- 2018/11/13 - [Go的unsafe包](https://jiajunhuang.com/articles/2018_11_13-golang_package_unsafe.md.html)
- 2018/11/12 - [Golang中实现禁止拷贝](https://jiajunhuang.com/articles/2018_11_12-golang_nocopy.md.html)
- 2018/11/11 - [人生如戏,全靠演技 -- 《日常生活中的自我呈现》读后感](https://jiajunhuang.com/articles/2018_11_11-the_presentation_of_self_in_everyday_life.md.html)
- 2018/11/10 - [数据库事务](https://jiajunhuang.com/articles/2018_11_10-transaction.md.html)
- 2018/11/10 - [Golang的反射](https://jiajunhuang.com/articles/2018_11_10-golang_reflection.md.html)
- 2018/11/09 - [把网站去掉CSS之后](https://jiajunhuang.com/articles/2018_11_09-drop_css.md.html)
- 2018/11/07 - [处理并发的方式](https://jiajunhuang.com/articles/2018_11_07-concurrency.md.html)
- 2018/11/02 - [常见的索引方式](https://jiajunhuang.com/articles/2018_11_02-index.md.html)
- 2018/11/01 - [Golang 实践经验](https://jiajunhuang.com/articles/2018_11_01-golang_practice.md.html)
- 2018/10/23 - [高性能MySQL笔记第一章](https://jiajunhuang.com/articles/2018_10_23-high_performance_mysql_chap1.md.html)
- 2018/10/21 - [面试的一些技巧](https://jiajunhuang.com/articles/2018_10_21-interview_techniques.md.html)
- 2018/10/13 - [HTTP/2 简介](https://jiajunhuang.com/articles/2018_10_13-http2.md.html)
- 2018/09/24 - [独立运营博客一年的一些数据分享](https://jiajunhuang.com/articles/2018_09_24-blogging_one_year.md.html)
- 2018/09/22 - [To B(usiness) 和 To C(ustomer)](https://jiajunhuang.com/articles/2018_09_22-to_b_to_c.md.html)
- 2018/09/16 - [Cookie 中的secure和httponly属性](https://jiajunhuang.com/articles/2018_09_16-cookie_secure_httponly.md.html)
- 2018/09/16 - [常见的软件架构套路](https://jiajunhuang.com/articles/2018_09_16-common_software_archtecture_pattern.md.html)
- 2018/09/10 - [Google Ads使用体验](https://jiajunhuang.com/articles/2018_09_10-google_ads.md.html)
- 2018/09/07 - [Go的custom import path](https://jiajunhuang.com/articles/2018_09_07-go_custom_import_path.md.html)
- 2018/09/06 - [如何挖掘二级子域名?](https://jiajunhuang.com/articles/2018_09_06-how_to_dig_subdomain.md.html)
- 2018/09/03 - [Go Module 简明教程](https://jiajunhuang.com/articles/2018_09_03-go_module.md.html)
- 2018/09/02 - [写了一个Telegram Bot:自动化分享高质量内容](https://jiajunhuang.com/articles/2018_09_02-write_a_tgbot.md.html)
- 2018/09/01 - [为什么我选择放弃运营微信公众号?](https://jiajunhuang.com/articles/2018_09_01-why_i_give_up_wechat_public_account.md.html)
- 2018/09/01 - [Vim打开很慢,怎么找出最慢的插件?怎么解决?](https://jiajunhuang.com/articles/2018_09_01-vim_speed_up.md.html)
- 2018/09/01 - [ArchLinux 怎么降级 package ?](https://jiajunhuang.com/articles/2018_09_01-archlinux_downgrade_package.md.html)
- 2018/08/29 - [Web后端工程师进阶指南(2018)](https://jiajunhuang.com/articles/2018_08_29-become_a_better_programmer.md.html)
- 2018/08/28 - [macOS ansible 遇到 rsync: --chown=www-data: unknown option](https://jiajunhuang.com/articles/2018_08_28-mac_rsync_unknow_option.md.html)
- 2018/08/28 - [How to implement fork syscall in Golang?](https://jiajunhuang.com/articles/2018_08_28-how_does_golang_implement_fork_syscall.md.html)
- 2018/08/26 - [关于运营的思考-运营要怎么做?](https://jiajunhuang.com/articles/2018_08_26-about_traffic.md.html)
- 2018/08/24 - [Python中实现单例模式的n种方式和原理](https://jiajunhuang.com/articles/2018_08_24-python_singleton.md.html)
- 2018/08/23 - [Golang defer中修改返回值](https://jiajunhuang.com/articles/2018_08_23-go_defer_named_return_values.md.html)
- 2018/08/12 - [Python dataclass 源码阅读与分析](https://jiajunhuang.com/articles/2018_08_12-python_dataclasses.md.html)
- 2018/08/08 - [gRPC-gateway 源码阅读与分析](https://jiajunhuang.com/articles/2018_08_08-grpc_gateway_source_code.md.html)
- 2018/08/04 - [如何阅读源代码](https://jiajunhuang.com/articles/2018_08_04-how_to_read_source_code.md.html)
- 2018/07/22 - [我心目中的配置中心应该怎么做?](https://jiajunhuang.com/articles/2018_07_22-config_center.md.html)
- 2018/07/18 - [设计一个HTTP网关](https://jiajunhuang.com/articles/2018_07_18-design_a_gateway.md.html)
- 2018/07/08 - [设计一个分布式块存储](https://jiajunhuang.com/articles/2018_07_08-design_a_chunked_distributed_file_system.md.html)
- 2018/06/24 - [Linux低电量自动关机](https://jiajunhuang.com/articles/2018_06_24-linux_shutdown_when_bat_is_low.md.html)
- 2018/06/15 - [CGO简明教程](https://jiajunhuang.com/articles/2018_06_15-cgo.md.html)
- 2018/05/22 - [求值策略:Applicative Order vs Normal Order](https://jiajunhuang.com/articles/2018_05_22-evaluation_strategy.md.html)
- 2018/05/17 - [High Performance MySQL阅读笔记](https://jiajunhuang.com/articles/2018_05_17-high_performance_mysql.md.html)
- 2018/05/15 - [MySQL EXPLAIN中的filesort是什么?](https://jiajunhuang.com/articles/2018_05_15-mysql_filesort.md.html)
- 2018/05/13 - [数据库索引设计与优化](https://jiajunhuang.com/articles/2018_05_13-mysql_index.md.html)
- 2018/05/08 - [如何调试?](https://jiajunhuang.com/articles/2018_05_08-how_to_debug.md.html)
- 2018/04/14 - [Docker CE 18.03源码阅读与分析](https://jiajunhuang.com/articles/2018_04_14-docker_ce_18_analysis.md.html)
- 2018/04/12 - [容器时代的日志处理](https://jiajunhuang.com/articles/2018_04_12-docker_logging.md.html)
- 2018/04/10 - [Golang和Thrift](https://jiajunhuang.com/articles/2018_04_10-golang_thrift.md.html)
- 2018/04/05 - [折腾Kubernetes](https://jiajunhuang.com/articles/2018_04_05-kubernetes.md.html)
- 2018/04/03 - [协程(coroutine)简介 - 什么是协程?](https://jiajunhuang.com/articles/2018_04_03-coroutine.md.html)
- 2018/03/29 - [goroutine 切换的时候发生了什么?](https://jiajunhuang.com/articles/2018_03_29-goroutine_schedule.md.html)
- 2018/03/19 - [Prometheus 数据类型](https://jiajunhuang.com/articles/2018_03_19-prometheus.md.html)
- 2018/03/16 - [Gin源码阅读与分析](https://jiajunhuang.com/articles/2018_03_16-gin_source_code.md.html)
- 2018/03/10 - [如何面试-作为面试官得到的经验](https://jiajunhuang.com/articles/2018_03_10-interview.md.html)
- 2018/03/09 - [自己写一个容器](https://jiajunhuang.com/articles/2018_03_09-write_you_a_container.md.html)
- 2018/03/08 - [Golang(Go语言)中实现典型的fork调用](https://jiajunhuang.com/articles/2018_03_08-golang_fork.md.html)
- 2018/02/26 - [软件开发之禅---大事化小,各个击破](https://jiajunhuang.com/articles/2018_02_26-zen_of_dev.md.html)
- 2018/02/25 - [程序员的自我修养:链接,装载与库 阅读笔记](https://jiajunhuang.com/articles/2018_02_25-linker_loader.md.html)
- 2018/02/24 - [Redis源码阅读与分析一:sds](https://jiajunhuang.com/articles/2018_02_24-redis_source_code_sds.md.html)
- 2018/02/24 - [Redis源码阅读与分析三:哈希表](https://jiajunhuang.com/articles/2018_02_24-redis_source_code_hash_table.md.html)
- 2018/02/24 - [Redis源码阅读与分析二:双链表](https://jiajunhuang.com/articles/2018_02_24-redis_source_code_doubly_linked_list.md.html)
- 2018/02/02 - [Golang runtime 源码阅读与分析](https://jiajunhuang.com/articles/2018_02_02-golang_runtime.md.html)
- 2018/01/31 - [Golang的一些坑](https://jiajunhuang.com/articles/2018_01_31-golang_traps.md.html)
- 2018/01/30 - [GC 垃圾回收](https://jiajunhuang.com/articles/2018_01_30-gc.md.html)
- 2018/01/28 - [设计一个路由](https://jiajunhuang.com/articles/2018_01_28-router_design.md.html)
- 2018/01/22 - [Go语言性能优化实战](https://jiajunhuang.com/articles/2018_01_22-golang_optimization.md.html)
- 2018/01/14 - [那些年开发的时候踩过的坑](https://jiajunhuang.com/articles/2018_01_14-pitfalls.md.html)
- 2018/01/08 - [(关系型)数据库优化总结](https://jiajunhuang.com/articles/2018_01_08-db_optimizations.md.html)
- 2018/01/04 - [动态规划民科教程](https://jiajunhuang.com/articles/2018_01_04-dynamic_programming.md.html)
- 2017/12/30 - [Golang 分布式异步任务队列 Machinery 教程](https://jiajunhuang.com/articles/2017_12_30-golang_task_queue.md.html)
- 2017/12/27 - [使用geohash完成地理距离计算](https://jiajunhuang.com/articles/2017_12_27-geohash.md.html)
- 2017/12/20 - [2018年就要到了,这一年都做了什么呢?](https://jiajunhuang.com/articles/2017_12_20-2017_is_over_and_2018_is_coming.md.html)
- 2017/12/02 - [算法导论阅读笔记 --- 排序算法](https://jiajunhuang.com/articles/2017_12_02-algorithms_sorting.md.html)
- 2017/11/29 - [短链系统的实现](https://jiajunhuang.com/articles/2017_11_29-short_url.md.html)
- 2017/11/29 - [Git HTTPS 如何保存密码](https://jiajunhuang.com/articles/2017_11_29-git_credential_store.md.html)
- 2017/11/13 - [程序员修炼之道 阅读笔记](https://jiajunhuang.com/articles/2017_11_13-the_programmatic_programmer.md.html)
- 2017/11/04 - [Python开发实践经验](https://jiajunhuang.com/articles/2017_11_04-python_develop_practice.md.html)
- 2017/10/25 - [Golang实现平滑重启(优雅重启)](https://jiajunhuang.com/articles/2017_10_25-golang_graceful_restart.md.html)
- 2017/10/24 - [traefik 教程](https://jiajunhuang.com/articles/2017_10_24-traefik.md.html)
- 2017/10/19 - [Web开发简介系列](https://jiajunhuang.com/articles/2017_10_19-web_dev_series.md.html)
- 2017/10/19 - [Web开发系列(九):消息队列,异步任务](https://jiajunhuang.com/articles/2017_10_19-web_dev_part9.md.html)
- 2017/10/19 - [Web开发系列(十一):数据库扩展](https://jiajunhuang.com/articles/2017_10_19-web_dev_part11.md.html)
- 2017/10/19 - [Web开发系列(十):事务和锁](https://jiajunhuang.com/articles/2017_10_19-web_dev_part10.md.html)
- 2017/10/19 - [Nginx作为TCP/UDP的负载均衡](https://jiajunhuang.com/articles/2017_10_19-nginx_as_tcp_load_balancing.md.html)
- 2017/10/18 - [Web开发系列(八):单点故障,负载均衡](https://jiajunhuang.com/articles/2017_10_18-web_dev_part8.md.html)
- 2017/10/18 - [Web开发系列(七):缓存,CDN](https://jiajunhuang.com/articles/2017_10_18-web_dev_part7.md.html)
- 2017/10/18 - [Web开发系列(六):关系型数据库,ORM](https://jiajunhuang.com/articles/2017_10_18-web_dev_part6.md.html)
- 2017/10/18 - [Nginx 请求匹配规则](https://jiajunhuang.com/articles/2017_10_18-nginx_request_handle.md.html)
- 2017/10/17 - [Web开发系列(五):form, json, xml](https://jiajunhuang.com/articles/2017_10_17-web_dev_part5.md.html)
- 2017/10/16 - [Web开发系列(四):Flask, Tornado和WSGI](https://jiajunhuang.com/articles/2017_10_16-web_dev_part4.md.html)
- 2017/10/15 - [Web开发系列(三):什么是HTML,CSS,JS?](https://jiajunhuang.com/articles/2017_10_15-web_dev_part3.md.html)
- 2017/10/14 - [Web开发系列(二):HTTP协议](https://jiajunhuang.com/articles/2017_10_14-web_dev_part2.md.html)
- 2017/10/13 - [Web开发系列(一):从输入网址到最后,这个过程经历了什么?](https://jiajunhuang.com/articles/2017_10_13-web_dev_part1.md.html)
- 2017/10/11 - [SNI: 让Nginx在一个IP上使用多个证书](https://jiajunhuang.com/articles/2017_10_11-sni.md.html)
- 2017/09/27 - [Haskell: infixl, infixr, infix](https://jiajunhuang.com/articles/2017_09_27-haskell_infix.md.html)
- 2017/09/26 - [Haskell简明教程(五):处理JSON](https://jiajunhuang.com/articles/2017_09_26-learn_you_a_haskell_part_5.md.html)
- 2017/09/25 - [Haskell简明教程(四):Monoid, Applicative, Monad](https://jiajunhuang.com/articles/2017_09_25-learn_you_a_haskell_part_4.md.html)
- 2017/09/22 - [HTTPS 的详细流程](https://jiajunhuang.com/articles/2017_09_22-https_processes.md.html)
- 2017/09/21 - [OAuth2 为什么需要 Authorization Code?](https://jiajunhuang.com/articles/2017_09_21-oauth2.md.html)
- 2017/09/20 - [任务队列怎么写?python rq源码阅读与分析](https://jiajunhuang.com/articles/2017_09_20-task_queue_python_rq.md.html)
- 2017/09/19 - [XMonad 配置教程](https://jiajunhuang.com/articles/2017_09_19-xmonad.md.html)
- 2017/09/18 - [Haskell简明教程(三):Haskell语法](https://jiajunhuang.com/articles/2017_09_18-learn_you_a_haskell_part_3.md.html)
- 2017/09/17 - [Haskell简明教程(二):从命令式语言进行抽象](https://jiajunhuang.com/articles/2017_09_17-learn_you_a_haskell_part_2.md.html)
- 2017/09/11 - [Haskell简明教程(一):从递归说起](https://jiajunhuang.com/articles/2017_09_11-learn_you_a_haskell_part_1.md.html)
- 2017/09/03 - [2017年必装的VIM插件推荐](https://jiajunhuang.com/articles/2017_09_03-2017_vim_plugins.md.html)
- 2017/09/02 - [TCP/IP简明教程 - 从零构建TCP/IP协议(二)连接,断开与拥塞控制](https://jiajunhuang.com/articles/2017_09_02-tcp_ip_part2.md.html)
- 2017/08/12 - [TCP/IP简明教程 - 从零构建TCP/IP协议(这次叫PCT协议)](https://jiajunhuang.com/articles/2017_08_12-tcp_ip.md.html)
- 2017/08/09 - [Lua Manual 阅读笔记](https://jiajunhuang.com/articles/2017_08_09-lua_manual.md.html)
- 2017/07/27 - [Golang Map 源码阅读与分析](https://jiajunhuang.com/articles/2017_07_27-golang_map.md.html)
- 2017/07/26 - [MySQL 零碎知识 - MySQL必知必会](https://jiajunhuang.com/articles/2017_07_26-mysql.md.html)
- 2017/07/18 - [Golang slice 源码阅读与分析](https://jiajunhuang.com/articles/2017_07_18-golang_slice.md.html)
- 2017/07/15 - [经典好书推荐(2017)](https://jiajunhuang.com/articles/2017_07_15-books.md.html)
- 2017/07/11 - [Golang log库 源码阅读与分析](https://jiajunhuang.com/articles/2017_07_11-golang_log.md.html)
- 2017/07/02 - [毕业后一年](https://jiajunhuang.com/articles/2017_07_02-one_year_after_graduate.md.html)
- 2017/06/22 - [ansible 简明教程](https://jiajunhuang.com/articles/2017_06_22-ansible.md.html)
- 2017/06/02 - [自己写个搜索引擎](https://jiajunhuang.com/articles/2017_06_02-write_yourself_a_simple_search_engine.md.html)
- 2017/05/24 - [HTTP 路由的两种常见设计形式](https://jiajunhuang.com/articles/2017_05_24-http_router_design.md.html)
- 2017/05/12 - [Golang的short variable declaration](https://jiajunhuang.com/articles/2017_05_12-golang_short_variable_declaration.md.html)
- 2017/04/26 - [Greenlet和Stackless Python](https://jiajunhuang.com/articles/2017_04_26-greenlet.md.html)
- 2017/04/25 - [写一个简单的ORM](https://jiajunhuang.com/articles/2017_04_25-write_your_own_orm.md.html)
- 2017/04/19 - [从源码看Python的descriptor](https://jiajunhuang.com/articles/2017_04_19-python_descriptor_from_source_code.md.html)
- 2017/04/16 - [Python字符串格式化](https://jiajunhuang.com/articles/2017_04_16-python_string_format.md.html)
- 2017/04/08 - [Gunicorn 简明教程](https://jiajunhuang.com/articles/2017_04_08-gunicorn.md.html)
- 2017/03/29 - [Raft 论文阅读笔记](https://jiajunhuang.com/articles/2017_03_29-raft.md.html)
- 2017/03/06 - [什么是 Golang Comparable Types](https://jiajunhuang.com/articles/2017_03_06-golang_comparable_types.md.html)
- 2017/03/02 - [MapReduce 论文阅读](https://jiajunhuang.com/articles/2017_03_02-map_reduce.md.html)
- 2017/03/02 - [GFS 论文阅读](https://jiajunhuang.com/articles/2017_03_02-gfs.md.html)
- 2017/02/24 - [一起来做贼:Goroutine原理和Work stealing](https://jiajunhuang.com/articles/2017_02_24-goroutine_and_work_stealing.md.html)
- 2017/02/15 - [Go语言的defer, panic和recover](https://jiajunhuang.com/articles/2017_02_15-go_defer_panic_and_recover.md.html)
- 2017/01/24 - [再读vim help:vim小技巧](https://jiajunhuang.com/articles/2017_01_24-vim_manual.md.html)
- 2017/01/24 - [再读 Python Language Reference](https://jiajunhuang.com/articles/2017_01_24-python_language_reference.md.html)
- 2017/01/22 - [设计模式(2)- 深入浅出设计模式 阅读笔记](https://jiajunhuang.com/articles/2017_01_22-head_first_design_patterns_2.md.html)
- 2017/01/21 - [设计模式(1)- 深入浅出设计模式 阅读笔记](https://jiajunhuang.com/articles/2017_01_21-head_first_design_patterns.md.html)
- 2017/01/15 - [Cython! Python和C两个世界的交叉点](https://jiajunhuang.com/articles/2017_01_15-cython_rocks.md.html)
- 2017/01/09 - [socketserver 源码阅读与分析](https://jiajunhuang.com/articles/2017_01_09-socketserver_source_code.md.html)
- 2017/01/08 - [functools 源码阅读与分析](https://jiajunhuang.com/articles/2017_01_08-functools_source_code.md.html)
- 2017/01/07 - [contextlib代码阅读](https://jiajunhuang.com/articles/2017_01_07-contextlib_source_code.md.html)
- 2017/01/06 - [Redis通信协议阅读](https://jiajunhuang.com/articles/2017_01_06-redis_protocol_specification.md.html)
- 2017/01/06 - [Collections 源码阅读与分析](https://jiajunhuang.com/articles/2017_01_06-collections_source_code.md.html)
- 2016/12/31 - [2016年就要结束了,2017年就要开始啦!](https://jiajunhuang.com/articles/2016_12_31-2016_is_over_and_2017_is_coming.md.html)
- 2016/12/29 - [unittest 源代码阅读](https://jiajunhuang.com/articles/2016_12_29-unittest_source_code.md.html)
- 2016/12/26 - [APUEv3 - 重读笔记](https://jiajunhuang.com/articles/2016_12_26-apue_v3.md.html)
- 2016/12/22 - [Mock源码阅读与分析](https://jiajunhuang.com/articles/2016_12_22-mock_source_code.md.html)
- 2016/12/16 - [Thinking in Python](https://jiajunhuang.com/articles/2016_12_16-thinking_in_python.md.html)
- 2016/12/15 - [我的代码进CPython标准库啦](https://jiajunhuang.com/articles/2016_12_15-my_code_in_python_stdlib.md.html)
- 2016/12/09 - [Python零碎小知识](https://jiajunhuang.com/articles/2016_12_09-python_fragments.md.html)
- 2016/12/07 - [工作一年的总结](https://jiajunhuang.com/articles/2016_12_07-work.md.html)
- 2016/12/07 - [Python和单元测试](https://jiajunhuang.com/articles/2016_12_07-python_unittest.md.html)
- 2016/12/06 - [Python 的继承](https://jiajunhuang.com/articles/2016_12_06-python_c3_mro.md.html)
- 2016/12/06 - [MongoDB 的一些坑](https://jiajunhuang.com/articles/2016_12_06-mongodb.md.html)
- 2016/11/29 - [Python的yield关键字有什么作用?](https://jiajunhuang.com/articles/2016_11_29-python_yield.md.html)
- 2016/11/27 - [借助coroutine用同步的语法写异步](https://jiajunhuang.com/articles/2016_11_27-python_coroutine.md.html)
- 2016/11/21 - [Python3函数参数中的星号](https://jiajunhuang.com/articles/2016_11_21-py3k_asterisk.rst.html)
- 2016/11/08 - [使用Git Hooks](https://jiajunhuang.com/articles/2016_11_08-use_git_hooks.rst.html)
- 2016/11/05 - [Token Bucket 算法](https://jiajunhuang.com/articles/2016_11_05-token_bucket.rst.html)
- 2016/11/03 - [nginx配置笔记](https://jiajunhuang.com/articles/2016_11_03-nginx_conf.rst.html)
- 2016/09/15 - [阅读Flask源码](https://jiajunhuang.com/articles/2016_09_15-flask_source_code.rst.html)
- 2016/08/25 - [尤克里里](https://jiajunhuang.com/articles/2016_08_25-ukulele.rst.html)
- 2016/06/20 - [学习使用Bootstrap4的栅格系统](https://jiajunhuang.com/articles/2016_06_20-bootstrap_v4_grid_system.rst.html)
- 2016/06/19 - [利用Github的WebHook完成自动部署](https://jiajunhuang.com/articles/2016_06_19-use_github_webhooks.rst.html)
- 2016/06/18 - [使用Tornado和rst来写博客](https://jiajunhuang.com/articles/2016_06_18-write_blog_with_tornado_and_rst.rst.html)
- 2016/06/05 - [Haskell do notation](https://jiajunhuang.com/articles/2016_06_05-haskell_do_notation.rst.html)
- 2016/05/22 - [foldl 和 foldr 的变换](https://jiajunhuang.com/articles/2016_05_22-foldl_and_foldr.rst.html)
- 2016/05/05 - [Haskell TypeClass 笔记](https://jiajunhuang.com/articles/2016_05_05-typeclassopedia.rst.html)
- 2016/04/03 - [重新捡起你那吃灰的树莓派](https://jiajunhuang.com/articles/2016_04_03-raspberrypi.rst.html)
- 2016/03/14 - [Tornado 源码阅读](https://jiajunhuang.com/articles/2016_03_14-tornado.rst.html)
- 2016/03/06 - [JavaScript权威指南笔记](https://jiajunhuang.com/articles/2016_03_06-notes_on_js_the_definitive_guide.rst.html)
- 2016/03/05 - [Python零碎知识汇总](https://jiajunhuang.com/articles/2016_03_05-python_fragmentary_knowledge.rst.html)
- 2016/02/06 - [C语言的位操作](https://jiajunhuang.com/articles/2016_02_06-bitwise_operation.rst.html)
- 2016/01/25 - [分治](https://jiajunhuang.com/articles/2016_01_25-divide_and_conqure.rst.html)
- 2015/12/05 - [关于python的decorator和descriptor](https://jiajunhuang.com/articles/2015_12_05-python_descriptor_and_decorator.rst.html)
- 2015/10/09 - [程序设计实践笔记](https://jiajunhuang.com/articles/2015_10_09-notes_on_the_practice_of_programming.rst.html)
- 2015/09/05 - [Thinking Recursively](https://jiajunhuang.com/articles/2015_09_05-thinking_recursively.rst.html)
- 2015/06/22 - [Block I/O](https://jiajunhuang.com/articles/2015_06_22-notes_on_linux_kernel_development_chap14.rst.html)
- 2015/03/17 - [如何解读c的声明](https://jiajunhuang.com/articles/2015_03_17-declaration_of_c_pointers.rst.html)
- 2015/01/11 - [关于输入法的猜想](https://jiajunhuang.com/articles/2015_01_11-my_guess_about_input_method.rst.html)
- 2014/12/12 - [C语言与抽象思维](https://jiajunhuang.com/articles/2014_12_12-abstractions_in_c.rst.html)
- 2014/11/04 - [C注意事项](https://jiajunhuang.com/articles/2014_11_04-traps_in_c.rst.html)
- 2014/09/09 - [C语言中点操作符(.)和箭头操作符(->)的不同之处](https://jiajunhuang.com/articles/2014_09_09-dot_and_arrow_in_c_pointers.rst.html)
- 2014/09/07 - [征服C指针笔记 - 数组和指针的微妙关系](https://jiajunhuang.com/articles/2014_09_07-pointer_and_array_in_c.rst.html)
- 2014/08/22 - [关于文件权限的摘记](https://jiajunhuang.com/articles/2014_08_22-unix_file_permissions.rst.html)
- 2014/06/17 - [用crontab完成自动化](https://jiajunhuang.com/articles/2014_06_17-use_cron.rst.html)--------------------------------------------
禁止转载