python

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 主了,这个说法或许更专业一点)

iterable and iterator

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

Python Packaging 一些阅读笔记

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

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. 总结

Back to Top ↑

life

2024 干点啥

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

自驾 G318

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

感悟集锦

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

春雨与秋风

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

一个小时回顾 2020

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

Back to Top ↑

work

2024 干点啥

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

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

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

感悟集锦

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

Back to Top ↑

asyncio

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

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

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

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

Back to Top ↑

music

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

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

Back to Top ↑

player

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

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

Back to Top ↑

algorithm

How collections.deque works?

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

Back to Top ↑

python3

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. 总结

Back to Top ↑

feeluown

Back to Top ↑

networking

Socket FAQ 集锦

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

Back to Top ↑

notes

React 基础知识学习笔记

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

Back to Top ↑

data structure

How collections.deque works?

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

Back to Top ↑

k8s

学习 Kubernetes 第三天 - Kubernetes API 学习

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

Back to Top ↑

kubernetes

学习 Kubernetes 第三天 - Kubernetes API 学习

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

Back to Top ↑

reading

读《关键对话》3-5 章

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

Back to Top ↑

database

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

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

读《The Ubiquitous B-Tree》

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

Back to Top ↑

笔记

读《PC Assembly Language》- 小结

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

Back to Top ↑

mysql

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

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

Back to Top ↑

debug

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

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

Back to Top ↑

emacs

vim, emacs or vscode?

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

Back to Top ↑

linux

试用 KDE(扯淡篇)

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

Back to Top ↑

kde

试用 KDE(扯淡篇)

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

Back to Top ↑

gnome

试用 KDE(扯淡篇)

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

Back to Top ↑

Operating System

读《Operating Systems: Three Easy Pieces》

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

死锁学习笔记

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

Back to Top ↑

generator

Back to Top ↑

lexer

Back to Top ↑

golang

How go test works?

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

Back to Top ↑

testing

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

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

How go test works?

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

Back to Top ↑

storage

读《The Ubiquitous B-Tree》

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

Back to Top ↑

踩坑

Back to Top ↑

investigation

Back to Top ↑

upload

Back to Top ↑

CI

构建系统,学到了啥?

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

Back to Top ↑

Jenkins

构建系统,学到了啥?

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

Back to Top ↑

http

Back to Top ↑

代码整洁之道

Back to Top ↑

读书笔记

Back to Top ↑

redis

Back to Top ↑

django

Django 使用笔记

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

Back to Top ↑

video

Back to Top ↑

视频

Back to Top ↑

ffmpeg

Back to Top ↑

pycon2017

Back to Top ↑

网络基础

Back to Top ↑

CI/CD

Back to Top ↑

PaaS

Back to Top ↑

瞎折腾

Back to Top ↑

memory

Back to Top ↑

virtualenv

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. 总结

Back to Top ↑

venv

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. 总结

Back to Top ↑

markdown

Back to Top ↑

socket

连接池-实践(待补充)

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

Back to Top ↑

connection pool

连接池-实践(待补充)

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

Back to Top ↑

tcpdump

连接池-实践(待补充)

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

Back to Top ↑

refactor

Back to Top ↑

重构

Back to Top ↑

packaging

Python Packaging 一些阅读笔记

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

Back to Top ↑

benchmarking

and 替换 all 过程的一些感想

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

Back to Top ↑

iterable

iterable and iterator

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

Back to Top ↑

iterator

iterable and iterator

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

Back to Top ↑

desktop environment

试用 KDE(扯淡篇)

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

Back to Top ↑

死锁

死锁学习笔记

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

Back to Top ↑

deadlock

死锁学习笔记

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

Back to Top ↑

react

React 基础知识学习笔记

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

Back to Top ↑

front-end

React 基础知识学习笔记

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

Back to Top ↑

API

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

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

Back to Top ↑

原理

Back to Top ↑

生成器

Back to Top ↑

词法分析

Back to Top ↑

解释器

Back to Top ↑

flask

Back to Top ↑

sqlalchemy

Back to Top ↑

总结

本命年回忆

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

Back to Top ↑

Assembly

读《PC Assembly Language》- 小结

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

Back to Top ↑

OS

读《PC Assembly Language》- 小结

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

Back to Top ↑

gdb

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

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

Back to Top ↑

coroutine

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

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

Back to Top ↑

系列

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

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

Back to Top ↑

Python

Back to Top ↑

memcached

Back to Top ↑

protocol

Back to Top ↑

interview

关于面试和被面试

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

Back to Top ↑

关键对话

读《关键对话》3-5 章

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

Back to Top ↑

Chaos Engineering

Back to Top ↑

rocksdb

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

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

Back to Top ↑

tikv

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

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

Back to Top ↑

editors

vim, emacs or vscode?

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

Back to Top ↑

vim

vim, emacs or vscode?

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

Back to Top ↑

vscode

vim, emacs or vscode?

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

Back to Top ↑

旅游

Back to Top ↑