打造一个 Man 文档阅读器

准备一份 Man 文档的清单,以备上班摸鱼之用 首先我们需要将 Shell Command 罗列出来,遍历一下 $PATH #!/bin/bash list_shell_command() { ls -lh $1 \ | awk 'BEGIN{FS=" "} {print $9}' \ | xargs whatis »

urllib3 源码分析 II -ConnectionPool

本文分析 urllib3 的连接池设计。所使用代码版本为 1.23,commit sha 7c216f433e39e184b84cbfa49e41135a89e4baa0 续上文 urllib3 源码分析 I - PoolManager 这里以 HTTP 协议为例,其创建的是 HTTPConnection 实例 # urllib3/connectionpool.py class HTTPConnectionPool( »

urllib3 源码分析 I - PoolManager

本文通过 urllib3 来分析 PoolManager 的设计。所使用代码版本为 1.23,commit sha 7c216f433e39e184b84cbfa49e41135a89e4baa0 urllib3 自带连接池,通过 PoolManager 进行管理。默认创建 10 个连接池 # urllib3/poolmanager.py class PoolManager(RequestMethods): proxy »

何时进行 Urldecode

本文关注一个非常简单的问题: 何时进行 urldecode(unquote)。所涉及的代码分别为: Flask 0.12.2, commit sha 571334df8e26333f34873a3dcb84441946e6c64c Werkzeug 0.14, commit sha 5b53d1539147c5db3210e0769d85397ab91f902d Gunicorn 19.7.1, commit sha 328e509260ae70de6c04c5ba885ee17960b3ced5 以 »

切换的魔法 - greenlet

本文所使用的 greenlet 为 0.4.14, commit sha f946722143a9bd65764204202fe0c39fbb526d15 Introduction of greenlet 首先来体验一下 greenlet 的执行流程 from greenlet import greenlet def test1(): print(12) gr2.switch() print( »

XDG 基本目录规范

Abstract XDG Base Directory Specification(XDG 基本目录规范) 对应用程序的文件存储路径给出了一个明确的定义。目前有许多应用都支持 XDG Base Directory Specification,比如 pip,Laravel。具体可以参考 XDG Base Directory support Basics XDG 基本目录规范包含以下概念: XDG_DATA_ »