Recent Posts

2024 干点啥

回顾一把了 2023,也想了想 2024 干点啥好,心里已经基本有思路了。现在是下午六点半, 预约了晚上7点的海底捞,前面排了 240 桌。说回来,我觉得自己的 2024 规划挺好的, 从来没对自己这么有信心过 :)

“分布式数据库测试”这件小事

4年前,我对分布式、数据库、测试这几个领域都很陌生,好奇心与缘分让我和它们相见。 它们每一个都有说不完的故事。而我和它们的故事,则要从测试开始说起。

读《Operating Systems: Three Easy Pieces》

2023-05-29:若想深入的传播一个知识或描述一件事情,按“主题”维度来进行组织, 是我目前见过的最有效的方式之一。这本书分四个主题,虚拟化(Virtualization)、 并发(Concurrency)、存储(Persistence)、安全(Security)。今日看了内存虚拟化这块, 由浅入深,引经据典...

读《The Ubiquitous B-Tree》

读完这篇论文,有种盲人摸象的感觉。好在确实对 B-tree/B+-tree 的基本原理有了些了解。 比如一些基础的概念,B-tree 的 order,B-tree 的插入/删除算法(里面涉及到平衡), B+-tree 相比 B-tree/LSM-tree 的优劣势。但它总归只是一个理论, 和实践还是感觉差距太远,...

职业规划思考

最近开始找新工作了,但要找什么样的工作呢?还是有点点迷茫,仿佛回到了 2019。

自驾 G318

现在是 2023-04-12,我正在为了写,而写这篇“博客”,真不知道要记录些什么。 在 10 分钟之前,这篇博客的标题与现在还有点不一样,叫做“自驾 G318”, 但对着标题看了十分钟,我真不知道该写啥好。于是我机智的换了个标题,果然, 这废话不就来辽。

感悟集锦

最近感悟很多,一定要记下来!

How go test works?

Golang 生态许多测试“框架”都是基于 testing 标准库来构建的。比如 testify,ginkgo 等。 不管使用哪个框架来编写测试用例,我们都可以通过 go test 命令来触发用例的执行, 看代码先看 main,于是就想看看 go test 内部的实现机制如何。

对听歌以及音乐播放器的一些思考 - (终1)

记一篇笔记越来越难辽,更别说写博客了。书读的也少了,更别说 paper reading。 饭不想做了,更别说尝试新菜式。FeelUOwn 活跃度越来越低了;flag 列表也没了; 也不出去浪辽。唯有摇号、工作与游戏,使我“快乐”。

春雨与秋风

想了一下,春雨比春风更优雅一点。

一个小时回顾 2020

今天回家路上又在朋友圈看到一个“朋友”的 2020 小结,和这位朋友不是特熟, 随意的扫了几小段,大概内容是讲他自己在今年作出的一些抉择以及对这些抉择的认识。 我当时正好带着耳机听着“感性与理性”这个专辑,具体哪首我也不太记得了, 只知道是下半张专辑的。这个小结内容配上背景乐,我自己也就有了写一个回顾的冲动。

vim, emacs or vscode?

本文章按照个人日常的需求整理三个编辑器对它们的支持,不会按照功能来整理。

以复现 bug 为导向的 RocksDB 学习笔记

我要复现的 bug 是这个:https://github.com/tikv/tikv/issues/8243 ,但我对 rocksdb 不是很了解,年初有一个月接触了它,但现在几乎忘得差不多了。

读《关键对话》3-5 章

最近在读了一本书《关键对话》,它的副标题是“如何高效能沟通”。 我和每个认识我的朋友说起“我最近在读一本书,关键对话”,大家的反应都是:“啊!2333”。

2019 年小结

感觉没有写完…但暂时应该也不会继续写了

关于面试和被面试

目前这篇文章还比较水,主要是记录了自己之前面试时的一些准备。

Socket FAQ 集锦

参考网上各大博客或者 RFC 以解决自己对 Socket 编程或者说 TCP/IP 协议的众多疑问。 感觉目前自己理解的也不成体系,记录的内容也都是一些零散知识点。

How collections.deque works?

前言:在 Python 生态中,我们经常使用 collections.deque 来实现栈、队列这些只需要进行头尾操作的数据结构,它的 append/pop 操作都是 O(1) 时间复杂度。list 的 pop(0) 的时间复杂度是 O(n), 在这个场景中,它的效率没有 deque 高。那 deque 内部是怎...

揭开 asyncio 的神秘面纱 - 协程就是生成器?

在第一篇文章『揭开 asyncio 的神秘面纱 - 从 hello world 说起』中, 我们提出一个问题:Python 协程和生成器行为非常类似,它们究竟是什么关系? 在这篇文章中,我们就来探索、解决这个疑问。

揭开 asyncio 的神秘面纱 - 从 hello world 说起

asyncio 是用来编写并发程序的库。在爬虫、客户端应用、等开发场景中, 我们经常会需要将多个网络请求并行化来提高程序性能,而 asyncio 框架正好可以很方便的帮助我们实现这个需求。

小白扯淡-用 GDB 调试卡住的 Python 进程

某一天,我发现线上的一个进程不打日志了,我觉得很奇怪, 于是用 strace 命令(Linux 下) 看了写这个进程在干吗,结果发现: 它停在一个 read 系统调用上,我从下午 6 点开始盯着它,到晚上 9 点,它一直都没有动静,于是我确定,它卡住了(hang 主了,这个说法或许更专业一点)

读《PC Assembly Language》- 小结

摘要:学完第一章,了解了 CPU 相关的一些基础知识。8088 指什么?什么是寄存器?CPU 实模式是什么,保护模式是什么?A20 地址总线又是啥?32 位机器为什么只支持 4G 内存?这些小疑问都得到了比较好的解答。另外,看了下这本书的目录,其它章节似乎都是汇编语言语法细节,感觉暂时也没必要学习了。

本命年回忆

看了许多 dalao 的年终小结,挺好玩的,于是自己跟风记录一下。 最大的事应该是自己换了一个城市。

设计一个呆萌的「搜索建议 API」

最近在实现一个内部系统的搜索功能,我们这个内部系统是一个运维平台, 功能和 Google Cloud Engine 的控制台特别相似。

学习 Kubernetes 第三天 - Kubernetes API 学习

学习总结:这一节主要介绍了 Kubernetes API 的一些常见概念,以及这些概念之间的关系, 比如 group, resources,collections。接着简单介绍了 watch 功能,叙述了 Kubernetes 怎样处理大块的数据返回(其实就是分页)。总体来说比较简单。

React 基础知识学习笔记

前言:之前也写了上千行和 React 相关的代码了,不过都是复制粘贴,或者无脑模仿。 自己算是个后端工程师,自己经常会吐槽前端开发,尤其是现在的 React。 眼看着新的工作又要使用 React,赶紧把它的一些基础知识学习一下。

死锁学习笔记

学习完的几点个人感受 个人推荐的学习思路 先看死锁概念和四个必要条件 -> 看 wikipedia 然后大概的看一下哲学家就餐问题 -> 看 wikipedia 带着对哲学家问题的疑问,看处理死锁的几种方法 -> 可以看下面给的视频的某些章节 ...

试用 KDE(扯淡篇)

今天北京下雨,温度比前两天低了不少,不过我的笔记本好像丝毫没有受 到天气影响,手一放在键盘上,就有种暖暖的感觉。

iterable and iterator

以前经常看到这两个术语,但是感觉区分这两个东西并没什么用,而且 日常实践好像也不要求我区分他们。今天恰好自己碰到一个问题:

and 替换 all 过程的一些感想

今天在公司论坛上看到一个性能优化贴,其中一个童鞋讲了个例子: 用 a==a and b==b 替换 all([a == a, b == b]),然后接口 P95 从 110ms 降到了 65ms

Python Packaging 一些阅读笔记

Python Packaging Python 包管理工具怎样管理一个包的元信息?要考虑哪些问题(versioning, naming…)? wheel vs eggs? (50%) wheel vs sdist? (50%) 怎样优雅的发布 .proto/.thrift 等 RPC 接口定义文...

连接池-实践(待补充)

连接池是什么?它的实现原理? 连接池需要自动处理 Connection Reset 这类错误吗?为什么?不需要,上层做 When to use connection pool? typical usage? https 有什么区别吗?

pip 小吐槽

标题本来是 how pip works, 但是看了 pip 的部分代码,我把它改成了 pip 杂谈。

头疼的位运算

大学没学好也不能怪我,真的,况且我还盲羊补牢呐。。。

How venv works?

Table of Contents 1. How venv works? 1.1. 先来做个简单的实验 1.2. 神奇的 lib/pythonX.Y/os.py 1.3. 回到现象 1.4. 正题:venv 是怎样工作的? 1.5. 总结

Django 使用笔记

了解 django REST framework(可以了解整个 API 设计所涉及的技术

构建系统,学到了啥?

结论一定要写在显眼的地方:(写着写着来个结论) 这些东西不及时记下来,或多或少以后都会忘记把,然后就是重复踩坑喽… 写文档并不是消磨时间的好方式,写代码才是