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