给软件开发者准备的优质简报,每日阅读 10分钟


Do Not Turn Child Protection into Internet Access Control

811 pointsLinkComment(433)Share

不要将儿童保护沦为互联网访问管控

  • 年龄验证正从成人网站扩展至社交媒体、即时通讯、游戏、搜索引擎等主流服务,在欧美、澳洲、美国等多地推进,其本质已演变为访问控制架构,将互联网的默认状态从开放访问转变为需经授权的权限访问
  • 年龄验证混淆了内容审核与监护的根本区别:内容审核是技术性的分类过滤,而监护是关系性的本地责任,应由家长、教师、学校和社区在具体情境中做出判断并动态调整
  • 年龄验证在技术实施上存在根本缺陷——VPN、借用账号、虚假凭证等绕过方式显而易见,这种易于规避却成本高昂的控制并非真正的妥协,而是将责任从家庭和学校转移至集中式平台的错误做法
  • systemd已应年龄保障法律要求在userdb中添加可选的birthDate字段,监管正深入渗透个人计算的数据模型,操作系统层一旦建立此类身份广播基础设施便难以被限制,极易被扩展用于追踪位置、公民身份、法律状态等其他属性
  • 真正的解决路径是将内容管理置于终端层面(浏览器、设备、学校网络),由家长和社区掌握本地化控制权;作者作为Devuan创始人已声明拒绝实现年龄验证,并在瑞士卢加诺市推动城市级试点,计划两年内实现本地化管理监护技术的实际部署

Do Not Turn Child Protection into Internet Access Control

826 pointsLinkComment(445)Share

勿将儿童保护沦为互联网访问管控

  • 年龄验证正从成人网站急速扩展至社交媒体、即时通讯、游戏、搜索引擎等主流服务,将互联网的默认状态从"开放获取"悄然转变为"许可访问"——用户必须先向服务方证明自身属性,才能接收内容。
  • 当前辩论存在根本性概念混淆:将内容审核(技术性分类与过滤)与监护责任(家长、教师等可信成年人在具体情境中的关系性、本地化决策)混为一谈,两者本质截然不同。
  • 年龄验证架构已渗透至操作系统底层:systemd在userdb中新增可选birthDate字段,部分美国提案更提出由操作系统维护持久性年龄状态层并向应用程序暴露——这已超越单点网站验证,演变为覆盖整台设备的通用身份层。
  • 年龄验证在实操中形同虚设:VPN、借用账户、伪造凭证等绕过手段显而易见;据一项追溯性开源调查(源自Reddit用户对2亿美元非营利资助和45州游说记录的分析)显示,年龄验证立法背后存在利益驱动的数据收割动机。
  • 此类基础设施一旦建成,极易被横向扩展至地理位置、公民身份、法律状态等其他属性审查,使有限检查逐步演变为通用的网络关卡,造成难以逆转的结构性改变。
  • 真正的有害因素来自推荐算法、诱导性设计、成瘾性指标和放纵放大却不负责任的商业模式;解决方案应是在终端(浏览器、设备、学校网络)实施本地化内容管控,将监护权归还给家长、教师和社区,而非为整个互联网强加许可系统。

Windows native app development is a mess

442 pointsLinkComment(435)Share

Windows原生应用开发困境

  • Windows UI框架经历了从Win32 C API到MFC、WinForms、WPF、WinRT XAML、UWP XAML再到WinUI 3的七次重大变更,每次都迫使开发者重写代码
  • .NET分发陷入两难:Windows 11仅预装.NET 4.8.1(当前版本已达10),框架依赖部署会弹出下载提示,而AOT编译将简单应用打包成9 MiB二进制文件
  • MSIX分发依赖昂贵的代码签名证书(非美国用户每年约200-300美元),侧载体验极差,应用商店还以"缺乏独特持久价值"为由拒绝了作者的应用
  • Windows App SDK功能缺口严重:作者的"Display Blackout"应用需要枚举显示器、创建无边框窗口、拦截全局快捷键、显示托盘图标等基本功能,几乎每项都需要P/Invoke回退到Win32 C API
  • C#语言对Win32互操作支持不足:CsWin32无法原生处理可选out/ref参数(需生成两个重载版本),且二十年来始终缺乏类似JavaScript装饰器的简洁可观察属性语法
  • 作者认为Tauri是更务实的选择:可使用系统WebView(每4周更新),而.NET却永远停留在4.8.1版本,且Electron/Tauri只需在必要时调用Win32 API进行系统集成

Tinybox – A powerful computer for deep learning

577 pointsLinkComment(335)Share

tinygrad:简洁的神经网络框架与硬件产品

  • tinygrad 将复杂神经网络分解为3种基础操作类型:元素级操作(ElementwiseOps,如 SQRT、ADD)、归约操作(ReduceOps,如 SUM、MAX)和移动操作(MovementOps,如 RESHAPE、PERMUTE),从而支持 LLaMA、Stable Diffusion 等复杂网络
  • tinybox 是专为深度学习打造的高性能计算机,提供三个版本:red v2(778 TFLOPS,64 GB显存,$12,000)、green v2 Blackwell(3086 TFLOPS,384 GB显存,$65,000)均有现货,exabox(约1 EXAFLOP,25,920 GB显存,约$10M)将于2027年发售
  • tinybox 在 MLPerf Training 4.0 基准测试中与成本高10倍的计算机表现相当,已量产发货,支持圣地亚哥自提和全球运输,仅接受电汇支付,不提供定制服务
  • tinygrad 支持完整的前向和反向传播自动微分,API 与 PyTorch 类似但更简洁,已被 comma.ai 的 openpilot 项目采用,在 Snapdragon 845 GPU 上运行驾驶模型
  • tiny corp 已获融资并招聘全职软件工程师,运营和硬件岗位也在招聘中,但明确要求申请者需对 tinygrad 有代码贡献,赏金任务是评估候选人能力的方式之一
  • tiny corp 的目标是加速计算、将 petaflop 级算力商品化,让 AI 惠及所有人

Reports of code's death are greatly exaggerated

560 pointsLinkComment(413)Share

代码消亡论言过其实

  • 英文规范"感觉"精确,实则模糊——人类大脑只能同时处理7±2个概念,抽象是应对无限复杂性的唯一途径
  • "氛围编程"(vibe coding)让人们用自然语言描述需求,AI生成代码后迭代修改,但当应用扩展到足够规模时,这种"感觉精确"的假象就会崩塌,导致难以预料的bug
  • Dan Shipper的经历证明:他的"氛围编程"文本编辑器应用在爆火后随即崩溃,因为"实时协作实际上极度复杂",远超直觉预期
  • 即便AGI时代来临,代码的价值也不会消失——人类会利用AGI解决最困难的抽象问题,创建更好的抽象层,而非用它批量生产低质量代码
  • 代码本身就是极其重要的产物,精妙的代码如同诗歌——认为AI会让代码消亡,就像认为印刷术发明后故事讲述就消亡了一样荒谬

PC Gamer recommends RSS readers in a 37mb article that just keeps downloading

793 pointsLinkComment(362)Share

PC Gamer推荐RSS阅读器的文章本身却问题重重

  • 进入页面首先遭遇通知弹窗、订阅弹窗遮挡文章内容,背景变暗且可见至少5个广告
  • 关闭弹窗后,页面仍有5个广告环绕标题和副标题
  • 页面初始加载体积达37MB
  • 更令人震惊的是,作者撰写此文仅5分钟内,网站又持续下载了近500MB的广告内容
  • 文章最后列举了优质RSS阅读器作为替代方案,包括NetNewsWire、Unread、Current和Reeder

The future of version control

637 pointsLinkComment(356)Share

Manyana:基于CRDT的版本控制未来愿景

  • Bram Cohen发布了Manyana项目,这是一个基于CRDT(无冲突复制数据类型)的演示系统,约470行Python代码,采用公有领域授权
  • 核心设计:合并永远不会真正失败,而是在变更"过于接近"时才标记冲突,呈现信息丰富的冲突说明而非阻塞合并
  • 冲突展示更加直观:能明确显示"谁做了什么"——如"左侧删除了函数"、"右侧在某处添加了一行",清晰呈现冲突结构而非两团不透明代码
  • 历史以"编织"(weave)结构存储:包含文件中每行代码的完整存在记录,合并时无需查找共同祖先或遍历DAG
  • CRDT保证最终一致性:无论合并顺序如何结果始终一致,消除了传统三向合并在复杂分支拓扑下的痛点
  • 实现了一种不会破坏历史的rebase机制:通过在DAG中添加"主要祖先"标注,可在保持完整历史的同时获得rebase效果

Tinybox – A powerful computer for deep learning

586 pointsLinkComment(340)Share

极简而强大的神经网络框架 tinygrad

  • tinygrad 将复杂神经网络分解为三种核心操作类型:逐元素操作(ElementwiseOps,处理1-3个张量)、张量缩减操作(ReduceOps)和零拷贝数据移动操作(MovementOps),实现了框架的极简设计。
  • tiny corp 已获得融资,正在招聘全职软件工程师、优秀实习生及运营和硬件岗位人才;赏金任务在支付报酬的同时评估应聘者与岗位的匹配度,但运营和硬件岗位要求有 tinygrad 贡献记录。
  • tiny corp 销售的 tinybox 深度学习计算机包括红色 v2 版(778 TFLOPS,$12,000)、绿色 v2 Blackwell 版(3086 TFLOPS,$65,000)以及计划 2027 年推出的 exabox(1 EXAFLOP,$10M),已通过 MLPerf Training 4.0 基准测试验证性能优势。
  • tinygrad 已实际应用于 comma.ai 的 openpilot 项目,在 Snapdragon 845 GPU 上替代 SNPE 运行驾驶模型,支持加载 ONNX 文件、训练模式和注意力机制。
  • 该框架支持完整的正向和反向传播(自动微分),性能优势源于为每个操作编译定制内核、实现激进的操作融合,以及后端代码量仅为主流框架的十分之一。
  • tiny corp 的目标是"加速发展,将千万亿次计算能力商品化,让每个人都能使用人工智能"。

Why I love NixOS

421 pointsLinkComment(292)Share

为什么我爱 NixOS

  • NixOS 的核心价值在于确定性、可复现的函数式包管理器 Nix,而非仅仅是 Linux 发行版标签——大多数操作系统逐渐积累成难以追溯的状态,而 NixOS 允许你从第一性原理出发定义并重建系统
  • 所有配置(软件包、桌面设置、键盘映射等)可集中在一处声明管理,提供单一真实来源,换新电脑时只需重建即可;作者以 GNOME 扩展和键盘映射的具体代码示例说明这一过程
  • 发布周期稳定(每六个月),支持自动更新升级,开箱即用且几乎无需维护——作者购买的 HP EliteBook X G1a 笔记本即插即用,让他能专注于实际工作而非系统调试
  • 在 LLM 编程时代优势显著:coding agent 可通过 nix shellnix develop 获取所需的特定版本工具、编译器或运行时,在隔离环境中执行而不污染基础系统;作者构建 Rust 语音转文字 agent 时,Nix 自动拉取整套 Rust 工具链,编译完成后系统未被任何 ~/.cargo~/.rustup 污染
  • 同一套理念贯穿笔记本、Shell、项目依赖、CI 流程和 Docker 部署:可用 dockerTools.buildLayeredImage 构建更小的确定性镜像,也可用 flake.nix 捕获 agent 的实验环境并通过 nix flake check 验证,构建过程可完整复现

PC Gamer recommends RSS readers in a 37mb article that just keeps downloading

433 pointsLinkComment(220)Share

PC Gamer 推荐 RSS 阅读器的文章本身却问题重重

  • PC Gamer 发布文章推荐 RSS 阅读器,但访问该页面时会遭遇通知弹窗、订阅通讯弹窗遮挡正文,背景至少显示 5 个广告
  • 该网页初始加载大小高达 37MB,作者在写作的 5 分钟内,网站又额外下载了近半 GB 的广告数据
  • 作者以此为例说明 RSS 阅读器的价值——能够绕过这些恼人的弹窗和广告,直接获取干净的内容
  • 文章提及了几款优质 RSS 阅读器:NetNewsWire、Unread、Current 和 Reeder

The three pillars of JavaScript bloat

470 pointsLinkComment(274)Share

JavaScript 依赖膨胀的三大根源

  • 旧版运行时兼容需求:许多包为支持 ES3 等极老版本环境(IE6/7、早期 Node.js)、防止全局命名空间被篡改(如 Node 的 primordials 机制)以及处理跨 realm 值传递(如 iframe 间对象 instanceof 检查失效)而构建,但现代开发者普遍运行近十年的环境,根本不需要这些保护机制,整个社区却在为极少数人承担成本
  • 原子化架构导致过度拆分:社区曾流行将代码拆分到几乎原子级别,如仅包含一行正则的 shebang-regex 或一行三元运算的 arrify,这些单用包(只有一个消费者)和重复包(同一依赖出现多个版本)不仅增加了供应链安全风险,还让获取成本远超直接内联
  • 过时的 ponyfill 填充包:大量包仍在使用早已被主流引擎原生支持的特性 ponyfill(导入式填充而非修改全局环境),如 globalthis(2019 年起支持,周下载 4900 万次)、indexof(2010 年起支持,周下载 2300 万次)和 object.entries(2017 年起支持,周下载 3500 万次),这些包在功能已内置后从未被移除
  • 问题根源:这些兼容性和架构选择在诞生时代可能是合理的,但社区从未真正演进——小众需求本应隔离到专用生态中,让大多数开发者使用轻量、现代的代码
  • 依赖清理工具:可使用 knip 检测未使用依赖、npmgraph 可视化依赖树分析膨胀来源、e18e CLIanalyzemigrate 命令分析并自动迁移可替代包、module-replacements 项目查找原生替代方案及配套 codemods

Project Nomad – Knowledge That Never Goes Offline

569 pointsLinkComment(207)Share

完全免费且开源的离线知识与AI服务器

  • Project NOMAD(Node for Offline Media, Archives, and Data)是一款完全免费开源的离线知识服务器,许可证为Apache 2.0,旨在为用户提供无需互联网的永久知识访问,与市面上199至699美元不等的收费产品形成鲜明对比
  • 核心功能涵盖四大模块:基于Kiwix的离线信息库(维基百科、医学参考等)、由Ollama驱动的本地大语言模型AI助手、OpenStreetMap离线地图导航,以及Kolibri支持的Khan Academy等K-12教育资源
  • 明确面向四类用户群体:应急准备者(基础设施中断时的医疗参考和生存指南)、离网生活者(偏远地区 cabin/RV/船只使用)、技术发烧友(本地LLM运行与数据自托管),以及家庭和野外教育场景
  • 相比竞品(PrepperDisk、Doom Box、R.E.D.I.)仅支持树莓派且功能受限,Project NOMAD可在用户自选的任何PC硬件上部署,并利用GPU加速运行真正具有智能能力的大语言模型
  • 安装极为简便,在Ubuntu 22.04+或Debian 12+系统上仅需执行两条命令即可完成部署,系统自动处理Docker等全部依赖;项目由Crosstalk Solutions开发和维护

The gold standard of optimization: A look under the hood of RollerCoaster Tycoon

545 pointsLinkComment(151)Share

《过山车大亨》:编程与设计融为一体的优化传奇

  • 克里斯·索耶(Chris Sawyer)几乎完全使用汇编语言编写了《过山车大亨》,这很可能是最后一款以此方式开发的大型商业游戏,使其能够在1999年硬件上流畅模拟包含数千名游客的完整主题公园
  • 代码级别的极致优化:金钱变量根据预期数值范围使用不同大小的数据类型存储(如公园总值用4字节,商品价格仅用1字节);大量使用位移操作替代乘除2的幂的运算,且游戏公式被特意设计为采用这些"CPU友好"的数值
  • 克里斯·索耶一人身兼程序员与游戏设计师,这种角色重叠使其能够将性能特性直接融入游戏设计决策中,而现代开发流程中这两个角色通常是严格分离的
  • 游客行为采用"随机漫步"机制:不在公园中主动寻路前往目标设施,而是沿路径随机行走直到"偶遇"感兴趣的设施,极大减少了昂贵的寻路计算开销;同时游客之间完全无碰撞和避让逻辑,数千名游客可重叠于同一路径格
  • 寻路器内置搜索深度限制以避免帧率波动:普通游客限制5个节点,机械师因重要性更高允许8个节点,而购买地图的游客则提升至7个节点;若搜索超时未找到路径,游客会显示"找不到出口"的想法
  • 将性能限制转化为游戏机制是该作最独特的优化哲学——通过从根本上改变游戏设计来规避技术挑战,而非单纯进行代码层面的微优化,这种方法在角色分离的现代开发中几乎无法实现

Bombadil: Property-based testing for web UIs

201 pointsLinkComment(76)Share

Bombadil:Web UI 属性驱动测试框架

  • Bombadil 是由 Antithesis 开发的属性驱动测试工具,自主探索并验证 Web UI 的正确性属性,旨在更早发现深层 Bug
  • 支持在本地开发环境、CI 流程和 Antithesis 平台三种场景下运行
  • 项目采用 MIT 开源许可证,目前处于早期实验阶段,拥有 782 Stars、24 Forks、3 位贡献者
  • 核心代码以 Rust 为主(占 83.2%),最新稳定版本为 v0.3.2(2026 年 3 月发布)
  • 提供完整的官方手册及示例教程,帮助开发者快速上手
← 2026-03-21 2026-03-23 ...