手工实现 Docker

本文中的代码建议找一台废弃的 vps 中运行 Image 传统上 Linux 内核启动时会首先挂载一个 read-only 的 rootfs,当系统检测其完整性后再决定是否将其切换为 read-write 模式,或者最后在 rootfs 之上挂载另一种文件系统并忽略 rootfs。而在 Docker 中,当 daemon 挂载了 read-only 的 rootfs »

你好,类型

简单地列一下最近在个人项目中使用 mypy 的一些体会,import cycles 这种常见的问题就不再多提了。另外本文所使用的 mypy 版本为 0.600。因为版本变动比较大,可能有些问题以后并不会复现 艰难的选择 def set_non_blocking(fd: int) -> None: flags = fcntl.fcntl( »

PEP 567 Context Variables

contextvars 于 Python 3.7 纳入标准库,之前的版本可以使用 backport,但是不支持 asyncio。为什么这么说呢,看下文你就明白了 应用场景如下 Context managers like decimal contexts and numpy.errstate. Request-related data, such as security »

Quart/peewee async 踩坑记录

这破博客已经一个月没有更新,感觉快要凉了。然而本次更的也并不是技术性文章,仅是前几天 HackDay(24H猝死日)上踩的一些坑。事实上也不算什么坑,毕竟我才只写了 700 来行代码 技术栈为 Quart 0.5.0 peewee-async 0.5.12 首先说一下为什么使用这两个的组合 Quart 是一个拥有和 Flask 一样 API »

深入理解 subprocess.Popen

提起 subprocess 执行 shell 命令,最大的坑就是不去 wait;或者 buf 满的时候父进程没有及时读取数据而去 wait,子进程又想继续写入,从而造成死锁,此问题 文档 中已经写明:建议使用 communicate。但是它是一下子读取完的,数据量大的时候效率不高。所以可以用个 select 自己撸一遍,做一个流式处理 communicate 的内部实现其实也是使用了 »

便当

BiliBili 楼下豪森便利店便当不完全食用指南 黑椒牛柳盖饭 18/04/19 售价:13.9 食材:洋葱(很多)、胡萝卜、牛柳、刀豆、半个鸡蛋 感觉:胡椒味道比较重,牛柳中有筋而且嚼不烂。吃完需要漱口 铁板烤鸡盒饭 18/04/20 售价:15. »

是你!烂代码

首先说的是本人水平并不高,此文只是发泄工作一天的不爽而已。代码已经过混淆处理,基于 Python2.7 1) 某个类中的方法 @staticmethod # any a in b def contained(a, b): if not a: return True if not b: return »