泥土:每日数字文化和娱乐洞察
关闭图标
泥土:每日数字文化和娱乐洞察
投稿关于泥土媒体网站使用条款隐私推特不和谐电子邮件© 2025 泥土媒体公司。版权所有。
泥土:每日数字文化和娱乐洞察
关闭图标
泥土:每日数字文化和娱乐洞察
投稿关于泥土媒体网站使用条款隐私推特不和谐电子邮件© 2025 泥土媒体公司。版权所有。
## 经典编译器教程的现代演绎 Jack Crenshaw 的“让我们构建一个编译器”系列(1988-1995),最初用 Pascal 编写并以 68000 汇编为目标,至今仍对编译器爱好者具有惊人的现实意义。为了理解这一点,作者将该教程的编译器一丝不苟地翻译成了 Python,并输出 WebAssembly (WASM)。 该项目的目标是通过提供可运行的代码与原始课程并存,使教程对现代程序员来说更易于理解。一个关键示例是将一个简单的 KISS 语言程序编译成 WASM,展示过程调用和参数传递。虽然生成的 WASM 故意没有进行优化,但它展示了核心概念。 该教程持久的吸引力源于其循序渐进的实践方法:直接构建递归下降解析器,而不是依赖于解析器生成器,并立即关注代码生成。这与传统编译器课程形成了鲜明对比,传统课程在达到代码生成阶段*之前*, heavily 强调了语法分析和语义分析。 然而,该教程的语法制导翻译方法,虽然非常适合初学者,但在处理类型检查等复杂问题时会暴露出局限性。最终,该项目为基础教程与现代开发实践之间提供了一座宝贵的桥梁。代码和与原始教程的详细映射可在 GitHub 上找到。
## 可靠的 C:摘要 可靠的 C 旨在记录 C 语言的一个实用子集,解决现代 C 标准(C23、C2Y)日益复杂及其有限的实现支持问题。这些较新的标准与“经典 C”差异很大,并且在各种 C 编译器中通常支持不足。 该项目认识到 C 语言持久的优势——可移植性、广泛的实现和寿命——但承认并非所有 C 代码都是真正可移植或可靠的。可靠的 C 不是一种新的方言,而是一份编写 C 代码的指南,旨在最大限度地提高跨各种平台的兼容性和可预测性。它侧重于记录*哪些有效且可靠地工作*,而不仅仅是技术上符合标准的内容。 关键原则包括避免未定义行为(UB)——没有保证结果的代码——并理解“按效果”规则,该规则允许编译器在可观察行为保持一致的情况下进行显著的优化。该指南强调,虽然许多实现对某些 UB 表现出可预测的行为,但依赖这些行为是有风险的。 最终,可靠的 C 优先考虑兼容性而非最新功能,为编写健壮、可维护的 C 代码提供了一条途径,这些代码将在未来几十年内保持功能。它是一份资源,供那些将保证编译和正确执行放在首位开发人员使用。
五十年前,《大白鲨》引发了广泛的恐惧,但公众对鲨鱼的看法可能正在转变。最近一项对澳大利亚、美国和英国371人进行的调查显示,人们的观点比“凶猛的捕食者”这一刻板印象更为细致。虽然恐惧依然存在(约占30%的回复),但大多数人——67.5%——使用“牙齿”、“海洋”和“捕食者”等中性词语来描述鲨鱼。
值得注意的是,17.5%的人提供了积极的描述,如“雄伟”和“可爱”,而快乐是与这些动物相关的第二最常见的感情(17%)。研究人员认为,这表明态度正在演变,超越了媒体中经常看到的纯粹负面描绘。
尽管该研究存在局限性——样本量相对较小且具有特定的人口统计特征——但它强调了跟踪公众舆论的重要性,因为它直接影响保护工作。这对于鲨鱼尤其重要,超过37%的鲨鱼物种受到威胁,但最近通过国际协议获得了越来越多的保护。
最近,Ruby on Rails 的创建者 David Heinemeier Hansson (DHH) 与 WordPress 创始人 Matt Mullenweg 之间的一次争论,凸显了开源社区内部持续存在的紧张关系。DHH 发布了 Fizzy,一款看板工具,使用了新的“O’Saasy”许可协议,该协议禁止竞争的 SaaS 产品——这违反了开源倡议组织 (OSI) 的定义。DHH 不予理会批评,认为“开源”仅仅意味着源代码可用。 Mullenweg 反驳说,遵守既定的 OSI 定义至关重要。虽然对定义的争论很重要,但核心问题是*可持续性*。许多公司从开源工作中获利,却没有充分地贡献于其维护和开发。 DHH 的许可协议旨在解决这个问题,允许他的公司建立可持续的业务。然而,它更准确地描述为“源代码可用”,而不是“开源”。这场争论强调了寻找解决方案的必要性——不仅仅是重新命名问题——以激励贡献并解决开源生态系统中的“搭便车”现象。辩论应该集中在*如何*鼓励可持续参与,而不是*如何*称呼它。
## NIST 网络时间服务器 – 事件摘要 2025年12月6日21:13 UTC,NIST盖瑟斯堡校区的原子钟主时钟发生故障,导致其网络时间服务器出现-10毫秒的时间跳跃。同时,监控和控制系统也出现故障,包括服务器time-a-g的操作系统关机以及time-f-g服务的暂停。 由于偏移量较小,大多数服务器仍可运行。NIST正在监控情况,如果误差扩大,可能会禁用受影响的系统,以优先保证稳定性而非极致精度。 备用时钟可用,并且计划于2025年12月9日更换故障的原子钟,这将导致短暂的服务中断。重要的是,NIST博尔德校区和WWV/科林斯堡校区的时间服务器**未**受此事件影响。
## ID 的隐藏复杂性 虽然自动递增 ID 最初看起来很简单,但随着系统规模扩大,它们会成为一个重要的架构限制。ID 在整个系统中大量存在——URL、日志、API——使得格式更改变得极其困难。分片、多区域部署、微服务和离线系统都需要超越简单的递增。 常见的替代方案,如 UUIDv4,提供了唯一性,但缺乏排序和结构。ULID 和 UUIDv7 提供了基于时间的排序,但难以处理高并发和时钟漂移。Snowflake 提供了强大的排序和性能,但僵化且难以演进。 作者提倡在选择 ID 格式时,仔细考虑排序保证和结构可扩展性。他们开发了 OrderlyID,这是一种优先考虑结构、演进和类型安全的格式,它包含了时间戳、租户/分片提示,甚至用于错误预防的校验和。 最终,“最佳”ID 格式取决于特定的系统约束。自动递增适用于简单的设置,而更复杂的场景需要仔细权衡利弊。选择 ID 格式不仅仅是一个技术决策,更是一项长期的架构承诺。
``` [由 corbet 发表于 2025 年 12 月 10 日] Rust 实验的话题刚刚在年度维护者峰会上讨论。在场的开发者达成共识,Rust 在内核中不再是实验性的——它现在是内核的核心部分,并且会长期存在。因此,“实验性”标签将被移除。祝贺 Linux Rust 团队的所有成员。(请关注我们的维护者峰会报道以获取更多详细信息。) ```
这项研究提出了一种**完全移除推理过程中的Transformer**的新方法,在不牺牲甚至*提高*准确性的情况下实现。其关键是从冻结的大型语言模型(Llama-3.3-70B)中提取一个低维“语义场”(256D),代表与任务相关的语义。 一个轻量级的压缩器(AN1)进一步减小这个场,平均将分类准确率提高1.81%。然后,一个拥有30M参数的小模型学习直接从文本*重构*这个场,从而实现**60倍更快的推理速度**,且准确率损失最小(0.35pp)。 核心发现是Transformer模型以令人惊讶的低秩结构编码信息。这使得创建**场处理单元(FPUs)**成为可能——一种新的计算基元,用更简单的场运算取代复杂的矩阵乘法。这项研究提供了一个完全可复现的基线实现,为未来高效、无Transformer的推理工作铺平道路。
## Cloudflare 错误页面生成器 概要
该项目允许您创建定制的错误页面,外观与 Cloudflare 使用的错误页面非常相似,并易于嵌入到您自己的网站中。 提供了在线编辑器,方便快速创建页面。
对于开发者,该项目可以通过 pip 安装 (`pip install git+https://github.com/donlon/cloudflare-error-page.git`),并使用 `render` 函数根据提供的参数生成 HTML 错误页面——控制浏览器、Cloudflare 和主机服务器的状态指示器。
**最新更新 (2025年12月9日):** 所有图标现在都是基于向量的,并与样式表内联到一个文件中,从而提高了性能并简化了部署,消除了外部资源依赖。
该项目支持通过 `ray_id` 和 `client_ip` 参数显示真实的细节,例如 Cloudflare Ray ID 和用户 IP。 提供了示例配置和 Flask 演示服务器 (`flask_demo.py`),以说明各种错误场景和自定义选项。 还有一个在线演示。