- 文章
在前文《为何 Windows 下无法用 Ctrl+C 终止 Python 进程》中,虽然解释了产生该现象的原因,但却没有解释为何同样的代码在 Linux 下就可以用 Ctrl+C 来中止。究其原因,是由于在操作系统层面,Linux 和 Windows 对 SIGINT 的信号处理方式不同所导致的。
……
在前文《为何 Windows 下无法用 Ctrl+C 终止 Python 进程》中,讲解了 Python 信号处理的基本原理。当时为了撰写文章而编写了一些测试代码,在运行某例测试代码时,发生了奇怪的 reentrant call 运行时错误。代码如下:
……
在 Windows 命令行中按下 Ctrl+C
或者 Ctrl+Break
可以结束当前正在执行的命令。通常情况下,这个方法同样适用于 Python 的控制台进程。特别地,Python 内置了一个 KeyboardInterrupt
异常专门用于捕获按下 Ctrl+C
而触发的程序退出:
……
VBoxManage 是 Oracle VM VirtualBox 的命令行管理工具。在 Windows 系统中,软件默认安装在 C:\Program Files\Oracle\VirtualBox
目录下。运行该命令前,可以将命令行的当前路径切换到软件安装路径:
……
四只鸭子在一个圆形水池中随机游动。某一时刻,四只鸭子在同一半圆内的概率是多少?
这个问题必须隐含一个前提:当水池被分为两半后,任意一只鸭子,要么属于这一边,要么属于另一边,不存在同时属于两边或不属于任何一边的情况。可以把鸭子视作质点,如果鸭子正好落在分割线上,则认为此鸭子属于顺时针方向的一侧。
……
Hugo 是一种使用 Go 语言编写的静态网站构建工具。在其官网文章《Search for your Hugo Website》中,介绍几种为静态网站添加全文检索功能的方法。本文采用 Pagefind 为纯静态网站实现全文检索功能。
Pagefind 是一个独立的命令行工具,可以通过 npm install pagefind
来安装。其原理是:运行 Pagefind 命令,扫描所有静态网页并生成索引;用户搜索时,通过网页中内嵌的 JavaScript 脚本来访问预先生成的索引,从而实现静态全文检索。
……
Mastodon 实例默认会在网页版中显示站点的用户数量和嘟文数量。此外,用户主页上会显示所有公开的嘟文。但是对于自建实例,有时候你并不想让别人可以通过网页来访问这些信息和数据。本文以 Mastodon v3.1.3 为例,通过修改代码来实现隐藏目的。本文提供的方法未在其他版本上验证,可能会不兼容。
……
很多人希望自己发布在个人社交网络空间或者其他小圈子的内容不要被署名转发至他处。换句话说,作者不介意别人转发、修改或再次创作自己的作品,但是不希望再次发布的时候携带原作者的信息以及原始内容的出处,比如用户不希望自己发表的内容被别人以完整截图的形式转发。因此,我模仿 BSD License 的内容,起草了一份「佚名创作者许可 v1.0」,简称 AC 许可,全文如下:
……
一张经常被使用的关系图
JavaScript 中的每个对象都有一个 [[Prototype]]
的内部属性,该属性指向的对象就是当前对象的原型。每个原型对象也有自己的原型,依次向上遍历形成原型链。当我们访问一个对象的属性或者方法时,如果在当前对象中没有找到该属性或者方法,会通过原型链依次从原型对象中查找,从而实现对象继承的功能。我们可以通过 __proto__
属性或者 Object.getPrototypeOf()
/ Object.setPrototypeOf()
方法来访问对象的原型:
……
起因是某天在网上看到如下视频:
视频下面的评论自然是一边倒地谴责打人的男孩和教唆打人的家长,也有指责看客冷漠,还有人发动群众要对男孩进行网暴,甚至发出死亡威胁的。
大部分人通过这个视频,会脑补出一部「野蛮家长霸凌孤儿寡母,冷漠看客袖手旁观」的苦情剧。然后键盘看客们按耐不住的「正义感」就喷薄而出,大有致「施暴者」于死地而后快的势头。但是只要认真看完视频可以发现,那个所谓的「施暴者」男孩并不太会打架,甚至动作有些胆怯,再结合视频开头男孩的父亲拉开男孩衣领,对周围人说的那句「都给我们抓破了」,我们还能脑补出另外一个故事:打人的男孩之前被女人怀里的那个孩子欺负了,他的父亲和女人理论,女人非但不道歉,还说:「小孩子打架又没啥关系」之类的话激怒了男孩的父亲。气急败坏的父亲心里肯定想:「你不是小孩子打架没关系么,那我就让我家孩子揍你家娃」,于是就发生了视频中的那一幕。
……