玟茵开源社区知识库

WenYin Open Source Wiki

用 AI 生成一段 15 秒的动画短片,流程看起来很简单:写提示词、生成关键帧、图生视频、合成。实际做下来,提示词结构、台词时长、水印去除、模型能力边界每一环都有明确的坑,而且大多数不是”调参能解决”的。

这篇按两轮重制的实际过程记一遍,结论都可以直接拿去用。

阅读全文 »

把一套 Linux 上的 clash/mihomo 管理脚本移植到 FreeBSD,最麻烦的不是 shell 语法(虽然也够麻烦),而是大家默认「Linux 能跑的 TUN,FreeBSD 也能跑」。实际测下来,mihomo 在 FreeBSD 上的两条原生路径都是死的,最后只能换后端。

这篇按实际排查顺序记一遍:先解决虚拟机出网,再试 TUN 的三条路,最后是八个 FreeBSD 特有的适配缺陷。

阅读全文 »

升级到 Fedora 45 之后,我做了一件很平常的事:把 fedora 和 updates 两个仓库切到阿里云镜像。改完文件、makecache 也跑通了,看起来一切正常。

直到第二天发现系统还在连 mirror.nju.edu.cn。

这篇记录了这次踩坑的全过程,以及 Fedora 45 在仓库配置上真正的结构变化——它比”换个 baseurl”要复杂一层,而且旧的经验在这里会直接失效。

阅读全文 »

给一套已经上线的系统加「首次登录必须改密码」,功能本身很小——但它是个跨切面需求:登录、鉴权守卫、管理员操作、初始化数据,每一处都得知道这件事。

这类需求最容易做法是「在守卫里判断一下」,然后很快发现:登录响应没告诉前端要不要跳转、管理员重置完口令用户进不去、初始化脚本种下去的管理员第一步就被拦住。

这次的做法是先把开关的语义定死,再逐处接线。记一下过程,以及容器里踩的两个坑。

阅读全文 »

维护一个「跟着上游走、又带自己改动」的分支,最容易低估的不是冲突数量,而是上游顺手把你依赖的基础设施也改了。

这个月的一次上游同步可以当样本:5231 个文件、+21.6 万 / −61.1 万,看着吓人,但真正与本分支有交集的只有约 80 个文件、11 个内容冲突。冲突一个下午就解完了,剩下的时间全花在「上游把测试框架整个换掉」这件事上。

这篇按这次的实际顺序记一遍。

阅读全文 »

改完代码、跑通测试、部署上线——到这一步很多人就收工了。

但这个月有四次,“看起来修好了”和”真的修好了”之间差着一次取证:一次是日志里还有旧报错、一次是打包显示成功但关键步骤没执行、一次是审计报告把数据问题写成了代码 bug、还有一次是构建失败其实是本机网络的问题。

这篇记一下取证的具体做法。

阅读全文 »

给一套跑了多年的管理后台补移动端,最常见的做法是再做一套 m.* 视图:复制一份模板、改改布局,按 UA 分流出不同的控制器。

这个方案看着干净,实际代价很高——这个项目有 488 个视图,复制一份就是 488 个新的维护点,之后每个功能改动都要改两遍。

这次换了个做法:不加视图,只重做响应式层。三个文件、一次断点调整,覆盖从 320px 手机到桌面的全部宽度。过程里踩的坑比预想的多,记一下。

阅读全文 »

用 Rust + egui 重写一个 MarkText 风格的 Markdown 编辑器,功能本身不难——难的是三件事:输入法要能用中文、导出要能看、大文件要能不卡。

这三件事有个共同点:写完不报错,用起来才发现不行。输入法不接就是打不出字,导出不处理就是一堆方块,每帧哈希就是滚动条抖。这篇把这三个方向上的具体坑记下来,顺带记两处桌面集成的连带问题。

阅读全文 »

给 AI agent 加”长期记忆”,第一版几乎都会这么做:在系统提示里约定一个 MEMORY.md,让模型”觉得重要就自己写进去”,下一轮再把它读回来。

能跑,但撑不过几周。这篇记录把它换成 SQLite 主库的过程,以及同一时期在流式管道、定时任务、客户端联网边界上踩到的坑。

阅读全文 »

一个 Fedora 上管理 Copr / OBS 第三方源的命令行工具,跑了一遍 pytest:124 个测试全绿,ruff 和 mypy 也没有意见。看起来挺健康。

但实际用起来,copa audit 稳定崩溃、多关键词搜索搜不到东西、正则搜索永远空、标着”高风险”的仓库照样能装。单元测试覆盖的是函数,不是集成路径——这些缺陷没有一个能在单元测试里暴露。

这篇记录那次审计找出的一批真实缺陷、修法,以及中文化和打包时另外两个坑。

阅读全文 »
0%