Python 的 signal 处理与 print() 的 reentrant call 运行时错误

在前文《为何 Windows 下无法用 Ctrl+C 终止 Python 进程》中,讲解了 Python 信号处理的基本原理。当时为了撰写文章而编写了一些测试代码,在运行某例测试代码时,发生了奇怪的 reentrant call 运行时错误。代码如下:

……

Fournoas 说:

问:哪个小学生不但拥有大学学历,还成为了国家元首?

答:比卡星大总统——帕比

为何 Windows 下无法用 Ctrl+C 终止 Python 进程

在 Windows 命令行中按下 Ctrl+C 或者 Ctrl+Break 可以结束当前正在执行的命令。通常情况下,这个方法同样适用于 Python 的控制台进程。特别地,Python 内置了一个 KeyboardInterrupt 异常专门用于捕获按下 Ctrl+C 而触发的程序退出:

……

Fournoas 评论《美国反对美国》:

这不巧了么,昭和十六年的日本人也是这样想的。

美国同日本比,东方文化就占了上风。
美国的体制,总体来说建筑在个人主义、享乐主义和民主主义的基础上,但它正明显地输给一个集体主义、忘我主义和权威主义的体制。

VirtualBox 命令行管理工具——VBoxManage

VBoxManage 是 Oracle VM VirtualBox 的命令行管理工具。在 Windows 系统中,软件默认安装在 C:\Program Files\Oracle\VirtualBox 目录下。运行该命令前,可以将命令行的当前路径切换到软件安装路径:

……

    Fournoas 说:

    它搀你离开,千里之外,你无声黑白。
    沉默年代,浓雾散不开,看不清对白。
    会议被安排,演一场意外,你悄然走开。
    它何时死难猜,用一生去等待!

    一道初中奥数题的蒙特卡洛解法
    四只鸭子在一个圆形水池中随机游动。某一时刻,四只鸭子在同一半圆内的概率是多少?

    四只鸭子在一个圆形水池中随机游动。某一时刻,四只鸭子在同一半圆内的概率是多少?

    这个问题必须隐含一个前提:当水池被分为两半后,任意一只鸭子,要么属于这一边,要么属于另一边,不存在同时属于两边或不属于任何一边的情况。可以把鸭子视作质点,如果鸭子正好落在分割线上,则认为此鸭子属于顺时针方向的一侧。

    ……

    为 Hugo 静态网站添加全文检索功能

    Hugo 是一种使用 Go 语言编写的静态网站构建工具。在其官网文章《Search for your Hugo Website》中,介绍几种为静态网站添加全文检索功能的方法。本文采用 Pagefind 为纯静态网站实现全文检索功能。

    Pagefind 是一个独立的命令行工具,可以通过 npm install pagefind 来安装。其原理是:运行 Pagefind 命令,扫描所有静态网页并生成索引;用户搜索时,通过网页中内嵌的 JavaScript 脚本来访问预先生成的索引,从而实现静态全文检索。

    ……

    隐藏 Mastodon 站点信息和用户嘟文列表

    Mastodon 实例默认会在网页版中显示站点的用户数量和嘟文数量。此外,用户主页上会显示所有公开的嘟文。但是对于自建实例,有时候你并不想让别人可以通过网页来访问这些信息和数据。本文以 Mastodon v3.1.3 为例,通过修改代码来实现隐藏目的。本文提供的方法未在其他版本上验证,可能会不兼容。

    ……

    佚名创作者许可

    很多人希望自己发布在个人社交网络空间或者其他小圈子的内容不要被署名转发至他处。换句话说,作者不介意别人转发、修改或再次创作自己的作品,但是不希望再次发布的时候携带原作者的信息以及原始内容的出处,比如用户不希望自己发表的内容被别人以完整截图的形式转发。因此,我模仿 BSD License 的内容,起草了一份「佚名创作者许可 v1.0」,简称 AC 许可,全文如下:

    ……