每日HackerNews RSS

## Swift 与 C 互操作性:更安全、更快速的体验 Swift 提供与现有 C 库的无缝互操作性,无需重写。虽然直接使用方式模仿 C 的风格——全局函数、不安全指针、手动引用计数——但它可能感觉不符合 Swift 的习惯,并引入安全问题。幸运的是,Swift 提供了注解,可以在不修改底层 C 代码的情况下创建更符合人体工程学和更安全的接口。 这些注解通过模块映射和 API 说明文件应用于 C 头文件,允许 Swift 以 Swift 友好的方式解释 C 约定。这使得诸如参数标签、方法、枚举和自动引用计数等特性成为可能。例如,C 的引用计数对象可以使用 `SWIFT_SHARED_REFERENCE` 转换为具有自动内存管理的 Swift 类。 诸如 `swift-synthesize-interface` 之类的工具可以帮助可视化生成的 Swift API。虽然手动注解可能很繁琐,但脚本可以通过解析头文件并生成必要的 API 说明来自动化该过程。C 头文件结构本身的改进(例如属性的放置)可以进一步简化此过程。 最终,这些技术使开发人员能够在 Swift 项目中利用庞大的 C 库生态系统,同时享受性能和安全性。

## Swift 与 C 互操作性:摘要 swift.org 上的一篇文章强调了在 Swift 中使用 C 库的改进,引发了 Hacker News 上的讨论。虽然 Swift 的原始互操作特性已经存在,但许多开发者并不知道“API 注释”对于更平滑的集成所带来的强大功能。 对话显示了对 Swift 演进的复杂情绪。一些人认为 Swift 正在战略性地将自己定位为未来安全可靠的语言,特别是由于其对 ABI 的理解,使其适用于跨平台开发。然而,另一些人批评该语言日益增加的复杂性,源于随着时间的推移添加的功能,使其比最初设想的更难学习和维护。性能和工具方面的问题也浮出水面,一些开发者更喜欢 Objective-C,或探索 Rust、Zig 或 Nim 等替代方案。 一个关键点是苹果的可能动机:实现与其现有 C/C++ 代码库的无缝交互,而不是完全移植。最终,这场讨论强调了语言设计中安全性、简洁性和功能丰富性之间的权衡,以及弥合不同编程生态系统之间差距的持续挑战。

跳过主内容 补充剂研究与比较网站• 最低价保证 补充剂研究与比较网站 Pillser 注册 登录 研究动态 补充剂 品牌 益生菌 维生素 矿物质 问AI 新问题 做出关于您健康的明智决定 15.9K 补充剂 4.4K 研究论文 7.4K 健康结果 例如:维生素D β-胡萝卜素 胆固醇水平 提示:以“?”结尾触发AI回复 最低价保证 医疗声明 联盟披露 服务条款 隐私政策

## Kip:一种受语言学启发的编程语言 Kip 是一种实验性编程语言,探索语言学和类型论的交叉点,特别是利用土耳其语语法。它独特地将土耳其语名词格整合到其类型系统中,影响函数调用中参数的处理方式——只要格/类型不同,就可以灵活调整参数顺序。 Kip 不使用传统的语法,而是利用土耳其语形态学,包括格(主格、宾格、与格等)和元音和谐。它支持代数数据类型、泛型的类型变量、模式匹配和命名常量,所有这些都使用土耳其语语法表达。 Kip 并非用于生产环境;它是一种研究/教育工具。它包含用于整数和字符串的内置类型,以及基本运算和 I/O。该语言依赖于 TRmorph 工具包进行土耳其语形态分析,通过携带多个解析直到类型检查来处理歧义。 用户可以通过 REPL 探索 Kip,执行文件或生成 JavaScript 代码。一个浏览器游乐场也可用,从源代码构建。该项目正在积极开发中,因此语法和行为可能会发生变化。

黑客新闻 新 | 过去 | 评论 | 提问 | 展示 | 招聘 | 提交 登录 Kip: 一种基于土耳其语格的编程语言 (github.com/joom) 12 分,todsacerdoti 1 天前 | 隐藏 | 过去 | 收藏 | 1 条评论 jsnell 1 天前 [–] 五天前在此讨论过:https://news.ycombinator.com/item?id=46661897 回复 指南 | 常见问题 | 列表 | API | 安全 | 法律 | 申请 YC | 联系 搜索:

客户端挑战:您的浏览器已禁用 JavaScript。请启用 JavaScript 以继续。网站的必要部分无法加载。这可能是由于浏览器扩展、网络问题或浏览器设置造成的。请检查您的连接,禁用任何广告拦截器,或尝试使用不同的浏览器。

## FIPS 合规性与软件依赖:摘要 一位开发者在调试运行于 FIPS 启用容器内的 Rails 应用时,发现了一个 FIPS 合规性问题。尽管正确配置了 OpenSSL 和 Ruby,但当使用 ActiveRecord 时,应用仍然失败,原因是 `pg` gem 中的一个预构建的本地依赖项链接到了不同的加密库。从源代码构建解决了这个问题,因为它链接到了容器的 OpenSSL。 这表明,即使使用了符合 FIPS 标准的基础镜像,当涉及到本地代码时,并不能保证整个依赖图的 FIPS 合规性。 这次讨论引发了关于 FIPS 合规性价值的争论。一些人认为这是获得政府合同的必要条件,而另一些人则认为它对实际安全性的提升有限,甚至可能由于过时的标准和官僚流程而阻碍安全性。人们对维护 FIPS 认证相关的成本和延误表示担忧,包括在安全补丁发布后重新认证。最终,共识倾向于优先考虑强大、现代的密码学,而不是仅仅实现 FIPS 合规性。

## LLM 代理设计中的转变:Shells 取代工具 (2026年初) LLM 代理开发中的一个关键争论在于如何最好地为模型配备工具。 传统上,代理使用定义明确、细粒度的工具,但一种日益增长的趋势是利用 `exec_bash` 调用来利用现有的命令行界面 (CLI)。 这种方法受 Unix shell 命令组合的强大功能启发,具有显著的优势——通过管道降低 token 成本,可脚本化,以及对人类和机器都熟悉的界面。 作者通过访问 Google Docs & Groups 演示了这一点。 他们没有构建自定义代码,而是使用 `Restish` 来解释 Google 的 OpenAPI 规范,有效地将 API 文档转换为可执行命令。 OAuth 身份验证也使用 `oauth2c` 进行了简化,从而用简洁的 shell 脚本取代了数百行 Python 代码。 对于*没有*现成 API 的服务(如 Google Groups),作者成功地通过捕获浏览器中的网络流量、清理数据并提示 LLM 生成客户端来逆向工程 API。 这突显了 LLM 在缺乏官方 API 时弥合差距的潜力。 最终,作者提倡优先考虑 CLI 组合,认为它可以减少维护、最大限度地减少错误,并使个人能够使用最少的定制代码构建强大的代理。

## LLM、API 和 CLI 的兴起 最近的 Hacker News 讨论强调了一种增长趋势:利用命令行界面 (CLI) 和 `curl` 等工具与大型语言模型 (LLM) 结合,用于 API 交互,可能挑战模型调用程序 (MCP) 的主导地位。 许多开发者发现,只需向 LLM 提供 API 规范(如 OpenAPI/OAS),并让它们利用现有的 shell 工具,就能取得成功。这种方法提供了可组合性和可发现性,能够快速创建和集成技能。然而,安全的凭证管理仍然是一个挑战。 还有人正在构建像 `tpmjs.com` 这样的平台,自动生成文档并提供多种交互方式——MCP 服务器、CLI 和 REST 端点,从而为代理提供灵活性。一个关键的争论集中在 MCP 的结构化数据与解析 CLI 输出的灵活性之间的权衡。虽然 MCP 强制执行模式,但 CLI 由于其在训练数据中的普遍性以及顺序性,为 LLM 提供了一个更自然的接口。 最终,这场讨论表明,正在向赋予代理更广泛的交互方式转变,超越单一标准化方法。

请启用 JavaScript 并禁用任何广告拦截器。

这篇文章不是关于*腌制*鱼类,而是**保全·菲什**——一位1766年出生于纽约的人,拥有一个非常不寻常的名字。作为政治显赫的菲什家族成员,保全最初通过捕鲸和航运积累财富,后来又参与了早期的纽约证券交易所和银行业务。 尽管他的名字引起了许多人的有趣反应(甚至激发了船只之间的玩笑交流!),保全·菲什仍然是19世纪纽约的重要人物。他甚至短暂地控制了强大的民主党政治机器“塔曼尼厅”,并成功地抵御了被称为“火车头派”的改革者团体。 “火车头派”在与菲什的斗争中获得了这个名字,他们对黑暗的会场用自燃火柴做出回应——这个名字源于对“火车头”一词的误解。作为那个时代典型的成功商人,保全·菲什的故事突出了塑造早期纽约历史的那些色彩鲜明的人物。

一场 Hacker News 的讨论源于一篇关于“纽约市的腌鱼大亨”的博文。 话题很快集中在优质烟熏鱼的来源,特别是三文鱼片(lox)。 用户们认为 Russ & Daughters 是纽约市一家著名的腌鱼店,他们从 Acme Smoked Fish Corp. 采购产品。Acme 也提供直接销售,包括“鱼类星期五”选项。 有趣的是,据报道 Acme 为不同的熟食店制作定制的三文鱼片混合配方,这意味着 Russ & Daughters 的版本可能仍然是独特的。 讨论还涉及历史悠久的坦曼尼厅大楼,现在被改造成宠物店 Petco 位于底层,与它过去的政治背景形成了鲜明对比。 一位评论员抱怨英国可用的烟熏三文鱼质量不高,指出野生品种的价格很高。

## Anthropic 经济指数:摘要 Anthropic 发布了一份“经济指数”,旨在衡量人工智能,特别是 Claude 的经济影响。然而,Hacker News 评论员的初步反应对其方法表示怀疑。许多人预计会看到人工智能使用带来的*生产力提升*指标,但该指数主要关注人工智能*使用情况*本身——人口统计以及使用方式和地点。 讨论的中心在于,仅仅追踪人工智能的使用是否等同于衡量真正的经济影响。人们对知识型工作中“生产力”的模糊性以及量化人工智能贡献的难度表示担忧。一些人指出,目前的测量方式类似于公司已经追踪人工智能采用的方式,通常依赖于员工自我报告的数据。 一个关键的争论点在于,人工智能是否正在产生真正的智能,还是仅仅反映了提示它的用户的智能。许多评论员强调了提示质量的重要性,并质疑人工智能是否能够独立提供价值。虽然提到 1% 的生产力提升可能具有重要意义,但它并非革命性的。 最后,一些人批评 Anthropic 的方法是“表演性”的,认为这些研究缺乏严格的经济建模,更像是营销而非真正的分析。

## 世界最大的齿轮船在丹麦水域被发现 海洋考古学家在丹麦和瑞典之间的厄勒海峡发现了一艘已知世界上最大的齿轮船——一种中世纪货运船。这艘名为“斯瓦尔盖特2号”的船只建造于大约1410年,长28米,载货量约300吨。这一发现为了解中世纪晚期的贸易和造船业提供了前所未有的见解。 这艘保存异常完好的沉船揭示了罕见细节,包括幸存的索具和砖砌的厨房——在丹麦水域发现的最早的此类厨房,表明船员拥有更高水平的舒适度和组织性。木材分析表明,这艘船只在荷兰建造,使用的材料来自波美拉尼亚和荷兰,突显了复杂的供应链。 重要的是,“斯瓦尔盖特2号”提供了“城堡”——船首和船尾的升起平台——的第一个实物证据,此前这些平台仅在艺术作品中出现。该船只的尺寸表明,存在一个高度组织化的贸易体系,能够支持盐、木材和食物等大宗商品的运输。“斯瓦尔盖特2号”目前正在进行保护,并有望重塑我们对中世纪航运及其在北欧贸易中的作用的理解。

## 丹麦发现中世纪考格船 丹麦维京船博物馆宣布发现一艘保存异常完好的考格船——一种中世纪货船,据信是迄今为止发现的同类船只中最大的。该船建造于1410年左右,名为“Svælget 2”,长28米,宽9米,船体使用来自波兰的橡木和来自荷兰的船架建造,凸显了复杂的北欧贸易网络。 Hacker News上的讨论引发了对新闻来源的质疑,一些用户指出*medievalists.net*网站可能存在问题,认为它可能依赖于SEO优化的内容而非原创报道。另一些人澄清,“考格”指的是船,而非齿轮,两者源于具有“块状物”含义的共同原始日耳曼语词根。 尽管被描述为“最大的”考格船,一些评论员警告不要使用夸张的语言,指出古代存在更大的船只,但用途不同。这项发现仍然意义重大,代表了中世纪贸易的关键组成部分,并朝着提高运输能力和降低商品价格迈出了一步。

## 解锁固件秘密,无需调试访问 本文详细描述了一次成功从锁定状态的嵌入式设备——廉价的网管型交换机——中提取密码的尝试,即使没有传统的调试访问权限。作者利用设备外部SPI闪存的指令跟踪来理解固件的代码流程。 目标设备是一款基于瑞昱RTL8372N芯片的GoodTop GT-ST024M交换机,最初通过UART阻止了访问。由于无法直接调试,作者专注于存储在W25Q16JV QSPI闪存芯片上的固件,利用其XIP(就地执行)功能。通过使用SLogic16U3逻辑分析仪捕获SPI通信,他们创建了加载执行的指令跟踪。 8051架构的代码分段系统使得逆向工程变得复杂,而标准Ghidra工具对此不支持。开发了一个自定义加载脚本来处理这个问题,并分析指令跟踪以确定密码输入期间执行的代码段。这揭示了关键位置,最终在固件中发现了XOR加密的密码。然后,注入了一个小的代码片段,通过UART转储了解密的密码。 该项目突出了在无法调试时硬件级分析的力量,并展示了SLogic16U3作为一种可行且经济实惠的替代方案,可以替代更昂贵的逻辑分析仪,如Saleae Logic。它强调了动态观察和创造性问题解决能力可以克服嵌入式安全研究中的障碍。

这个Hacker News讨论围绕一篇文章展开,文章详细介绍了如何通过追踪SPI闪存指令来提取设备的UART密码。作者选择了一种动态方法——使用逻辑分析仪实时分析设备行为——而不是静态分析固件,因为像Ghidra这样的工具在代码分段处理方面存在局限性。 用户们讨论了不同逻辑分析仪的优缺点,指出Saleae价格昂贵但软件优秀,并强调了价格实惠的替代方案,例如文章中使用的69美元分析仪(可在16个通道上实现200MS/s)以及基于树莓派Pico的DIY选项。讨论还涉及了8051微控制器在现代设备中的惊人普及程度,从USB外围设备到触摸屏控制器。 一些评论者询问了解锁开关的动机以及SPI时钟频率(确定为60MHz)。最后,有人提出了对“网页管理”设备的安全隐患的担忧,质疑它们是否可能泄露数据。

更多

联系我们 contact @ memedata.com