启用 JavaScript 和 Cookie 以继续。
启用 JavaScript 和 Cookie 以继续。
启用 JavaScript 和 Cookie 以继续。
在70年代和80年代热爱游戏的作者,在专注于电子游戏后,重新发现了桌面游戏的乐趣。最近的一次游戏之夜点燃了新的热情,促使他收集了超过30款游戏并参与了几个Kickstarter项目。 这不仅仅是怀旧;现代桌面游戏提供了一种独特而引人入胜的体验。高质量的组件——从厚实的纸板到雕塑的微缩模型——调动了我们的触觉,并创造了期待感。更重要的是,桌面游戏通过共同的规则和体验来培养真诚的社交联系,降低社交风险,同时提供情感回报。 作者强调了令人满意的“低风险成就循环”,失败是一个学习的机会,以及令人惊讶的游戏玩法多样性,可以刺激不同的认知技能。最终,重返桌面游戏提供了一种受欢迎的*存在感*——放慢速度,需要专注,并将娱乐转变为一种共享的人类体验。这是一种与触觉参与、社交互动以及共度时光的简单乐趣的重新连接。
## 服务端优先的Web开发案例 本文认为,尽管行业趋势如此,严重依赖JavaScript(“JS-heavy”)的Web应用程序通常会带来较差的长期性能,并且需要大量的持续努力来维护。作者是一位Web性能专家,他结合在Automattic的经验,展示了这些方法——常见于单页应用程序(SPAs)——常常无法实现承诺的开发体验优势,并最终阻碍了用户体验。 JS-heavy应用容易因依赖项而膨胀,容易引入性能下降,并且由于框架特定的工具将问题隔离在标准浏览器开发者工具之外,因此难以调试。 维护性能需要持续的警惕,并且经常因代码变更和依赖项的演变而失败。 作者提倡回归更服务端优先的方法——优先考虑服务器端渲染并交付预构建的HTML——作为一种更可持续和高性能的解决方案。 虽然并非万能的解决方案,但服务器端方法提供了更大的控制力、可预测性和可扩展性,从而减轻了用户设备的负担。 最终,本文呼吁行业思维方式的转变,敦促开发人员优先考虑用户体验,并考虑JS-heavy框架的复杂性是否真的必要,或者更简单、以服务器为中心的架构是否更能服务于用户和开发人员。
启用 JavaScript 和 Cookie 以继续。
Please provide the content you want me to translate. I need the text to be able to translate it to Chinese.
## ChronDB:一种多语言时空旅行数据库 ChronDB 最初是一个服务器——一个基于 Git 构建、具有时空旅行能力的键/值数据库,暴露了标准的 PostgreSQL 和 Redis 协议。然而,为了将其嵌入到短暂的 Rust 开发环境(spuff)中,需要进行重新架构。目标不再是需要 JVM,而是直接在 Rust 和其他语言中运行 ChronDB。 解决方案利用 GraalVM Native Image 将 ChronDB 的 Clojure 核心编译成共享库(.so/.dylib)。然后,通过外部函数接口 (FFI) 通过特定语言的绑定(目前为 Rust 和 Python)访问该库。五层架构确保了清晰的关注点分离:语言绑定、C API、Java 桥接、Clojure 桥接和核心 ChronDB 逻辑。 重要的是,“不透明句柄”模式使用整数来安全地跨语言边界引用数据库实例,避免了指针复杂性。数据以 JSON 字符串的形式流动,最大限度地减少了序列化开销。这种设计提供了一个单一的事实来源、跨语言的一致行为以及消除了运行时 JVM 依赖。 该项目是开源的,展示了一种可扩展的多语言持久化方法,其中添加新的语言支持只需要实现一个新的 FFI 包装器。
## 人工智能现状与通往真正智能的道路 OpenAI和Anthropic关于达到人类水平人工智能的说法引发了争论,但深入分析显示,仍然存在重大障碍。本文认为,当前的大型语言模型(LLM)虽然令人印象深刻,但缺乏基本的认知“基元”——例如理解物体恒存性、因果关系和数字——这些基元通过进化硬编码到脊椎动物大脑中。 LLM擅长语言中的统计模式识别,但由于语言*假定*了这些潜在基元,而不是明确定义它们,因此难以进行基本的推理。仅仅用更多的数据进行训练,甚至包括视频,也不够;当前的“世界模型”往往学习的是表面模式,而不是对物理定律的真正理解。 进步需要超越被动观察的数据,转向*具身*人工智能——通过与丰富的、多感官环境互动来学习的智能体。虽然DeepMind的SIMA 2和Dreamer 4等项目正在探索这一点,但它们大多依赖于预训练的语言模型或狭义定义的任务,未能弥合模拟动作与真正认知能力之间的差距。 最终,实现通用人工智能(AGI)可能需要超越当前Transformer模型的全新架构——可能包含反馈循环和符号推理——以及长期的、跨学科的研究努力。尽管投入了大量资金,最近的一项调查显示,大多数人工智能研究人员认为仅仅扩展当前方法无法实现AGI,这凸显了炒作与现实之间的巨大差距。
## 彼得·马蒂森:间谍、作家与求道者 彼得·马蒂森的一生是一幅复杂的挂毯,交织着间谍活动、文学抱负和精神追寻。1950年,他通过耶鲁大学的关系——与詹姆斯·杰苏斯·安格尔顿等人共享,并由诺曼·霍尔姆斯·皮尔森培养——被中央情报局招募。他早期的职业生涯包括在巴黎执行情报工作作为掩护。这段时期见证了《巴黎评论》的诞生,这本杂志与该机构永远联系在一起,尽管其影响程度仍存在争议。 与此同时,马蒂森致力于写作,出版了他的第一个故事和小说,如《种族岩石》和《游击队》。后来,他与中央情报局决裂,对一项他认为在道德上存在妥协的任务感到幻灭。他后来的作品,包括广受好评的《在上帝的田野中嬉戏》,探讨了文化冲突和道德模糊的主题。 一生中,马蒂森是一位多产的旅行家和博物学家,记录了不同的景观和野生动物。在经历个人悲剧后,他接受了禅宗佛教,通过冥想和探索寻求“真实的自我”,并在《雪豹》中记录下来。尽管在文学上取得了成功,并获得了小说和非小说类国家图书奖,但马蒂森仍然是一个不安定的身影,在多段关系中摸索,并不断在经常以怀疑态度看待的世界中寻找意义。他的一生是他公共角色与深深的私密、常常矛盾的内心世界之间的持续协商。
本文详细介绍了一种在 Zig 中使用基于 union(enum) 的“Diagnostics”类型的新颖错误处理方法。不同于传统的错误代码,每个函数定义一个 `Diagnostics` 类型,将潜在的错误负载封装为 unioned enum 的成员。这允许提供丰富的、上下文相关的错误信息,而不会显著增加代码量。 核心 `FromUnion` 函数内联生成这些类型,直接从 enum 标签创建错误集合。一个关键特性是 `withContext` 方法,它可以在错误返回期间有效地将错误负载附加到 `Diagnostics` 实例,从而节省大量内存,例如,通过直接存储 SQLite 错误负载,节省了 500 字节。 该系统简化了调用站点处的错误传播。`call` 方法自动处理 diagnostics 实例化和负载复制,减少了样板代码。错误负载易于访问,用于日志记录和详细报告,如 `logBuildError` 函数所示。虽然 Zig 的静态分析器有时需要显式类型注释,但总体而言,该系统提供了一种强大而简洁的方式来管理 Zig 代码中的错误。作者提供了一个 gist 链接到他们的 diagnostics 模块,以供进一步探索。