分类: Software

一行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源下载速度过慢的问题

[源码级解析]解决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响应进程间信号

[软件发布][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』错误

Linux下快速生成大量文件的若干小技巧

最近参与了一款类Haystack存储引擎的开发,在开发的后期需要进行性能测试,即需要大量小文件作为测试素材。考虑到文件数量以千万/亿记,因此如何快速生成这些文件十分重要。这篇文章为大家分享一下我的探索过程,以及多种生成大量文件的方案。

继续阅读 Linux下快速生成大量文件的若干小技巧

[源码级解析]分析并解决JavaScript里RegExp类中test()方法结果不固定的情况及其源码解析

在开发一个前端表单过程中,我使用了正则表达式对用户填写的内容进行校验,却在使用过程中发现了奇怪的现象:RegExp类的test()方法对同一字符串,在不同时间竟有不同的结果。本文将为读者分享我解决这一问题的方法及其背后的原理。

继续阅读 [源码级解析]分析并解决JavaScript里RegExp类中test()方法结果不固定的情况及其源码解析

[源码级解析] 巧妙解决并深度分析Linux下rm命令提示参数列表过长的问题

在维护实习单位服务器的过程中,偶然发现一个有350万文件的文件夹需要清理,于是我习惯性执行了rm -rf ./*,却在数秒后被告知“参数列表过长”。在一番折腾过后,我终于通过取巧的办法完成了这一任务,也随着相关内核源码的阅读,了解到了关于Linux Shell的一些有趣特性。

继续阅读 [源码级解析] 巧妙解决并深度分析Linux下rm命令提示参数列表过长的问题

SAE中使用新的.appconfig代替旧的config.yaml进行伪静态等配置

SAE,新浪曾经的王牌服务(对不了解该服务的读者科普一下,SAE可以理解为不限性能上限且提供大量平台化服务的虚拟主机),由于新浪自己的不重视与各云平台的异军突起,已经不再流行(截止本文撰写日期2019年8月28日,在PHP7.4即将推出的当下,居然只支持到PHP7.0),因此相关的文档与教程也越来越旧,比如本文所述的config.yaml。如果要对其进行配置,还得多费一番心思。

继续阅读 SAE中使用新的.appconfig代替旧的config.yaml进行伪静态等配置