给软件开发者准备的优质简报,每日阅读 10分钟。
Android Developer Verification: Threat masquerading as protection
谷歌借“Android 开发者验证”(ADV)将 Play Protect 变成无法卸载的“恶意软件”
- Google 通过 Play Protect 本身作为传播渠道,在约 40 亿台 Android 8 及以上设备上静默植入名为“Android Developer Verifier”的系统级服务,具备 root 权限且无法被用户禁用、阻止或卸载。
- 该服务一旦被远程激活,唯一目标是阻止用户运行未经 Google 中心化验证的开发者所发布的软件,使 Google 成为应用能否存在的唯一守门人。
- 该计划以“反恶意软件”为名,却只能在开发者已被识别为重复作恶后增加其重新注册的成本,无法阻止首次分发;作者认为这颠覆了 Android 的开放传统,并可用更温和的去中心化方案替代。
- ADC 服务条款中“恶意软件”一词没有任何定义,等于授权 Google 单方面任意界定软件性质,可能借此禁止广告拦截器等与其商业利益冲突的合法工具。
- 所谓“99% 的 Play 开发者已注册”实因开发者被已有协议自动纳入,并非自愿同意;全球已有大量用户请愿,EFF、FSF、FSFE、ACLU 等 70 多个组织签署公开信反对。
- 该激活暂定于 2026 年 9 月 30 日首先在巴西、印尼、新加坡和泰国生效,随后“2027 年及以后”全球推广,但届时 F-Droid 等侧载应用能否安装/启动、已装应用和数据是否被删、遥测包含哪些信息等均不确定。
ZCode – Harness for GLM-5.2
ZCode:GLM-5.2 官方编程工具,主打简单、快速与氛围就绪
- 官方工具链:ZCode 是 GLM-5.2 的官方套件,旨在将顶尖 AI 智能体与现有开发工具无缝结合,提供从规划、编码、审查到部署的无摩擦体验。
- 深度优化与订阅:3.0 版本针对 GLM-5.2 的推理、编码与多智能体协作进行了专门优化,并提供从 Lite、Pro 到 Max 的多层订阅方案(月费 $16.2 至 $144),以适配不同工作负载。
- 核心能力:通过“目标(Goals)”功能管理长周期复杂任务,并支持从微信、飞书或 Telegram 启动和控制 ZCode 机器人,实现远程工作延续。
- 跨平台支持:提供覆盖 macOS(Apple Silicon / Intel)、Windows(x64 / ARM64)及 Linux(Beta 版)的最新 v3.2.3 安装包。
- 能力实证:页面演示了 AI 代理在数分钟内从零构建一个完整的浏览器五子棋游戏,展现了其生成可运行代码、设计启发式 AI 算法及适配移动端的综合能力。
Bring back crappy forums
告别粗糙旧网络论坛后,我们失去了什么
- 作者以 2000 年代中期的 Visual Editors 论坛为例,指出那些技术简陋、经常宕机的旧论坛反而能营造出小众、紧密且主题明确的社区,带来现代社交媒体难以复制的归属感。
- Web 论坛的诞生是对 Usenet 等纯文本讨论形式的图形化升级:1994 年 CERN 的 Ari Luotonen 开发出最早的 Web 论坛软件 WWW Interactive Talk(WIT),随后 WebCrossing、WWWBoard、Ultimate Bulletin Board、Slash、vBulletin、phpBB 以及 2014 年的 Discourse 等工具相继塑造了这一生态。
- 在 Markdown 普及之前,BBCode 成为论坛的安全格式化语言,催生了图片宏和早期 meme 文化,并意外被 Godot 等现代游戏引擎沿用,成为其最有趣的后世影响。
- 论坛衰落的核心原因是“求新”与“运维负担”:用户对论坛感到厌倦,渴望不同体验;同时论坛依赖社区自行承担服务器、安全和流量成本,而 Reddit、Digg、StackOverflow 等 Web 2.0 平台则以专业托管模式承接了社区需求。
- 现代社交媒体的“参与度算法”与“语境崩塌”破坏了成功社区的原则,使互动趋于空洞、碎片化,这与旧论坛相对清晰的语境和人际关系形成对比。
- 作者认为,随着互联网从新奇事物变为日常“家具”,一部分用户或许会重新回归小型、兴趣驱动的论坛,不再追求触达所有人,而是寻找志趣相投的小群体。
Sony Deletes 551 Movies PlayStation Owners Paid For
索尼将删除 551 部已购 StudioCanal 影片,凸显数字内容所有权危机
- 索尼宣布自 2026 年 9 月 1 日起,从 PlayStation Store 中移除 551 部由 StudioCanal 提供的电影与电视剧,已付全价的用户将失去访问权,且官方未承诺退款。
- PlayStation 的提示写明:“您将无法再访问之前购买的 Studio Canal 内容,它将从您的视频库中移除”,并以仅六个字“由于我们的内容授权协议”解释原因。
- 删除缘于索尼与 StudioCanal 的授权协议到期或变更,用户未参与签约,却被迫承担内容失效的后果,索尼随后在官网公布了完整的受影响标题列表。
- 文中以《GTA 6》实体版仅提供下载码的做法为例,指出发行商通过数字下载码限制玩家转售、借出或离线安装,进一步削弱传统物理所有权。
- 这些案例显示所有权正被集中到少数公司控制的服务器上,尽管仍有“购买”按钮,实际已沦为对服务的短期使用授权,缺乏补偿与救济渠道。
What to learn to be a graphics programmer
成为可雇用的实时图形程序员:学习要点
- 现代实时渲染可分为 CPU 与 GPU 两个方向:CPU 端要掌握 DirectX 12、Vulkan、Metal 等显式 API 以及引擎资源加载、支撑代码;GPU 端要掌握光照与着色数学、阴影、环境光遮蔽、后处理等渲染技术,以及 GPU 性能意识。建议不要同时深攻两者:若侧重 GPU,可先用 OpenGL、WebGL、DirectX 11 或现有引擎降低 CPU 复杂度;若侧重 CPU,则先实现三角形、网格上屏即可,不必追求画面精美。
- 路径追踪与基于物理的渲染(PBR)是核心基础。路径追踪是电影级渲染方法,也是现代实时渲染逼近的目标,可从免费在线书《Ray Tracing in One Weekend》入门;PBR 通过遵循物理原则的光照模型(主要是镜面反射)让资产在任意光照下都表现一致,避免旧式“每个场景单独调光、制作多版本资产”的低效流程。推荐学习资源:LearnOpenGL 的 PBR 教程、Filament 文档以及免费在线的 PBRT 书籍。
- 最好能产出可展示给雇主的源代码(如 GitHub 链接)。典型作品集包括:用 C++ 与 DX12/Vulkan 等现代 API 写的“类引擎”实时渲染器(能加载模型/纹理、使用 PBR 光照、有可控相机、并带若干效果);以及一个 C++ 路径追踪器(可无窗口,仅输出 PNG)。若路径追踪器能作为引擎的独立模式,用于验证实时 PBR 的正确性,并能解释差异、提出改进方向,会更有说服力。
- 所需基础相对有限,但可深入空间极大。数学上掌握线性代数(矩阵、点积、叉积)、基础三角函数和少量微积分即可;算法上掌握链表、哈希表、排序/搜索等基础结构,简单结构往往更快。语言方面:CPU 端首选 C++,Rust 和 WebGPU 虽存在但岗位/内容较少;着色器语言 HLSL 最常见,GLSL 次之。艺术能力不是必需,但懂艺术或摄影会有帮助。
- 对 LLM/机器学习保持理性。作者认为当前 AI 被过度炒作,热度可能回落,但 ML 的拟合与优化技术仍是计算机科学工具箱中有价值的补充。他主要用来与 Claude 讨论数学、论文或不熟悉的算法,以及检查文件里的 bug,但不会让其替代亲自写代码。他相信未来某天可能出现真正人类级乃至超越人类的 AI,但不确定是否会在自己有生之年实现。
Podman v6.0.0
Podman v6.0.0 正式发布:核心功能全面升级
- 正式版已在 GitHub 上发布,随后将同步至各大包管理器;对所有贡献者(尤其是新贡献者)表示衷心感谢。
- 网络栈现代化:将 slirp4netns 与 iptables 替换为 Netavark、Pasta 与 nftables,并加入实验性 Pesto 无根端口转发,能够在自定义网络中保留容器的真实源 IP。
- Podman Machine 强化:实现更顺畅的多供应商(multi‑provider)体验,新增
podman machine os update命令用于快速更新虚拟机系统。 - Quadlet 大幅改进:支持 REST API、改进关联文件追踪、扩展
.volume单元功能,并增加搜索路径以便发行版打包。 - 配置文件处理优化:针对多用户环境提供更平滑、可靠的配置文件管理方式。
- Docker 兼容性提升:更新 Docker API 支持并精细化命令输出,降低从 Docker 迁移的门槛;同时邀请用户试用并反馈。
No LLM Code in Dependencies
git-annex 努力剔除依赖中的 LLM 生成代码
- 作者过去一个月投入约 100 小时,使 git-annex 能够构建时不依赖包含 LLM 生成代码的依赖库,并制定了相关政策页面。
- 这意味着必须持续审查整个依赖树,作者发现多处严重问题:有的项目大规模 LLM 生成变更在下一版本被无故撤回;有的提交信息长达 1489 行且语无伦次,却对 26000 行代码库做出 10000 行改动;还有的 LLM 提示词要求复制其他项目代码,险些构成版权侵权。
- 作者认为,这项工作的唯一实际收益是获得了关于依赖质量的更多信息,将影响未来的依赖选择。
- 作者感到自己可能在螳臂当车,并指出软件自由保护协会(SFC)已回避该问题,且对自由软件基金会(FSF)也不抱更高期望。
- 随着形势恶化,作者正在重新考虑参与这些社区,但表示仍会继续自己的工作并支持用户。
- 作者警告,用 LLM 提示生成并提交代码、自诩为“10xer”看似轻松,却会造成更广泛影响;文中提到的项目因此失去了他后续的合作。
How to ask for help from people who don't know you
如何向陌生人求助:把对方放在心上
- 求助不是天赋或运气,而是一项可习得的技能;唯一核心原则是把自己放到对方的立场去思考,所有有效沟通都建立在对读者心智的理解之上。
- 帮助首先是人,然后才是项目:对方愿意帮你的前提是认为你值得帮。最有力的方式是拿出成果证明自己是认真的人;熟人推荐能拉近距离,但会消耗推荐人的信誉;名校或大公司背景只能作为辅助,不能当作主要资本。
- 解释背景要短到无法再概括:你已借来对方的注意力,必须精打细算;把背景连接到对方已知的事物,只说清“这是怎么回事”,而不是讲自己的感动经历。
- 让请求容易被接受:降低量级、具体明确、减少摩擦并把请求限定为一次性。例如请求20分钟而非一周内读完500页手稿,让对方推荐一个资源而非“聊聊”,写好转发的自我介绍,用书面提问而非打电话。
- 让拒绝变得容易:最坏的结果不是“不”,而是对方被迫、不情愿地答应;被拒后礼貌致谢并退出,不要施加情感压力或反复纠缠,否则这段关系会被毁掉。
- 绝不要撒谎:所有请求都附着于你这个人;只要对方察觉到任何不对劲,再小、再具体、再低摩擦的请求也不会得到真正的肯定答复。