给软件开发者准备的优质简报,每日阅读 10分钟。
Google Hits 50% IPv6
Google 与 APNIC 的 IPv6 测量数据解读
- 谷歌测量数据显示,其用户中通过 IPv6 访问服务的比例首次达到 50%,这标志着 IPv6 已成熟并在全球范围规模部署。
- APNIC Labs 的全球测量结果显示 IPv6 能力为 42%,两者数值差异主要源于不同的测量方法论,特别是对样本数据的统计加权模型。
- 全球 IPv6 采纳并不均衡,印度、越南和沙特阿拉伯等特定经济体的采纳曲线与全球平均趋势显著不同。
- APNIC 的测量通过对各经济体的互联网用户人口进行加权计算,以更准确地反映全球互联网使用的真实分布,而非直接汇总原始测量样本。
- 互联网已形成 IPv4 与 IPv6 并存的“双协议世界”,IPv4 网络本身也依赖 NAT 等复杂技术,而部分服务缺乏原生双栈支持等因素仍构成迁移挑战。
- 这一 50% 的里程碑是全球互联网社群协作与投入的成果,证明 IPv6 已从实验性技术转变为互联网日常运行的核心部分。
Identity verification on Claude
Claude 身份验证概览
- 为防止滥用并满足合规要求,Claude 正在部分场景中推出身份验证,用户可能在使用特定功能或例行平台完整性检查时收到验证提示。
- 验证由合作伙伴 Persona Identities 负责,用户须提交原始、未损毁、可清晰辨认的政府颁发带照片的身份证件(支持多数国家)。
- 所收集的验证数据仅用于确认用户身份,Claude 不将其用于其他目的,并在全过程中采用严格的隐私控制和安全防护(详见隐私政策)。
- 若验证失败,常见原因包括照片模糊、文件无法识别、证件过期或技术故障,用户可根据提示重新提交符合要求的材料。
- 账户因安全审查被封禁时,用户可在 claude.ai 登录后填写申诉表单,由 Safeguards 团队进一步调查并决定是否恢复。
Developers don't understand CORS (2019)
CORS误解引发的安全漏洞与开发者教育缺失
- Zoom在本地运行Web服务器时,为绕过CORS限制,错误地使用图片尺寸编码响应数据,导致任何网站均可调用其接口,造成严重安全漏洞。
- 正确实现应是在本地服务器设置
Access-Control-Allow-Origin: https://zoom.us头,并结合内容安全策略(CSP)阻止iframe嵌入,以确保仅授权域(Zoom官网)能访问。 - 此设计同时带来用户体验问题:用户点击链接后,在不知情的情况下摄像头和麦克风即可能被远程调用,违背了软件可预测性的基本原则。
- 作者基于咨询工作观察到,许多开发者(无论新手或资深)对CORS机制存在普遍误解,常直接复制Stack Overflow等来源的不安全代码示例,导致应用暴露风险。
- 此类漏洞并非Zoom独有,其他厂商也曾出现。作者探讨了问题根源:可能是CORS API本身过于复杂,亦或是围绕CORS与CSP等关键安全概念的开发者教育严重不足。
Prefer duplication over the wrong abstraction (2016)
当抽象走错时:用复制回溯找回正确路径
- 错误抽象的演化:最初为消除重复而抽取的共享方法或类,随着新需求加入参数和条件,逐渐变成多分支、难以理解的代码。
- 沉没成本陷阱:代码越复杂、投入越多,团队越倾向于保留它,即使它已不再匹配实际需求,这正是“沉没成本”导致的错误决策。
- 回退策略:当发现抽象被频繁加参或分支时,应该将抽象展开回每个调用者,保留只需的代码片段,随后删除多余部分。
- 重新抽象的契机:通过恢复复制后,各调用者的实现变得清晰可见,能够辨别真正的公共部分并在此基础上重新提炼出正确的抽象。
- 附注:作者同时宣布《99 Bottles of OOP》第二版上线,提供 Ruby、JavaScript、PHP 等多语言示例,支持多种电子书格式。
Loupe – A iOS app that raises awareness about what native apps can see
Loupe:让用户直观看到 iOS 设备指纹信息的隐私工具
- 功能定位:读取公开 iOS API 的原始值并原样显示,帮助用户了解 iPhone/iPad 在未授权情况下会向第三方应用泄露哪些指纹数据。
- 信号分层:分为“被动”(无需提示即可获取,如地区、时区、屏幕、 Battery 等),“需要权限”(触发系统授权弹窗,如通讯录、照片、位置、日历)以及“高级”(利用公开 API 的侧信道,如
canOpenURL探测 URL Scheme、Keychain 跨重装持久化)。 - 隐私保证:所有读取的数值仅保存在本机,除非用户手动导出;不进行聚合、哈希或上传,亦不进行同步共享。
- 技术与发行:几乎全由 AI 编码工具开发,源代码遵循 MIT 许可证(名称、图标等受 Mysk 完全版权保护),需 Xcode 26+ 编译,可在 iOS、iPadOS 以及 macOS 上构建运行。
- 生态支持:免费开源,推荐通过使用 Mysk 的隐私浏览器 Psylo(提供代理浏览、隔离标签页、抗指纹追踪)来支持项目,相关链接与说明均已提供。
Windows 11 New Media Player Uses 3.5x More RAM, Charges for Popular Video Codecs
Windows 11 新媒体播放器耗费 3.5 倍内存并对常用视频解码收费
- 空闲时占用约 377 MB RAM,约为旧版 Windows Media Player(约 103 MB)的 3.5 倍
- 打开本地视频文件的启动时间从约 2 秒增至约 3 秒,延迟约 50%
- HEVC(H.265)解码需通过 Microsoft Store 付费购买 “HEVC Video Extensions” 扩展包
- Windows 11 24H2 版移除内置 AC‑3(Dolby Digital)解码器,导致新播放器无法原生播放 AC‑3 音轨
- 虽可作为可选组件保留旧版播放器,微软正将新媒体播放器设为默认替代 Groove Music 与经典 Windows Media Player,用户若不接受付费解码可转用自带完整解码器的 VLC 等第三方播放器
I Stored a Website in a Favicon
把整个网站藏进 favicon 图标
- 作者将 HTML 文本转为 UTF‑8 字节,前置 4 字节长度标头,然后顺序填入 9×9 像素 PNG 的 RGB 通道,使代码以噪点图像形式存储;总大小 212 字节,占用 71 像素,利用率约 87%。
- 读取时,浏览器将 favicon 加载为图像并绘制到 Canvas,利用 Canvas API 逐像素读取 RGB 数据,先取出长度头再重建字节数组,解码为原始 HTML,随后用 JavaScript 替换页面实现“从图标恢复网站”。
- 该方案仅演示存储极限,实际不可用:容量极小、必须依赖额外的 JavaScript 引导解码,且 favicon 仍是一普通 PNG,仅承载了网站内容。
- 作者指出其他可行的图标隐写方式,包括在 SVG favicon 中直接嵌入 HTML、利用 PNG 的 tEXt / zTXt / iTXt 注释块,或使用支持多分辨率的 ICO 格式。
- 项目演示及源码可分别访问 https://www.timwehrle.de/labs/favicon-site/ 和 https://github.com/timwehrle/favicon。
(How to Write a (Lisp) Interpreter (In Python)) (2010)
用 Python 实现 Scheme(Lispy)解释器的关键要点
- 解释器两阶段:
parse先把源代码分词并构造抽象语法树(AST),eval再依据语义规则在环境中求值,形成 “代码 → AST → 求值 → 结果” 的完整流程。 - Lispy Calculator 子语言:只支持五种语法形式——变量引用、数值字面量、
if条件、define定义以及函数调用,全部采用前缀记法且没有语句/表达式之分。 - 环境与词法作用域:
Env继承自dict,可嵌套形成外层‑内层链;global_env预装数学函数、算术运算符等标准过程,find方法实现从内到外的变量查找,实现局部与全局作用域的正确解析。 - 完整 Lispy 的扩展:新增
quote(返回未求值的表达式)、set!(修改已有变量)和lambda(创建闭包)三种特殊形式,Procedure类保存参数列表、函数体和定义时的环境,使函数成为一等对象并支持高阶调用。 - 交互式 REPL:
repl循环读取用户输入,调用parse与eval,并用schemestr将求值结果转回 Scheme 语法打印,实现 Lisp 典型的读‑求值‑打印交互模型。
The minimum viable unit of saleable software
软件“可售最小可行单元”与买‑建抉择的成本框架
- LLM 降低但未消除开发成本:即便让模型生成代码,仍需多轮提示‑审查‑修正,且后续维护仍需人工时薪约 $96/小时。
- 自建低价 SaaS 的成本灾难:以年薪 $200k 的工程师为例,替代 Jira($400/月)仅能投入约 2 小时/月,需约 37 个月才能收回费用,远高于直接付费。
- 高价 SaaS 可能值得自行构建:Salesforce $500/席位、50 席位≈$25k/月,相当于 1.5 名全职工程师的成本,企业可在此成本区间考虑内部重建。
- “可行区间”(Zone of Viability):当软件具备足够的独特性使 LLM 重建成本高,同时定价不至于过高时,购买仍优于自建;该区间的下限即“可售最小可行单元”。
- River 业务的实证:River 的核心功能开源免费,Pro 版以 $125/月起售,提供高级工作流等差异化特性,定价与复杂度均落在可行区间,因而在 LLM 时代仍具商业可行性。