delphij's Chaos

QA工程师走进酒吧

• Shared Chaos

QA工程师走进酒吧

QA工程师走进酒吧,要了一杯啤酒,要了0杯啤酒,要了999999999杯啤酒,要了一只蜥蜴,要了-1杯啤酒,要了一个sfdeljknesv,酒保从容应对,QA工程师很满意。接下来,一名顾客来到了同一个酒吧,问厕所在哪,酒吧顿时起了大火,然后整个建筑坍塌了。

阅读全文… ( 本文约 484 字,阅读大致需要 1 分钟 )

给博客做个站内全文搜索:纯前端离线倒排索引的设计与取舍

• Development

最近给本站正在使用的Chaos主题 增加并逐步完善了一套在客户端进行的全文检索功能。

早年本站使用的是Google站内搜索,不过换成Hugo以后模板中的这个搜索框也就去掉了,毕竟现在也没什么人看blog了,写下去除了给自己留点记录之外,或多或少其实是一种行为艺术,而本站的读者基本上也都知道如何使用搜索引擎。

不过,有时我自己也会希望在blog里找一些以前的文章,虽然本站在Google搜索中的覆盖率还相当高,但有些时候新的文章会搜索不到,或是其实内容已经过时但仍然被索引。虽然在大语言模型的帮助下我整体重建了分类和标签的标注,但这些对于定位有时还是不太方便。

Hugo作为一个静态站点生成器,其实已经有了不少成熟的本地搜索方案。不过,今年都已经2026年了,vibe一个本地搜索并不困难。这里记录一下这个本地搜索的演化过程,以及在这个过程中的一些工程取舍。

阅读全文… ( 本文约 4441 字,阅读大致需要 9 分钟 )

polyxslt:给浏览器补上一个轻量级 XSLT 处理器

• Development

我给本站的 RSS 和 Atom feed 加了一个纯 JavaScript 实现的 XSLT 处理器,为浏览器移除内建 XSLT 支持做准备。

本站在2021年2月5日为RSS feed和sitemap添加了XSLT样式,后来重新设计本站主题 chaos-theme 时也沿用了这一做法。

这些 XML 文档便于程序读取,但直接给人看就不太直观;XSLT 可以把它们转换成 HTML,让同一份内容同时服务于程序和人类读者。

阅读全文… ( 本文约 3613 字,阅读大致需要 8 分钟 )

Nice Try

• Security

前几天我收到了一封措辞颇为客气的邮件:

Subject: Urgent Link Update – Prevent Misinformation

Dear partner delphij.net,

It has come to our attention that your site still contains a hyperlink to our former domain. This domain is no longer managed by our organization and now carries content that could be misconstrued as affiliated with us, potentially leading to misinformation.

Please replace this outdated link with our official and active website:

Old URL: futureofflight. org
New URL: futureofflight.en-html.org

The old link appears in: https://blog.delphij.net/posts/2009/09/-/

We appreciate your cooperation in promptly correcting this matter to maintain editorial accuracy.

Best regards,

Grace Condie, Web Content Coordinator

Future of Flight Team


This email and its contents are confidential and intended only for the recipient. If you are not the intended recipient, please do not share or use this information and notify the sender.

大意是说,我多年前(2009年)一篇记录去华盛顿州旅行的文章里,链接到了波音飞行博物馆当时使用的域名 futureofflight.org。邮件称该域名已不再由他们维护,并建议我将其替换为「官方且活跃」的所谓新域名:futureofflight.en-html.org。

如你所见,对方还十分贴心地在旧域名中添加了空格,防止我误触;甚至还指出了有问题的 URL,行文措辞也显得颇为得体客气。

阅读全文… ( 本文约 2189 字,阅读大致需要 5 分钟 )

作弊条:在 Nginx 中正确配置自定义 404 页面

• Cheatsheets

最近给 blog 增加了一个自定义的 404 错误页面。像 Hugo 这样的静态网站生成器在构建时,默认会把渲染好的 404 页面直接输出在网站根目录下,即 /404.html。

针对这类页面,我们通常希望:

  1. 当访客访问不存在的网址时,服务器呈现该页面的内容,并且 HTTP 状态码必须是 404。
  2. 当有人(或爬虫)直接在浏览器中访问 /404.html 时,同样呈现其内容,但返回的 HTTP 状态码依然必须是 404,而不是 200 OK。
阅读全文… ( 本文约 1258 字,阅读大致需要 3 分钟 )

姥姥走了

• Tribute

今天收到家里的消息,北京时间2026年8月19日22时11分,姥姥在睡梦中平静地走了。

合影

阅读全文… ( 本文约 595 字,阅读大致需要 2 分钟 )

系统调用、符号版本与数据结构演进:FreeBSD 如何处理兼容性

• Kernel

操作系统在演进过程中经常会碰到一个很现实的问题:一方面,内核和基础系统不可能几十年保持原样,数据结构会变,系统调用会增加,某些早期设计也迟早需要推倒重来;另一方面,一个已经发布出去的ABI 又不能想改就改。如果几十年间内核里的数据结构换了一批又一批,这艘船究竟还是不是当年那艘船?保证它在用户态眼里仍然是同一艘船的关键,就在于 ABI 的稳定性。否则系统每升级一次,过去编译好的程序都有可能需要重新编译,整个生态很快就会变得难以维护。

阅读全文… ( 本文约 4855 字,阅读大致需要 10 分钟 )

如何:不借助第三方服务粗略检测访客是否来自中国大陆

• Development

作为一个平时基本不怎么碰前端代码的开发者,以前偶尔遇到需要折腾前端的需求时,我总有一种「摸着石头过河」的感觉。

最近我就碰到了这样一个棘手的场景:我的某个网站上需要调用的一些服务,在中国大陆的网络环境下访问时经常会出现加载失败或极度缓慢的问题。为了保证用户的浏览体验,比较理想的做法是:检测到访客来自中国大陆时,默认将他们重定向到支持大陆访问的同类型备用服务上。

阅读全文… ( 本文约 1223 字,阅读大致需要 3 分钟 )

AI 时代的「幸福烦恼」:漏洞报告井喷,我们在疲于应对中看见未来

• Security

今年,软件安全领域出现了一个新的变化:AI 辅助下的漏洞发掘,正在迎来真正的井喷式增长。

随着大模型对复杂代码理解能力的跃升,安全研究人员手中的工具获得了质的飞跃。这股浪潮最直观的表现,便是我们作为开源代码维护者,在收件箱里收到的大量问题报告和邮件。

阅读全文… ( 本文约 784 字,阅读大致需要 2 分钟 )