Google Cloud Console 无法加载来自 www.gstatic.com 的 JavaScript 资源。可能原因:您的网络管理员阻止了 www.gstatic.com 或其 IP 地址;Google 由于过多的自动化请求暂时阻止了您的帐户或网络。请联系您的网络管理员寻求帮助。
Google Cloud Console 无法加载来自 www.gstatic.com 的 JavaScript 资源。可能原因:您的网络管理员阻止了 www.gstatic.com 或其 IP 地址;Google 由于过多的自动化请求暂时阻止了您的帐户或网络。请联系您的网络管理员寻求帮助。
## PlanetScale 的零停机数据库迁移方案
数据库迁移通常令人担忧,因为它可能导致停机、数据丢失和成本增加。PlanetScale 通过一种专为大规模(太字节到拍字节)迁移设计的流程来应对这些挑战,*无需*停机。
他们的方案包括对现有数据库进行一致快照,然后持续复制更改到新的 PlanetScale 数据库。一个“VDiff”流程会在将应用程序流量逐步转移到 PlanetScale 之前验证数据完整性,同时仍然将查询路由回原始数据库进行测试。这允许进行彻底的验证,并且至关重要的是,如果出现问题可以立即回滚到旧系统。
该流程利用 Vitess 的 VReplication 进行数据复制和更改复制。成功的关键是在最终切换期间缓冲查询(持续时间小于一秒),并保持反向复制以实现无缝回滚。PlanetScale 还建议在迁移期间对数据库进行分片,以提高可扩展性。
最终,PlanetScale 的方案优先考虑平滑、无风险的过渡,允许用户升级、分片或切换数据库系统,而不会中断服务。他们旨在分享这些实践,以使更广泛的数据库社区受益。
## AI 代理:真实世界应用早期洞察 最近一项分析与 Anthropic 的 Claude Code 和公共 API 数百万次交互的研究揭示了人们实际如何使用 AI 代理。该研究强调了代理自主性日益增长的趋势——与 Claude Code 的最长会话长度在三个月内几乎翻倍,表明现有模型能够进行更独立的运作。 经验丰富的用户越来越多地赋予代理更多自由(自动批准操作),但也会在需要时积极监控和干预。有趣的是,代理本身经常会暂停以寻求澄清,通常比人类打断它们的频率*更高*。 虽然目前大多数代理活动集中在软件工程领域,并涉及低风险任务,但其使用正在扩展到医疗保健、金融和网络安全等敏感领域。尽管这些高风险部署尚未广泛普及,但该研究强调了对部署后进行稳健监控以及开发新的“人机交互范式”的必要性。 研究结果表明,有效的监督并非在于批准每一个操作,而是要确保人类能够在必要时进行干预。进一步的研究至关重要,以了解代理如何演变,并开发平衡自主性与负责任部署的保障措施。这些早期数据强调了代理行为是由模型、用户和产品设计共同构建的。
2022年1月17日,我刚读完奥利弗·萨克斯的精彩著作《万物就位》。书中他提到,银杏树已有数亿年历史,其表型自那时起几乎没有改变——活化石。当然,这种树就是结银杏果(ぎんなん)的,银杏果是东亚的一种美食,常见于许多菜肴中,例如茶碗蒸。银杏的历史比恐龙还要久远!而且我们现在还在吃它!这太酷了。这让我开始思考——今天我们食用的最古老的食物是什么?标准:必须可供人类食用;自化石时代以来,形态没有改变。注:我只是一个业余爱好者,不是古植物学家。欢迎大家补充和修改,如果我分类错误或遗漏了什么。
启用 JavaScript 和 Cookie 以继续。
## 大型语言模型实用指南:摘要
《大型语言模型实用指南》是一本面向分析师和数据科学家,介绍如何使用Python将大型语言模型整合到工作流程中的实践教程。本书共354页,涵盖了来自主要供应商(OpenAI、Anthropic、Google和AWS Bedrock)的基础模型的实际应用,超越理论,专注于*如何*使用它们进行构建。
读者将学习API调用、结构化输出生成(使用JSON、XML和YAML),以及诸如检索增强生成(RAG)等技术,并结合各种向量数据库(OpenAI、AWS S3、Google BigQuery)。本书还探讨了工具调用、模型上下文协议(MCP)和构建智能体等高级概念。
本书的独特之处在于它涵盖了由大型语言模型驱动的编码工具,如GitHub Copilot、Claude Code和Google的Antigravity,并提供了实用的设置和使用示例。尽管承认大型语言模型领域的快速发展,本书仍能为理解核心原理和构建实际应用提供坚实的基础,即使示例侧重于犯罪学,但可应用于各个领域。
本书有平装本(59.99美元)和epub版本(49.99美元),包含超过250个代码片段和80张截图,前60页提供免费PDF预览。
## 弥补遗憾:这并非关于拖延 传统观念认为,退休储蓄不足与拖延症有关——人们本打算储蓄,却屈服于当下偏好。然而,一项针对美国和新加坡60-74岁人群的新研究对此提出了挑战,发现拖延症与对储蓄的遗憾之间关系微弱,甚至呈*反向*关系。 相反,**经济冲击**是希望自己储蓄更多的主要预测因素。近70%的经历财务困境(失业、医疗费用、离婚)的美国人表示后悔,而没有经历冲击的人中,这一比例为42%。在新加坡,由于健全的社会保障体系和强制储蓄计划(如中央公积金)可以缓冲这些影响,这种差异并不明显。 该研究强调,问题不在于缺乏意志力,而在于缺乏机构支持来应对不可避免的生活事件。虽然行为“助推”有其价值,但解决潜在的财务不稳定——通过更强的社会保险和风险管理——对于提高退休保障至关重要。此外,理解概率的能力,而不仅仅是金融素养,与更低的遗憾相关,表明为不确定性做好准备是关键。
## -fbounds-safety:摘要 `-fbounds-safety` 是一项编译器特性,旨在通过严格的边界检查来防止 C 代码中的越界内存访问。它通过将显式或隐式边界信息与每个指针关联来实现这一点,确保访问保持在定义的限制内,并在违反时触发确定性的陷阱。 该系统利用多种方法:**宽指针**(内部携带边界数据)和**边界注释**(如 `__counted_by(count)` 指定缓冲区大小)。为了方便采用,局部变量默认使用宽指针,从而最大限度地减少注释需求,而函数参数仍然采用传统注释以保持 ABI 兼容性。注释如 `__single` 可以防止指针算术,从而提高安全性。更通用的注释包括 `__counted_by`、`__sized_by` 和 `__terminated_by`,用于数组和字符串。 编译器通过限制对指针及其相关边界的更新来强制正确性,并可能插入运行时检查。它还提供 `__unsafe_` 函数,以便与缺乏边界安全的旧代码互操作。默认指针类型会根据 ABI 可见性进行智能分配——`__single` 用于 ABI 可见指针,`__bidi_indexable` 用于局部变量——从而减少注释负担。细致的规则管理指针转换,以维护边界完整性,防止不安全的转换,同时允许通过显式转换或内置函数进行受控转换。目标是在最大限度减少对现有 C 代码库的干扰的同时,提供强大的内存安全保证。
## 签名与故事:历史的一瞥
从华丽的笔迹到几乎难以辨认的潦草,历史人物的签名提供了了解他们独特人生的窗口。约翰·汉考克那标志性的大签名成为了“签名”一词的代名词,而莎士比亚的签名却令人沮丧地存在多种版本。签名随着职业生涯的发展而演变——拿破仑的签名在流放期间变得潦草,爱因斯坦的签名被大量伪造,达利据说签了数千张空白纸,助长了伪造市场。
除了美学之外,签名还揭示了个性和环境。伊丽莎白一世的花哨笔迹是一种防伪措施,而贝多芬不稳定的笔迹反映了他的耳聋。一些签名具有巨大的历史意义,例如林肯在《解放宣言》上的签名。另一些则反映了野心——玻利瓦尔自信的笔划,或马基雅维利试图获得工作的尝试。
许多人物留下了大量的书面遗产:居里的放射性文件需要小心处理,托尔斯泰的《战争与和平》由他的妻子手抄,甘地的文集达100卷。从爱迪生的专利到莫扎特的音乐笔迹,这些签名不仅仅是纸上的名字——它们是与历史上最具影响力的人物建立的切身联系。
C++26 引入了 `std::is_within_lifetime`,这是一个 `consteval` 函数,旨在确定指针是否在*编译时*指向当前在其生命周期内的对象。虽然看似小众,但它解决了关键问题:安全地检查联合体内的活动成员。
传统上,确定联合体的哪个成员处于活动状态一直存在问题,尤其是在常量求值期间,直接访问非活动成员会导致未定义行为。`std::is_within_lifetime` 提供了一个标准解决方案。
该函数接受一个指针(以避免引用带来的生命周期扩展问题),并且有意设计为通用名称,预计用途不仅仅是联合体——可能有助于其他编译时对象生命周期检查。它的最初动力源于需要实现一种空间高效的 `Optional<bool>` 类型,允许在编译时确定值是否存在,而无需运行时开销。
目前,主流编译器缺乏对这个 C++26 功能的支持,但它代表了增强 `constexpr` 求值的实用性和表达能力的一个有价值的补充。