How collections.deque works?
前言:在 Python 生态中,我们经常使用 collections.deque 来实现栈、队列这些只需要进行头尾操作的数据结构,它的 append/pop 操作都是 O(1) 时间复杂度。list 的 pop(0) 的时间复杂度是 O(n), 在这个场景中,它的效率没有 deque 高。那 deque 内部是怎...
前言:在 Python 生态中,我们经常使用 collections.deque 来实现栈、队列这些只需要进行头尾操作的数据结构,它的 append/pop 操作都是 O(1) 时间复杂度。list 的 pop(0) 的时间复杂度是 O(n), 在这个场景中,它的效率没有 deque 高。那 deque 内部是怎...
在第一篇文章『揭开 asyncio 的神秘面纱 - 从 hello world 说起』中, 我们提出一个问题:Python 协程和生成器行为非常类似,它们究竟是什么关系? 在这篇文章中,我们就来探索、解决这个疑问。
asyncio 是用来编写并发程序的库。在爬虫、客户端应用、等开发场景中, 我们经常会需要将多个网络请求并行化来提高程序性能,而 asyncio 框架正好可以很方便的帮助我们实现这个需求。
某一天,我发现线上的一个进程不打日志了,我觉得很奇怪, 于是用 strace 命令(Linux 下) 看了写这个进程在干吗,结果发现: 它停在一个 read 系统调用上,我从下午 6 点开始盯着它,到晚上 9 点,它一直都没有动静,于是我确定,它卡住了(hang 主了,这个说法或许更专业一点)
编程语言一直是民间讨论的热点话题之一,国庆的时候自己按照教程做了一个简陋版的“解释器”, 这里记录一下自己学习的心路历程。
一个常见的生成器使用示例:把生成器当作迭代器用
以前经常看到这两个术语,但是感觉区分这两个东西并没什么用,而且 日常实践好像也不要求我区分他们。今天恰好自己碰到一个问题:
Python Packaging Python 包管理工具怎样管理一个包的元信息?要考虑哪些问题(versioning, naming…)? wheel vs eggs? (50%) wheel vs sdist? (50%) 怎样优雅的发布 .proto/.thrift 等 RPC 接口定义文...
Table of Contents 1. How venv works? 1.1. 先来做个简单的实验 1.2. 神奇的 lib/pythonX.Y/os.py 1.3. 回到现象 1.4. 正题:venv 是怎样工作的? 1.5. 总结
最近在迁移一个视频服务的断点上传部分。这货之前使用 django 写的,要迁移到一个 tornado 框架。
迷宫自动生成
回顾一把了 2023,也想了想 2024 干点啥好,心里已经基本有思路了。现在是下午六点半, 预约了晚上7点的海底捞,前面排了 240 桌。说回来,我觉得自己的 2024 规划挺好的, 从来没对自己这么有信心过 :)
现在是 2023-04-12,我正在为了写,而写这篇“博客”,真不知道要记录些什么。 在 10 分钟之前,这篇博客的标题与现在还有点不一样,叫做“自驾 G318”, 但对着标题看了十分钟,我真不知道该写啥好。于是我机智的换了个标题,果然, 这废话不就来辽。
最近感悟很多,一定要记下来!
想了一下,春雨比春风更优雅一点。
今天回家路上又在朋友圈看到一个“朋友”的 2020 小结,和这位朋友不是特熟, 随意的扫了几小段,大概内容是讲他自己在今年作出的一些抉择以及对这些抉择的认识。 我当时正好带着耳机听着“感性与理性”这个专辑,具体哪首我也不太记得了, 只知道是下半张专辑的。这个小结内容配上背景乐,我自己也就有了写一个回顾的冲动。
2017-4-26
回顾一把了 2023,也想了想 2024 干点啥好,心里已经基本有思路了。现在是下午六点半, 预约了晚上7点的海底捞,前面排了 240 桌。说回来,我觉得自己的 2024 规划挺好的, 从来没对自己这么有信心过 :)
4年前,我对分布式、数据库、测试这几个领域都很陌生,好奇心与缘分让我和它们相见。 它们每一个都有说不完的故事。而我和它们的故事,则要从测试开始说起。
最近感悟很多,一定要记下来!
有木有类似 tus 的东西? 百度云、Dropbox 等怎样做的大文件上传? 传统用的啥方法?
前面文章有说道『协程和生成器最主要的特征:可以暂停执行和恢复执行』, 它另外一个隐含的意思:普通函数不能暂停和恢复执行。
上篇文章中,我们说到:Python 的协程底层就是基于生成器来实现的。本文,我们会讲生成器的一些历史和相关的基础知识。
在第一篇文章『揭开 asyncio 的神秘面纱 - 从 hello world 说起』中, 我们提出一个问题:Python 协程和生成器行为非常类似,它们究竟是什么关系? 在这篇文章中,我们就来探索、解决这个疑问。
asyncio 是用来编写并发程序的库。在爬虫、客户端应用、等开发场景中, 我们经常会需要将多个网络请求并行化来提高程序性能,而 asyncio 框架正好可以很方便的帮助我们实现这个需求。
记一篇笔记越来越难辽,更别说写博客了。书读的也少了,更别说 paper reading。 饭不想做了,更别说尝试新菜式。FeelUOwn 活跃度越来越低了;flag 列表也没了; 也不出去浪辽。唯有摇号、工作与游戏,使我“快乐”。
FeelUOwn 维护好几年了,它的定位在不断的发生改变,近一两年是把它定位为
UPDATE 2021-02-13 嘛耶,刚写这个笔记的时候其实是 2021-01-25,2333。
记一篇笔记越来越难辽,更别说写博客了。书读的也少了,更别说 paper reading。 饭不想做了,更别说尝试新菜式。FeelUOwn 活跃度越来越低了;flag 列表也没了; 也不出去浪辽。唯有摇号、工作与游戏,使我“快乐”。
FeelUOwn 维护好几年了,它的定位在不断的发生改变,近一两年是把它定位为
UPDATE 2021-02-13 嘛耶,刚写这个笔记的时候其实是 2021-01-25,2333。
前言:在 Python 生态中,我们经常使用 collections.deque 来实现栈、队列这些只需要进行头尾操作的数据结构,它的 append/pop 操作都是 O(1) 时间复杂度。list 的 pop(0) 的时间复杂度是 O(n), 在这个场景中,它的效率没有 deque 高。那 deque 内部是怎...
有些东西,说有用有用,说没用也没用
迷宫自动生成
前面文章有说道『协程和生成器最主要的特征:可以暂停执行和恢复执行』, 它另外一个隐含的意思:普通函数不能暂停和恢复执行。
Table of Contents 1. How venv works? 1.1. 先来做个简单的实验 1.2. 神奇的 lib/pythonX.Y/os.py 1.3. 回到现象 1.4. 正题:venv 是怎样工作的? 1.5. 总结
feeluown 阶段性总结
很多问题以前也遇到过,不用小本本记下来,下次还可能会遇到。
feeluown - music player daemon for human? ps: 由于历史太长,所以丢后面去了。
feeluown 阶段性总结
问题一:VPN 工作在哪一层?
参考网上各大博客或者 RFC 以解决自己对 Socket 编程或者说 TCP/IP 协议的众多疑问。 感觉目前自己理解的也不成体系,记录的内容也都是一些零散知识点。
断点续传 继上个 调研笔记篇 之后,有了这个。
前言:之前也写了上千行和 React 相关的代码了,不过都是复制粘贴,或者无脑模仿。 自己算是个后端工程师,自己经常会吐槽前端开发,尤其是现在的 React。 眼看着新的工作又要使用 React,赶紧把它的一些基础知识学习一下。
几个问题
读这本书的目的:能说出好代码和坏代码之间的差异
前言:在 Python 生态中,我们经常使用 collections.deque 来实现栈、队列这些只需要进行头尾操作的数据结构,它的 append/pop 操作都是 O(1) 时间复杂度。list 的 pop(0) 的时间复杂度是 O(n), 在这个场景中,它的效率没有 deque 高。那 deque 内部是怎...
有些东西,说有用有用,说没用也没用
概述 - 排序 插入排序 空间:$O(1)$ 时间:$1 + … + n => O(n^2)$
学习总结:这一节主要介绍了 Kubernetes API 的一些常见概念,以及这些概念之间的关系, 比如 group, resources,collections。接着简单介绍了 watch 功能,叙述了 Kubernetes 怎样处理大块的数据返回(其实就是分页)。总体来说比较简单。
参考资料: https://kubernetes.io/docs/tutorials/kubernetes-basics/
昨天学习了 Kubernetes 的一些基础概念和命令,今天在本地搭建一个单机版 Kubernetes, 并在上面运行一个 nodejs 的 web 应用。
学习总结:这一节主要介绍了 Kubernetes API 的一些常见概念,以及这些概念之间的关系, 比如 group, resources,collections。接着简单介绍了 watch 功能,叙述了 Kubernetes 怎样处理大块的数据返回(其实就是分页)。总体来说比较简单。
参考资料: https://kubernetes.io/docs/tutorials/kubernetes-basics/
昨天学习了 Kubernetes 的一些基础概念和命令,今天在本地搭建一个单机版 Kubernetes, 并在上面运行一个 nodejs 的 web 应用。
2019-02-11 ~ 2019-02-17
最近在读了一本书《关键对话》,它的副标题是“如何高效能沟通”。 我和每个认识我的朋友说起“我最近在读一本书,关键对话”,大家的反应都是:“啊!2333”。
4年前,我对分布式、数据库、测试这几个领域都很陌生,好奇心与缘分让我和它们相见。 它们每一个都有说不完的故事。而我和它们的故事,则要从测试开始说起。
读完这篇论文,有种盲人摸象的感觉。好在确实对 B-tree/B+-tree 的基本原理有了些了解。 比如一些基础的概念,B-tree 的 order,B-tree 的插入/删除算法(里面涉及到平衡), B+-tree 相比 B-tree/LSM-tree 的优劣势。但它总归只是一个理论, 和实践还是感觉差距太远,...
摘要:学完第一章,了解了 CPU 相关的一些基础知识。8088 指什么?什么是寄存器?CPU 实模式是什么,保护模式是什么?A20 地址总线又是啥?32 位机器为什么只支持 4G 内存?这些小疑问都得到了比较好的解答。另外,看了下这本书的目录,其它章节似乎都是汇编语言语法细节,感觉暂时也没必要学习了。
几个问题
最近在实现一个内部系统的搜索功能,我们这个内部系统是一个运维平台, 功能和 Google Cloud Engine 的控制台特别相似。
MySQL 字段设计基础 MySQL 索引基础知识 MySQL 锁、事务的一些基础知识
某一天,我发现线上的一个进程不打日志了,我觉得很奇怪, 于是用 strace 命令(Linux 下) 看了写这个进程在干吗,结果发现: 它停在一个 read 系统调用上,我从下午 6 点开始盯着它,到晚上 9 点,它一直都没有动静,于是我确定,它卡住了(hang 主了,这个说法或许更专业一点)
最近在迁移一个视频服务的断点上传部分。这货之前使用 django 写的,要迁移到一个 tornado 框架。
本文章按照个人日常的需求整理三个编辑器对它们的支持,不会按照功能来整理。
feeluown - music player daemon for human? ps: 由于历史太长,所以丢后面去了。
记录一下自己过去的使用感受和经验,避免重复踩坑。都是一些琐碎的事情。
今天北京下雨,温度比前两天低了不少,不过我的笔记本好像丝毫没有受 到天气影响,手一放在键盘上,就有种暖暖的感觉。
记录一下自己过去的使用感受和经验,避免重复踩坑。都是一些琐碎的事情。
今天北京下雨,温度比前两天低了不少,不过我的笔记本好像丝毫没有受 到天气影响,手一放在键盘上,就有种暖暖的感觉。
记录一下自己过去的使用感受和经验,避免重复踩坑。都是一些琐碎的事情。
今天北京下雨,温度比前两天低了不少,不过我的笔记本好像丝毫没有受 到天气影响,手一放在键盘上,就有种暖暖的感觉。
2023-05-29:若想深入的传播一个知识或描述一件事情,按“主题”维度来进行组织, 是我目前见过的最有效的方式之一。这本书分四个主题,虚拟化(Virtualization)、 并发(Concurrency)、存储(Persistence)、安全(Security)。今日看了内存虚拟化这块, 由浅入深,引经据典...
学习完的几点个人感受 个人推荐的学习思路 先看死锁概念和四个必要条件 -> 看 wikipedia 然后大概的看一下哲学家就餐问题 -> 看 wikipedia 带着对哲学家问题的疑问,看处理死锁的几种方法 -> 可以看下面给的视频的某些章节 ...
前面文章有说道『协程和生成器最主要的特征:可以暂停执行和恢复执行』, 它另外一个隐含的意思:普通函数不能暂停和恢复执行。
一个常见的生成器使用示例:把生成器当作迭代器用
编程语言一直是民间讨论的热点话题之一,国庆的时候自己按照教程做了一个简陋版的“解释器”, 这里记录一下自己学习的心路历程。
Golang 生态许多测试“框架”都是基于 testing 标准库来构建的。比如 testify,ginkgo 等。 不管使用哪个框架来编写测试用例,我们都可以通过 go test 命令来触发用例的执行, 看代码先看 main,于是就想看看 go test 内部的实现机制如何。
把之前的每周阅读的 Golang 部分总结到这里。
4年前,我对分布式、数据库、测试这几个领域都很陌生,好奇心与缘分让我和它们相见。 它们每一个都有说不完的故事。而我和它们的故事,则要从测试开始说起。
Golang 生态许多测试“框架”都是基于 testing 标准库来构建的。比如 testify,ginkgo 等。 不管使用哪个框架来编写测试用例,我们都可以通过 go test 命令来触发用例的执行, 看代码先看 main,于是就想看看 go test 内部的实现机制如何。
读完这篇论文,有种盲人摸象的感觉。好在确实对 B-tree/B+-tree 的基本原理有了些了解。 比如一些基础的概念,B-tree 的 order,B-tree 的插入/删除算法(里面涉及到平衡), B+-tree 相比 B-tree/LSM-tree 的优劣势。但它总归只是一个理论, 和实践还是感觉差距太远,...
有木有类似 tus 的东西? 百度云、Dropbox 等怎样做的大文件上传? 传统用的啥方法?
有木有类似 tus 的东西? 百度云、Dropbox 等怎样做的大文件上传? 传统用的啥方法?
有木有类似 tus 的东西? 百度云、Dropbox 等怎样做的大文件上传? 传统用的啥方法?
结论一定要写在显眼的地方:(写着写着来个结论) 这些东西不及时记下来,或多或少以后都会忘记把,然后就是重复踩坑喽… 写文档并不是消磨时间的好方式,写代码才是
结论一定要写在显眼的地方:(写着写着来个结论) 这些东西不及时记下来,或多或少以后都会忘记把,然后就是重复踩坑喽… 写文档并不是消磨时间的好方式,写代码才是
断点续传 继上个 调研笔记篇 之后,有了这个。
读这本书的目的:能说出好代码和坏代码之间的差异
读这本书的目的:能说出好代码和坏代码之间的差异
几个问题
了解 django REST framework(可以了解整个 API 设计所涉及的技术
视频有哪些播放技术? HTTP HLS DASH
视频有哪些播放技术? HTTP HLS DASH
视频有哪些播放技术? HTTP HLS DASH
Awesome Command Line Tools
Q&A
怎样持续发布
怎样持续发布
最近更新:2018-09-07
最近在迁移一个视频服务的断点上传部分。这货之前使用 django 写的,要迁移到一个 tornado 框架。
Table of Contents 1. How venv works? 1.1. 先来做个简单的实验 1.2. 神奇的 lib/pythonX.Y/os.py 1.3. 回到现象 1.4. 正题:venv 是怎样工作的? 1.5. 总结
Table of Contents 1. How venv works? 1.1. 先来做个简单的实验 1.2. 神奇的 lib/pythonX.Y/os.py 1.3. 回到现象 1.4. 正题:venv 是怎样工作的? 1.5. 总结
checklist
连接池是什么?它的实现原理? 连接池需要自动处理 Connection Reset 这类错误吗?为什么?不需要,上层做 When to use connection pool? typical usage? https 有什么区别吗?
连接池是什么?它的实现原理? 连接池需要自动处理 Connection Reset 这类错误吗?为什么?不需要,上层做 When to use connection pool? typical usage? https 有什么区别吗?
连接池是什么?它的实现原理? 连接池需要自动处理 Connection Reset 这类错误吗?为什么?不需要,上层做 When to use connection pool? typical usage? https 有什么区别吗?
很多问题以前也遇到过,不用小本本记下来,下次还可能会遇到。
很多问题以前也遇到过,不用小本本记下来,下次还可能会遇到。
Python Packaging Python 包管理工具怎样管理一个包的元信息?要考虑哪些问题(versioning, naming…)? wheel vs eggs? (50%) wheel vs sdist? (50%) 怎样优雅的发布 .proto/.thrift 等 RPC 接口定义文...
今天在公司论坛上看到一个性能优化贴,其中一个童鞋讲了个例子: 用 a==a and b==b 替换 all([a == a, b == b]),然后接口 P95 从 110ms 降到了 65ms
以前经常看到这两个术语,但是感觉区分这两个东西并没什么用,而且 日常实践好像也不要求我区分他们。今天恰好自己碰到一个问题:
以前经常看到这两个术语,但是感觉区分这两个东西并没什么用,而且 日常实践好像也不要求我区分他们。今天恰好自己碰到一个问题:
今天北京下雨,温度比前两天低了不少,不过我的笔记本好像丝毫没有受 到天气影响,手一放在键盘上,就有种暖暖的感觉。
学习完的几点个人感受 个人推荐的学习思路 先看死锁概念和四个必要条件 -> 看 wikipedia 然后大概的看一下哲学家就餐问题 -> 看 wikipedia 带着对哲学家问题的疑问,看处理死锁的几种方法 -> 可以看下面给的视频的某些章节 ...
学习完的几点个人感受 个人推荐的学习思路 先看死锁概念和四个必要条件 -> 看 wikipedia 然后大概的看一下哲学家就餐问题 -> 看 wikipedia 带着对哲学家问题的疑问,看处理死锁的几种方法 -> 可以看下面给的视频的某些章节 ...
前言:之前也写了上千行和 React 相关的代码了,不过都是复制粘贴,或者无脑模仿。 自己算是个后端工程师,自己经常会吐槽前端开发,尤其是现在的 React。 眼看着新的工作又要使用 React,赶紧把它的一些基础知识学习一下。
前言:之前也写了上千行和 React 相关的代码了,不过都是复制粘贴,或者无脑模仿。 自己算是个后端工程师,自己经常会吐槽前端开发,尤其是现在的 React。 眼看着新的工作又要使用 React,赶紧把它的一些基础知识学习一下。
最近在实现一个内部系统的搜索功能,我们这个内部系统是一个运维平台, 功能和 Google Cloud Engine 的控制台特别相似。
一个常见的生成器使用示例:把生成器当作迭代器用
一个常见的生成器使用示例:把生成器当作迭代器用
编程语言一直是民间讨论的热点话题之一,国庆的时候自己按照教程做了一个简陋版的“解释器”, 这里记录一下自己学习的心路历程。
编程语言一直是民间讨论的热点话题之一,国庆的时候自己按照教程做了一个简陋版的“解释器”, 这里记录一下自己学习的心路历程。
这篇文章致力于解决以下疑问(本文以 MySQL 为例):
这篇文章致力于解决以下疑问(本文以 MySQL 为例):
看了许多 dalao 的年终小结,挺好玩的,于是自己跟风记录一下。 最大的事应该是自己换了一个城市。
摘要:学完第一章,了解了 CPU 相关的一些基础知识。8088 指什么?什么是寄存器?CPU 实模式是什么,保护模式是什么?A20 地址总线又是啥?32 位机器为什么只支持 4G 内存?这些小疑问都得到了比较好的解答。另外,看了下这本书的目录,其它章节似乎都是汇编语言语法细节,感觉暂时也没必要学习了。
摘要:学完第一章,了解了 CPU 相关的一些基础知识。8088 指什么?什么是寄存器?CPU 实模式是什么,保护模式是什么?A20 地址总线又是啥?32 位机器为什么只支持 4G 内存?这些小疑问都得到了比较好的解答。另外,看了下这本书的目录,其它章节似乎都是汇编语言语法细节,感觉暂时也没必要学习了。
某一天,我发现线上的一个进程不打日志了,我觉得很奇怪, 于是用 strace 命令(Linux 下) 看了写这个进程在干吗,结果发现: 它停在一个 read 系统调用上,我从下午 6 点开始盯着它,到晚上 9 点,它一直都没有动静,于是我确定,它卡住了(hang 主了,这个说法或许更专业一点)
asyncio 是用来编写并发程序的库。在爬虫、客户端应用、等开发场景中, 我们经常会需要将多个网络请求并行化来提高程序性能,而 asyncio 框架正好可以很方便的帮助我们实现这个需求。
asyncio 是用来编写并发程序的库。在爬虫、客户端应用、等开发场景中, 我们经常会需要将多个网络请求并行化来提高程序性能,而 asyncio 框架正好可以很方便的帮助我们实现这个需求。
上篇文章中,我们说到:Python 的协程底层就是基于生成器来实现的。本文,我们会讲生成器的一些历史和相关的基础知识。
阅读这个 RFC 可能的收获:自己设计协议可以参考
阅读这个 RFC 可能的收获:自己设计协议可以参考
目前这篇文章还比较水,主要是记录了自己之前面试时的一些准备。
最近在读了一本书《关键对话》,它的副标题是“如何高效能沟通”。 我和每个认识我的朋友说起“我最近在读一本书,关键对话”,大家的反应都是:“啊!2333”。
https://arxiv.org/pdf/1702.05843.pdf
我要复现的 bug 是这个:https://github.com/tikv/tikv/issues/8243 ,但我对 rocksdb 不是很了解,年初有一个月接触了它,但现在几乎忘得差不多了。
我要复现的 bug 是这个:https://github.com/tikv/tikv/issues/8243 ,但我对 rocksdb 不是很了解,年初有一个月接触了它,但现在几乎忘得差不多了。
本文章按照个人日常的需求整理三个编辑器对它们的支持,不会按照功能来整理。
本文章按照个人日常的需求整理三个编辑器对它们的支持,不会按照功能来整理。
本文章按照个人日常的需求整理三个编辑器对它们的支持,不会按照功能来整理。
抓到浙江秋天的尾巴,“栖霞坑古道”一日游,盗图若干。