文章17
标签36
分类10

解决 hexo-katex 错误地将中文编码为 HTML 字符实体

偶然发现博客正文中的中文都被编码成了 HTML 字符实体,也就是中文「静」被编码为 静,在 UTF-8 中一个中文字符由三个字符编码,而转成 HTML 字符实体后一个中文字符占 8 个字节,增加了 167%。一篇博客正文占据主要部分,四舍五入,转换后 HTML 文件体积比直接使用 UFT-8 编码大了一倍。

Python 手动实现数字验证码识别

(迁移文章,本文写于2019年8月3日)本人维护的一个项目 中北信息 小程序需要模拟登录来获取信息,这就需要在后台识别验证码。需要识别的验证码比较简单且为纯数字,有简单到可以忽略不计的变形,像下面这个样子。

使用 TypeScript 编写命令行工具并发布到 npm

最近在研究优化在国内访问静态博客的时间,其中有一个方案是将生成的文件存储在对象存储,然后再通过 CDN 回源对象存储。确定方案后使用 七牛云 做一个加速实验,由于要将生成的文件上传,又要将这个过程尽可能自动化,而七牛云只提供 SDK,要上传只能将密钥硬编码在代码中,这是很危险的。

因此有了编写一个命令行工具的想法,由于最近在学习 TypeScript,就决定用它来写。

TopK 问题两种解决方案:堆、快排变形

这里的 TopK 不单指最大的 k 个元素,也可以是最小的 k 个元素,具体的例题可以看 剑指 Offer 40. 最小的k个数。本文的代码均为可以在力扣提交的题解,故不包含头文件和 main 函数。

使用 Python 实现 DES 算法

没有前言,直接进入正题,若需要关于 DES 的详细介绍,请看 数据加密标准 - 维基百科,自由的百科全书。若无特殊说明,本文章所有配图均来自维基百科。第一次使用工具函数时会进行详细介绍。本文章使用的全部代码可以在 Gist 上找到。

解决 Clion 无法识别 WSL Ubuntu 20.04 LTS

注:本文提到的 WSL 均为 WSL 1。

最近在学网络编程,需要在 Linux 下编译 C 源码,可我日常使用 Windows,在虚拟机里操作又不是很方便。于是 Clion + WSL 成了几乎完美的解决方案,在 Windows 下编码,Linux 环境下编译运行。

但是由于一个意外需要卸载已安装的 WSL(Ubuntu 18.04 LTS),凑巧巨硬最近发布了 Ubuntu 20.04 LTS 的 WSL,于是尝试了一下。尴尬的是最新版本的 Clion 还不能识别 20.04,但问题不大。

InfluxDB 内存优化

最近给小程序的后端日志加上了实时输出到前端功能,为了展示就得保存日志,又考虑到日志是时序数据,自然就选择了时序数据库 InfluxDB,并且通过 Docker 部署。刚上线的一两天没有什么问题,各方面运行都很平稳,没过几天的一个早上突然收到了阿里云的报警,说内存占用超过了 95%。

这便是噩梦的开始。

Windows 上 DNS 解析慢,但 nslookup 正常

今天一大早开始在电脑上所有的网站打开变得极慢,通过 SSH 连接服务器也非常慢,但 IP 直连速度又是正常的。初步猜测是 DNS 问题。

MySQL 多关键词匹配

在 MySQL 中像搜索引擎一样查找多个关键词只使用 LIKE 实现比较困难,如果硬写也可以拼接很长的 SQL 实现,但有点太暴力了。因此需要一个简洁的方法来实现这个需求,这就是这篇文章要探讨的问题。

解决“由于系统缓冲区空间不足或队列已满,不能执行套接字上的操作”

最近写了个小工具,需要往 MySQL 中快速写入数据(5000 条数据左右)。刚开始很正常,跑了几分钟后报了一个错误 由于系统缓冲区空间不足或队列已满,不能执行套接字上的操作,这个问题以前也遇到过,只是通过简单的重启解决。虽然这次也通过重启把系统恢复正常了,可数据还没写到数据库里呢,于是花了点事件把这个问题彻底解决。