一行Golang代码引发的血案——全网最详细分析2020年3月Let’s Encrypt证书吊销事故

Let’s Encrypt作为一家免费提供SSL证书的组织,旨在推进互联网向更安全的HTTPS迁移,受到了大量小型网站的支持和认可。然而很多站长在3月3日收到了来自Let’s Encrypt名为ACTION REQUIRED: Renew these Let's Encrypt certificates by March 4的邮件,警告站长尽快更新证书。那么为什么需要更新证书?不更新证书有什么危害?如何更新证书?本文将为读者分析本次Let’s Encrypt证书漏洞事故的真相。

继续阅读 一行Golang代码引发的血案——全网最详细分析2020年3月Let’s Encrypt证书吊销事故

为CentOS/RHEL等发行版中的systemd服务配置ulimit限制

近年来,几乎所有现代Linux发行版都将service替换成了systemd以实现更完善的服务管理,而随之变化的是相关用户策略的变化。可能不少读者都遇到过systemd服务提示打开文件数过多,但设置ulimit无效的问题,尤其是对于数据库这种并发数较大的业务。本文将为读者讲解如何正确地为systemd的服务配置ulimit限制。

继续阅读 为CentOS/RHEL等发行版中的systemd服务配置ulimit限制

巧解国内网络环境下部分yum源下载速度过慢的问题

众所周知,CentOS下的大部分软件源服务器都在海外,因此使用这些软件源下载软件速度会非常慢,甚至完全下载不了。对于官方源我们可以使用Tuna等国内镜像加快速度,但对于DockerMySQLRemi等非官方源则无能为力。本文将介绍一个巧妙解决这一问题的方法,以便加快非官方源安装速度。

继续阅读 巧解国内网络环境下部分yum源下载速度过慢的问题

浅谈setTimeout与setInterval函数『不为人知』的第三个参数

提到JavaScript下的setTimeout()setInterval()函数,接触过JavaScript的读者一定非常熟悉:两个函数都接收一个函数和一个延时两个参数,前者用于设置超时,后者用于设置定时执行。但其实这两个函数除了以上两个参数外还有第三个参数。

继续阅读 浅谈setTimeout与setInterval函数『不为人知』的第三个参数

[源码级解析]解决Aegisub3.2.2 MacOS版本音量/缩放滑块无法使用的BUG

Aegisub是一款简单好用的开源字幕制作软件,广受字幕制作者欢迎。但Aegisub官方最新版本是2014年更新的3.2.2版本,距今已有6年历史,存在着大量未修复的BUG与兼容性问题。其中MacOS下的Aegisub存在一个致命的BUG,即波形视图右侧的音量/缩放滑块无法正常使用,只能在0%和100%两者间调整,导致要么看不到波形(听不到音频),要么波形爆满(严重削波)。本文将分析该问题存在的原因,并给出一个修复该问题的编译版本,便于字幕制作者正常使用。

继续阅读 [源码级解析]解决Aegisub3.2.2 MacOS版本音量/缩放滑块无法使用的BUG

进程间信号简述及使用Python响应进程间信号

在软件开发,尤其是命令行软件开发过程中,我们经常会遇到需要响应用户中止热键的情况:如Ctrl+C(中止程序)、Ctrl+Z(Shell下发送SIGTSTP信号)等,这些热键最终会以进程间信号的方式通过操作系统传递给进程。一个完善的软件应该能通过合适的方式处理各种信号,并执行用户所需的任务,以Python为例,它提供了signal模块便于我们捕获、处理信号,本文将为读者介绍常见的进程间信号与Python下使用signal响应进程间信号的方法。

继续阅读 进程间信号简述及使用Python响应进程间信号

我的2019

在2019年的最后一天,我起了个大早,为下午的操作系统考试做准备。没想到的是,就算是在跨年的这一天也会有考试;更没想到的是,这可能是我学生时代剩余不多的五六场考试之一。小学、初中、高中、大学……十六年学生生涯即将结束,我真的做好准备了吗?

继续阅读 我的2019

逐步深入解决DS3617xs黑群晖提示『您所指定的页面不存在』的故障

群晖的家用、商用NAS因其易用性与稳定性饱受好评,但众所周知买系统送主机的群晖NAS价格高昂.对于不想花那么多钱的用户,我们有第三方Bootloader:Jun’s Mod来实现所谓的『黑群晖』。Jun’s Mod V1.02b中存在一个BUG,会导致DSM系统文件损毁,故障表现为可以ping通,ssh可以连接,但无法打开网页控制面板,提示『您所指定的页面损坏』。本文将给出在保留用户数据情况下解决该故障的一种方法。

继续阅读 逐步深入解决DS3617xs黑群晖提示『您所指定的页面不存在』的故障

JavaScript实现点击contenteditable的span标签后全选标签文字,类似于this.select()方法

在JavaScript中,我们通常使用this.select()实现可编辑文本框中的全选操作,但对于通过添加contenteditable="true"参数来实现可编辑的span标签,这个方案却并不能奏效,需要多写一些代码来实现相同的功能。这篇文章为大家分享一种在可编辑的span标签内实现全选的方法。

继续阅读 JavaScript实现点击contenteditable的span标签后全选标签文字,类似于this.select()方法

[软件发布][jQuery-WP53-Fix]巧解WordPress5.3版本出现的『$ is not a function』错误

WordPress 5.3在2019年11月13日发布,带来了PHP7.4支持以及其他各项功能更新。但大量用户却在更新后遇到了插件失效的问题,打开开发者工具提示『$ is not a function』。本文给出一个简单的方法来解决这一错误,在插件更新适配前,保证插件的正常运行。

继续阅读 [软件发布][jQuery-WP53-Fix]巧解WordPress5.3版本出现的『$ is not a function』错误