给软件开发者准备的优质简报,每日阅读 10分钟。
Half-Baked Product
半生不熟的烤箱:Ovens Inc. 创业寓言
- 创始人只会市场和融资,不懂烤箱;他用“占领西班牙10%烤箱市场”的Excel故事,为一个失败率高达三分之二的原型机融到500万欧元。
- 首席工程师出身名校、有十年烤箱经验,却沉迷于意大利论坛里的“烤箱真理”;为20%股权和“完全自由”加入,又招来两位同样热衷论坛的工程师马里奥和路易吉。
- 首批5台原型机卖给创始人关系户、工程师母亲和好奇爱好者,用户一致反馈烤焦或烤生;团队却以“这只是原型”包装前景,继续融资,从未追问复购。
- 核心算法无法同时做好面包、蛋糕和披萨,若只聚焦两类失败率可降至5%;但创始人因对VC承诺了“整个市场”,拒绝牺牲任一产品线,硬撑33%的高失败率。
- 销售为签单不断承诺未来功能(蜡烛按钮、壁炉联动、婚礼蛋糕、斋月模式等),每加一个新按钮都因与旧功能耦合而耗时倍增,底层算法缺陷始终被搁置。
- 旋转底座被反复挤到“第二高优先级”,两周赶工出的版本因漏掉“顺时针”要求而失去大客户Pepepizza;工程师悄然离职、马里奥为休假辞职、路易吉麻木,公司半年后改名“智能烘焙平台”,创始人又以同样的“自由”承诺签下新工程师,循环重启。
Immich 3.0
Immich v3.0.0 主要更新内容
- 升级与破坏性变更:将
.env中的IMMICH_VERSION改为v3,然后执行docker compose pull && docker compose up -d更新;首次加入 Release Candidate 通道,可在Admin settings > Version check切换。本次包含大量 API、环境变量、时间线同步等破坏性变更,主要影响第三方集成工具,用户需参考官方 v3 迁移指南。 - 移动端非破坏性编辑:移动端照片编辑器与网页端统一,支持裁剪、旋转、调整等非破坏性编辑,原文件不会被修改;旧版中的重新着色、实况照片编辑和本地资产编辑功能已移除,未来版本会逐步恢复。
- Workflows 自动化(预览):在网页端
Utilities > Workflows中可拖拽组合触发器、过滤器与动作,构建自动化流程;编辑器支持可视化与 JSON 两种模式,工作流可通过文本或 JSON 分享给他人。 - 媒体播放与性能提升:Web 端引入实验性 HLS 实时转码(预览),无需离线转码即可动态切换画质并降低存储占用;新增自定义 Web 视频播放器,统一各设备控制界面;单月内包含大量资源的时间线浏览流畅度大幅提升,避免浏览器标签卡顿。
- 移动端新功能:新增“最近添加”页面、移动端幻灯片播放、照片 OCR 文本识别与复制、本地资产直接上传至相册、分享时可选图片尺寸;Android 端可作为系统相册/图片查看器打开外部图片或视频,并支持分享或上传到 Immich。
- 后台备份与完整性检查:Android 后台备份改用周期性任务调度器,支持全库后台上传并更可靠,同时提醒电池优化与通知设置的影响;iOS 后台同步任务改为并行执行。维护页面新增完整性报告,可发现未跟踪、缺失或校验和不匹配的文件。
Since Linux 6.9, LUKS suspend stopped wiping disk-encryption keys from memory
Linux 6.9 起挂起时 LUKS 锁盘静默失效及安全挂起方案
- 自 Linux 6.9(2024 年 5 月)起,笔记本挂起时锁定 LUKS 加密盘的工具静默失效,导致加密密钥在两年多的时间里始终驻留内存;只有在完整关机时密钥才会被清除,挂起状态下面临密钥被提取的风险。
- 问题根因是内核提交
a28d893eb3270cf62c10dd8777af0d8452cdc072(将块设备访问迁移到文件)这一“合理且有用”的重构与加密代码产生了意外交互;修复补丁只有一行,但作者坦言没有形式化证明,无法确保补丁完全正确且不会引入新的远距离副作用。 - 为防范再次回归,NixOS 已提交自动化测试,同时向 cryptsetup 提交补丁,使锁盘失败时发出警告而非继续静默失败。
- 作者还宣布了实验性 NixOS 项目
secure-suspend,重新启用 Pali Rohár 的旧内核补丁,在挂起前从内存中擦除 LUKS 卷密钥;其思路借鉴 Debian 的cryptsetup-suspend(挂起前冻结用户空间进程、创建内存盘存放解锁工具),但借助内核补丁避免了阻塞睡眠的竞态条件,并支持 root 文件系统加密。 - 该问题最初是在整理 Debian
cryptsetup-suspend的 NixOS 移植时发现的:尽管文档称 keyring 会随调用线程退出而销毁,但/proc/keys中仍能看到对应条目,随后通过 QEMU 虚拟机导出内存,确认被声称擦除的卷密钥仍存在于内存中。 - 讨论指出,仅依赖锁屏无法防御冷启动等内存提取攻击;只要交换分区已加密,休眠到磁盘就是安全的;而由于日志时间戳和时序调整的干扰,验证密钥是否真正在挂起前被擦除需要非常谨慎,可靠做法之一是在虚拟机中直接检查内存。
Protect your right to run local AI
Right to Intelligence:捍卫本地 AI 的合法拥有与使用权
- 本地 AI 被视为“下一代个人电脑”:不是聊天机器人账号或租用 API,而是用户可以在自己的机器上运行、检查、修复、改进的模型,无需依赖平台持续在线。
- 核心诉求是保护合法使用:人们应自由下载、拥有、运行、研究、修改和分享开放 AI 模型;同时欺诈、网络犯罪、儿童性虐待材料、骚扰、非自愿亲密深度伪造、歧视和破坏等真正的伤害仍应被严肃追责。
- 红线是:不能要求人们仅为“拥有或运行 AI 工具”就申请许可证。
- 倡导“本地优先”:许多日常任务完全可以在用户已有的笔记本、台式机或手机上运行小型开放模型,法律不应迫使这些简单合法的工作负载退回云端。
- 呼吁行动:从联系本州立法者开始,网站提供电话脚本;官方查询可能要求地址以匹配具体议员,但 RTI 不会存储该地址。若想进一步参与研究、外联、数据或网站建设,可发邮件至 volunteer@righttointelligence.org。
Wordgard: In-browser rich-text editor from the creator of ProseMirror
Wordgard:开源语义化富文本编辑器 JavaScript 库
- Wordgard 是一个在浏览器中运行的开源 JavaScript 富文本编辑器库;它不是自由格式的 HTML 编辑器,而是让开发者精确控制所支持的内容类型,并为复杂、要求苛刻的定制化编辑器提供强大的编程接口。
- 采用基于 Schema 的文档建模,可精确定义文档结构并创建自定义文档元素;文档树支持表格、嵌套列表、带标题图表以及自定义结构。
- 提供精心设计、强调通用性与灵活性的 Deluxe API;大多数功能以扩展形式实现,便于替换或修改,且系统大量采用函数式编程风格,追求清晰性与可测试性。
- 注重无障碍与国际化:支持屏幕阅读器、纯键盘用户和移动设备,支持界面国际化,并能在内容与界面中正确处理从右到左(RTL)及双向文本。
- 内置协同编辑能力,支持多名用户同时编辑同一文档并合并并发修改。
- 基于 MIT 许可证开源,在 code.haverbeke.berlin 上开发;欢迎提交错误报告,但不接受拉取请求;商业使用存在社会层面(非法律层面)的资助维护期望,讨论与问题请分别前往论坛和 issue tracker。
Factories are just rooms
工厂只是房间:让制造成为孩子可以参与的事
- 作者几个月前主动走进孩子就读的学校,向整个年级组讲述自己 AI 时钟从创意到量产的制造过程,展示了深圳工厂探访照片(此前大多只分享给 Kickstarter 支持者)、探索性草图、CAD 设计、电子纸屏幕迭代、面包板到 PCB 的电子迭代,以及塑料外壳从 3D 打印到注塑成型的演变
- 他明确反对用“每秒上千件产品”的工厂奇观视频来制造敬畏感,认为这种“敬畏”会让观众把制造当成只可远观的艺术品;相反,他想“重新归属”制造,传达“工厂只是房间”,椅子、电视、花盆等日常物品并非神圣,而是被人发明、设计并制造出来的
- 孩子们提出了具体而真实的问题,比如“快递里怎么会不摔坏”“按钮是怎么做的”,作者借机讲解振动测试、包装设计师做的缓冲纸托、装配流程和工业设计师等实际环节
- 因为班级正在学习“发明”,他主动展示“死胡同和试错其实很棒”,并介绍这就是电子、这就是从草图到塑料、这就是做产品并卖出去的完整含义;他希望在 7 岁孩子大脑仍在建立“常态”时,就把动手制造和探索世界常态化
- 作者以“我只是某个孩子的爸爸”的身份鼓励更多人走进当地学校分享做东西的经历,孩子们会带来极好的好奇心和提问;他希望未来某个孩子看到问题时会想“该有人做点什么”,然后意识到——那个人可以是我
60% Fable cost cut by converting code to images and having the model OCR it
pxpipe:将 Claude Code 的密集文本上下文渲染为 PNG 以降低 Fable 5 输入 token 与成本
- 核心机制:图像按像素计费而非字符数:pxpipe 是本地代理,在请求离开本机前拦截
/v1/messages,将系统提示、工具文档、大型tool_result和较旧对话历史等大块密集文本按 1928px 列宽重排并渲染为紧凑 PNG;图像 token 成本仅取决于像素尺寸,高密度内容(代码、JSON、工具输出)在图像中约 3.1 字符/token,而文本仅约 1 字符/token。 - 输入 token 与端到端成本削减:例如 ≈48k 字符的系统提示+工具文档(≈25k 文本 token)可压缩为 ≈2.7k 图像 token;按 Fable 5 当前定价,端到端账单降低约 59–70%,仅压缩请求约 72–74%。所有数据均通过
count_tokens反事实与真实计费记录到~/.pxpipe/events.jsonl,但节省幅度高度依赖工作负载,稀疏/小请求会被保留为文本。 - 有损压缩与精确召回限制:这是 gist 级压缩,非无损;密集 12 字符十六进制字符串的精确召回在 Fable 5 上为 13/15,Opus 4.8 上为 0/15,失败模式是静默编造合理错误值。因此 ID、哈希、密钥、精确数字等必须保留为文本;非 Fable 模型或指定子代理可完全透传,作为需要逐字节精确召回的逃生通道。
- 模型支持与默认范围:默认仅对
claude-fable-5和gpt-5.6启用图像化;Opus 4.7/4.8 因约 7% 渲染误读默认关闭,GPT 5.5 因效果下降需 opt-in;其余模型原样透传。可通过PXPIPE_MODELS或实时仪表板在线切换模型。 - 启动、仪表板与库调用:运行
npx pxpipe-proxy并将ANTHROPIC_BASE_URL指向http://127.0.0.1:47821即可接入;访问该地址可查看实时 token 节省、每次 text→image 转换对比、全局开关和运行时模型切换。也支持以pxpipe库直接调用renderTextToPngs或transformAnthropicMessages。 - 端到端实测效果:Fable 5 在新颖算术 100/100、要点回忆 98/98、状态跟踪 18/18;SWE-bench Lite 10/10 与未压缩持平且单请求 -65%,Pro 19 对中 14/19 vs 15/19,差异项复现 3 次均成功,判定为智能体运行方差而非压缩导致,同时单请求 -60%。