Home
Projects
Resources
Alternatives
Blog
Sign In
Jiajunhuang Blog
Save
Jiajun的编程随想
Overview
Reviews
Resources
Project README
Jiajun's Blog
会当凌绝顶,一览众山小。
关于我
欢迎订阅Telegram Channel:分享后端相关的精选文章
https://t.me/jiajunhuangcom
目录
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源码阅读:key是怎么过期的
2021/05/24 -
Redis源码阅读:字典是怎么实现的
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 -
怎么使用ViewModel 和 RecyclerView
2021/01/03 -
deeplink结合路由处理扩展App的能力
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 -
StackGuard的作用
2020/08/26 -
Goroutine是如何处理栈的?
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 -
程序员的MySQL手册(二): 监控与benchmark
2020/07/23 -
Go设计模式:facade模式和观察者模式
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 -
把USB设备穿透给虚拟机里的系统
2020/06/13 -
Go设计模式:简单工厂模式
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 -
Go使用gdb调试
2020/04/23 -
Golang flag源码阅读及自己实现
2020/04/22 -
Golang context源码阅读与分析
2020/04/22 -
Golang ASM简明教程
2020/04/21 -
善用闭包(closure)让Go代码更优雅
2020/04/21 -
Golang中的并发控制
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 -
Go 1.13的errors挺香
2019/12/18 -
预防缓存击穿
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 -
搭建samba服务器
2019/09/23 -
QT5使用GTK主题
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 -
读《管理的实践》
2019/06/23 -
后端工程师学前端(一): HTML
2019/06/19 -
frp 源码阅读与分析(二):TCP内网穿透的实现
2019/06/15 -
五天不用微信 - 爽得很
2019/06/11 -
frp 源码阅读与分析(一):流程和概念
2019/06/10 -
学习frp源码之简洁的在两个connection之间转发流量
2019/06/09 -
自己动手写一个反向代理
2019/06/08 -
从XMonad迁移到i3
2019/06/08 -
读《债务危机》
2019/06/06 -
socks5 协议详解
2019/06/06 -
服务器IP被ban学到的经验
2019/06/04 -
开启HSTS(HTTP Strict Transport Security)
2019/06/01 -
从Chrome切换到Firefox
2019/06/01 -
网络乞讨之合并支付宝和微信的收款二维码
2019/05/31 -
Linux下当笔记本合上盖子之后只使用扩展显示器
2019/05/31 -
nomad简明教程
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 -
SEO学习笔记
2019/05/14 -
密码技术简明教程(二):散列、消息认证码和数字签名
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 -
使用shairport-sync搭建airplay音频服务器
2019/04/06 -
搭建aria2服务器
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 -
YouCompleteMe ycmd server SHUTDOWN 和 pyenv的问题
2018/12/24 -
Docker组件介绍(二):shim, docker-init和docker-proxy
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 -
Memory leak in net/http
2018/11/24 -
etcd源码阅读与分析(三):wal
2018/11/22 -
etcd源码阅读与分析(二):raft
2018/11/20 -
etcd源码阅读与分析(一):raftexample
2018/11/18 -
虚拟机里的Ubuntu sudo时卡住
2018/11/16 -
Raft论文阅读笔记
2018/11/16 -
Go访问私有变量
2018/11/15 -
避免全局变量
2018/11/13 -
Go的unsafe包
2018/11/12 -
Golang中实现禁止拷贝
2018/11/11 -
人生如戏,全靠演技 -- 《日常生活中的自我呈现》读后感
2018/11/10 -
数据库事务
2018/11/10 -
Golang的反射
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 -
为什么我选择放弃运营微信公众号?
2018/09/01 -
Vim打开很慢,怎么找出最慢的插件?怎么解决?
2018/09/01 -
ArchLinux 怎么降级 package ?
2018/08/29 -
Web后端工程师进阶指南(2018)
2018/08/28 -
macOS ansible 遇到 rsync: --chown=www-data: unknown option
2018/08/28 -
How to implement fork syscall in Golang?
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源码阅读与分析一:sds
2018/02/24 -
Redis源码阅读与分析三:哈希表
2018/02/24 -
Redis源码阅读与分析二:双链表
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 -
短链系统的实现
2017/11/29 -
Git HTTPS 如何保存密码
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 -
Web开发系列(十一):数据库扩展
2017/10/19 -
Web开发系列(十):事务和锁
2017/10/19 -
Nginx作为TCP/UDP的负载均衡
2017/10/18 -
Web开发系列(八):单点故障,负载均衡
2017/10/18 -
Web开发系列(七):缓存,CDN
2017/10/18 -
Web开发系列(六):关系型数据库,ORM
2017/10/18 -
Nginx 请求匹配规则
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 -
MapReduce 论文阅读
2017/03/02 -
GFS 论文阅读
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 -
Redis通信协议阅读
2017/01/06 -
Collections 源码阅读与分析
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 -
工作一年的总结
2016/12/07 -
Python和单元测试
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完成自动化
禁止转载
Open Source Agenda is not affiliated with "Jiajunhuang Blog" Project. README Source:
jiajunhuang/blog
Stars
592
Open Issues
2
Last Commit
1 month ago
Repository
jiajunhuang/blog
Homepage
https://jiajunhuang.com
Tags
Blog
Golang
Goroutine
Haskell
Mysql
Nginx
Programming
Python
Redis
Vim
Open Source Agenda Badge
Submit Review
Review Your Favorite Project
Submit Resource
Articles, Courses, Videos
Submit Article
Submit a post to our blog
From the blog
Dec 11, 2022
How to Choose Which Programming Language to Learn First?
From the blog
Dec 11, 2022
How to Choose Which Programming Language to Learn First?
Home
Projects
Resources
Alternatives
Blog
Sign In
Sign In to OSA
I agree with
Terms of Service
and
Privacy Policy
Sign In with Github