thumbnail
为什么 eventlet 在 Apple M1 上卡住了?
本文同步发布于字节话云公众号。 背景 前段时间老的 MacBook 到了退休的年纪,听了好友的安利换了基于 Apple M1 的 MacBook,在运行一个项目时发现原本能正常执行的任务在新笔记本上就一直是进行中,由此展开了一段 Bug 调试之旅。 初步探索 有如下几点信息: Python 版本为 2.7.10 +,eventlet 版本为 v0.…
thumbnail
从零打造 GitHub 钉钉机器人
本文同步发布于字节话云公众号。 背景 很多人都有自己的 GitHub 项目,可能需要将仓库中的事件自动通知到钉钉中。尽管钉钉群里可以添加专门的 GitHub 机器人,但它所支持的事件类型非常有限,基本只有 push 相关的事件。想要支持更多的事件,不如自己动手打造一个机器人。 于是,实现了一个 GitHub to DingTask 的项目。该项目通…
thumbnail
为什么使用 PyCharm 调试没有按预期进入断点?
本文同步发布于字节话云公众号。 前言 最近调试一段复杂代码的时候遇到一个问题,我在某处打了断点,并认为按照预期应该会运行到指定的断点,但遗憾的是并没有。几经排查,发现了一处隐藏的“坑”。 用简单的代码复现 简单起见,用下面这段代码来复现遇到的问题: class Person(object): def __init__(self, id): self…
基础设施代码化(IaC)的自动化配置与编排
前言 本文同步发布于 Linux 中国公众号。 云上运维,那就是和云上资源和产品打交道,无疑会涉及到一系列的资源部署。比如简单地使用一台云服务器,就需要运维人员依次创建 VPC、VSwitch、安全组和云服务器实例,如果想创建一个集群,那还要进一步创建负载均衡、数据库和多个云服务器实例。 随着业务规模的不断扩大,IT 系统和环境日益复杂,人工一个一…
thumbnail
Python 命令行大乱斗
前言 本文首发于 凌云时刻公众号。 当你想实现一个命令行程序时,或许第一个想到的是用 Python 来实现。比如 CentOS 上大名鼎鼎的包管理工具 yum 就是基于 Python 实现的。 而 Python 的世界中有很多命令行库,每个库都各具特色。但我们往往不知道其背后的设计理念,也因此在选择时感到迷茫。这些库的作者为何在重复造轮子,他是从哪…
限流后,你可以通过指数退避来重试
一、背景 最近做云服务 API 测试项目的过程中,发现某些时候会大批量调用 API,从而导致限流的报错。在遇到这种报错时,传统的重试策略是每隔一段时间重试一次。但由于是固定的时间重试一次,重试时又会有大量的请求在同一时刻涌入,会不断地造成限流。 这让我回想起两年前在查阅Celery Task 文档的时候发现可以为任务设置 retry_backoff…
PEP 584:字典合并操作符来了
一、前言 就在本周,字典合并特性(PEP 584)的提交被合入了 CPython 的主干分支,并在 2020-02-26 发布了 Python 3.9.0a4 预览版本。 那什么是字典合并操作符呢?在回答这个问题前,我们不妨回忆下集合的合并操作。当我们想要对两个结合做合并操作时,会怎么做呢? >>> s1 = {1, 2} >>&…
thumbnail
图表即代码:使用 Diagrams 制作云系统架构原型图
一、前言 昨天发现了一款非常不错的云系统架构原型图制作库 Diagrams,通过它,我们便可以使用代码的方式绘制诸如阿里云、AWS、Azure、K8S 等系统架构原型图。 相比于在 UI 上对各种图标进行拖拽和调整,这种方式更符合我们程序员的使用习惯。 本文不仅要介绍下这个库,也想说说我是如何参与到这个库中以支持阿里云资源。 二、安装 Diagra…
thumbnail
Python 命令行之旅:argparse、docopt、click 和 fire 总结篇
一、前言 在近半年的 Python 命令行旅程中,我们依次学习了 argparse、docopt、click 和 fire 库的特点和用法,逐步了解到 Python 命令行库的设计哲学与演变。 本文作为本次旅程的终点,希望从一个更高的视角对这些库进行横向对比,总结它们的异同点和使用场景,以期在应对不同场景时能够分析利弊,选择合适的库为己所用。 本系…
thumbnail
一行命令自动带上口罩
前言 2019 年底开始蔓延的新型肺炎疫情牵动人心,作为个体,我们力所能及的就是尽量待在家中少出门。 看到一些朋友叫设计同学帮忙给自己的头像戴上口罩,作为技术人,心想一定还有更多人有这样的诉求,不如开发一个简单的程序来实现这个需求,也算是帮助设计姐姐减少工作量。 于是花了些时间,写了一个叫做 face-mask 的命令行工具,能够轻松的给图片中的人…