≡articles //snippets ./categories $uses ~about /search

There is a crack, a crack in everything. That’s how the light gets in.

Leonard Cohen, “Anthem”, 1992

独立开发实战笔记,关于调试、编程和底层技术。每一篇都是一次真实的排查,从第一条报错信息开始,到 root cause 结束。

since 2020.12 · 67 篇

精选

开发5 min
$ du -sh .git
421M

把 1000 行代码变成开源项目:git 历史清理、单实例保护和“多少行值得开源”

系列最后一篇。前四篇讲了权限、模型下载、产品减法和 UI 实现,那些都是“把它做出来”。这篇讲怎么把它开源出去,两个状态的差距比我想的大。

阅读全文
Cloudflare WAF 误杀 Googlebot 排查实录:一条托管规则让整站 403站点挂在 Cloudflare 后面,搜索展现量在 6 月最后一周从 151 掉到个位数,之后整整六周没起来,而服务器本身一切正常。这是一次典型的 Cloudflare WAF 误杀 Googlebot:拦截发生在 CDN 边缘,源站的错误日志里连一条异常记录都没有,访问监控全绿,直到 8 月中旬才从 Search C网站优化 用 PyObjC 画一个 40fps 的胶囊波形动画:NSTimer 里的三个坑talk2clip 录音时屏幕顶部有一个 40fps 跳动的胶囊波形。实现它本来以为 20 分钟,实际踩了三个坑:一是 NSTimer 在 rumps 环境根本不触发(画面死水),二是 PyObjC 里 NSGradient 画出的是“方块光球”(不是圆的),三是把 UI 调用塞进后台线程的线程安全。本文按踩坑顺序讲,开发 做减法:我把 macOS 语音助手从功能堆叠砍到只剩核心我的语音助手项目曾经有 AI 对话、5 种界面、应用路由、HTTP 服务,然后我砍掉了一切,只留“按住说话→粘贴”。这不是放弃,是第一次把项目做到能天天用。本文记录砍掉每一样东西时的判断依据,以及“轻量”为什么是这类语音助手工具的生存之道。AI 国内下载 AI 模型太难了?一条实测可行的完整方案(HuggingFace 篇)不仅是 whisper:凡是走 huggingface_hub 的模型(LLM、ASR、扩散模型)国内下载都可能失败。本文基于实测给出完整排查路径:429 全局限流的机制与波动、hf-mirror 的真实坑(HEAD 308 重定向)、本地转换代替下载、断点续传与多线程方案,以及一条“一次配置离线用”的终局路径。AI macOS 15 辅助功能授权添加了却不生效?一次排查记录辅助功能面板显示已授权、程序却收不到按键,macOS 15 上 CLI 二进制授权有系统级坑。本文记录完整排查:四个失败路径、一个关键转折、两条可用方案,以及一个因此潜伏的隐藏 bug。开发 服务器攻击日志半年复盘:5 万次 XML-RPC 探测与 0 次成功入侵先说结果:半年下来被打了五万多次,成功入侵 0 次。我把这台服务器上两个 WordPress 站从 3 月到现在的 nginx 访问日志翻了一遍,按攻击类型、按月份、按单日分布做了统计,整理成这份服务器攻击日志复盘。起因是前几天排查收录问题时顺手看了眼日志,发现 xmlrpc.php 的请求量比自己以为的大得多,就想知网站优化 SEO 体检脚本:从 51 条短 meta 到一条命令扫完SEO 体检脚本,是这个月我做的最值的一件事。起因是 Bing Webmaster 后台的一张报错清单:20 页图片缺 alt、51 条 meta description 太短,外加 H1 结构问题。逐页手改到第三页我就放弃了,决定把整个排查过程固化成脚本。这篇文章记录从报错到脚本的全部弯路,包括三个一开始完全没想到的网站优化 WordPress 挂马排查实录:4 种典型后门从发现到清除排查类内容有个尴尬:拿生产站练手,一次误删就交代了。这次 WordPress 挂马排查的完整流程,是在一个隔离环境里跑的:独立的 WordPress 测试站(127.0.0.1:8899),注入 4 种典型后门,从发现、定位、清除到验证,完整走了一遍。下面每条命令的输出都是真实执行结果,不是示意图。网站优化 systemd timer 替代 cron 实战:从 crontab 静默清空到全量迁移凌晨 3 点收到监控报警:证书续期任务没跑。登录服务器一看,crontab 里那条 certbot renew 消失得干干净净。Linux Docker 网络排查实录:bridge / 自定义网络 / DNS 隔离三个容器,一个 docker-compose.yml,docker compose ps 全绿,docker compose logs 没报错。但浏览器打开就是 502,应用日志里 Redis 连接超时。这是一次真实的 Docker 网络排查过程,从症状到根因,每一步都有命令和输出。Docker

代码片段

全部 26 条
有新文章时,发一封邮件给你 一个月两到四封,只发新文章。

这里没有「10 分钟上手 XXX」。有的是从 502 Bad Gateway 到根因的三天排查,从 MySQL 突然慢了 100 倍到那一行索引配置的完整链路。不是教程,是 debug log。

常写
WordPress · Nginx · Docker · Linux · macOS
联系
[email protected]
订阅
邮件 · RSS
最近更新
2026-09-16