每日HackerNews RSS

## NUKEMAP 放弃谷歌地图 NUKEMAP 的创建者亚历克斯·韦勒斯坦详细说明了他将该项目从谷歌地图 API 迁移的决定。 最初,谷歌的 API 是免费、对开发者友好的,并且不断改进,从而促成了 NUKEMAP 的创建和成功。 然而,谷歌最近的价格变动使得继续使用变得不可持续。 尽管 NUKEMAP 拥有适度的受欢迎程度(每天约 15,000-200,000 用户),但成本却飙升至每年超过 20,000 美元,且谷歌的支持有限,申请教育折扣也面临令人沮丧的官僚障碍。 韦勒斯坦发现谷歌对小型开发者或学术研究的需求不回应且漠不关心。 他最终切换到 Mapbox 和 Leaflet,它们提供更合理的价格、更好的支持和更具协作性的环境。 他现在建议学生不要构建依赖谷歌地图 API 的项目,理由是使用量增加可能导致成本高昂。 NUKEMAP 持续发展,并推出新功能,例如辐射剂量暴露工具,现在由其新平台提供支持。

## Google 地图 API 与替代方案 - Hacker News 讨论 最近 Hacker News 的讨论源于一篇 2019 年的文章,关于 NUKEMAP(核打击模拟器)从 Google 地图上移除的原因。核心问题在于 Google 地图 API 的成本不断增加和限制日益增多。 许多评论者分享了因价格过高或面临限制的经历,尤其是在基础地图定制和地理编码方面。虽然用户发现 OpenStreetMap (OSM)、Maplibre 和 Protomaps 等替代方案在视觉上可比甚至更优,但集成它们可能具有挑战性。Google 的地理编码器因其准确性而备受推崇,尤其是在美国地址方面。 这次对话凸显了 Google API 策略的转变——从增长到盈利,使其对开发者来说不太友好。人们对不可预测的计费(使用自动刷新脚本可能产生巨额费用)和 API 的限制性(阻止使用替代基础地图)表示担忧。自托管 OSM 并利用 Protomaps 等服务被认为是可行的、具有成本效益的解决方案,尽管这需要更多技术投入。

## Rust 是否有可能比 C 更快? 最近 Reddit 上的一场讨论引发了一个问题:在其他因素相同的情况下,Rust 的实现是否*有可能*比其 C 等效代码更快? 答案出乎意料地复杂,取决于“相同”的真正含义。 虽然两种语言都可以利用内联汇编生成相同的机器代码,但在看似等效的代码中会出现差异。 Rust 的结构体重新排序以进行优化,可能比 C 的默认布局产生更小的内存占用,尽管 C 可以通过手动重新排序实现相同效果,或者 Rust 可以使用 `#[repr(C)]` 禁用重新排序。 除了代码之外,“社会因素”也发挥作用。 Rust 的安全特性可以鼓励开发者编写更高效,但可能风险更高的代码,而 C 中通常采用更保守的方法。 Mozilla 在 Rust 中成功并行化 Firefox 的样式布局就是一个例子,此前在 C++ 中多次失败。 最后,虽然 Rust 的许多安全检查发生在编译时,但有些仍然发生在运行时(例如数组边界检查),可能会影响性能。 然而,两种语言的编译器都可以在安全可证明时优化掉这些检查。 最终,作者得出结论,Rust *可以* 在根本层面上实现与 C 相同的性能,但涉及开发者、时间限制和工程权衡的实际场景使得广泛概括变得困难。

该仓库托管了书籍“Linux系统编程:实践入门”(No Starch Press,亚马逊购买链接:[https://www.amazon.com/System-Programming-Linux-Stewart-Weiss/dp/1718503563](https://www.amazon.com/System-Programming-Linux-Stewart-Weiss/dp/1718503563))的源代码。 请注意,代码可能与书籍的初版印刷有所不同(可通过`firstprinting`分支获取)。自最新印刷版以来的更改在`CHANGES`文件中详细说明。代码采用GNU GPLv3(程序)和GNU LGPLv3(库 – `common/`和`include/`目录)许可。 仓库按章节组织(例如`ChapterNN`),另有包含头文件、库和makefile的目录。要构建程序,首先`cd`进入`common`目录并运行`make`,然后运行`make install`。这将设置必要的头文件和库。然后,导航到所需的章节目录并运行`make`。每个章节可能都有一个特定的`README`文件,其中包含进一步的说明。欢迎报告错误或改进建议。

一本关于Linux系统编程的新书,以及在GitHub上提供的配套“Demo”程序([github.com/stewartweiss](https://github.com/stewartweiss)),正在Hacker News上引发讨论。用户对书中对cgroups、namespaces和io_uring等现代Linux特性的覆盖感到好奇,这些领域现有的资源可能已经过时。 讨论的中心是这本书与《Linux编程接口》(通常被称为Linux编程的“圣经”)和史蒂文斯的《Unix环境高级编程》等经典教材的比较。 许多评论者表示有兴趣研读这本书,但也承认需要专门的时间来完成。 用户们的主要愿望是获得涵盖Linux系统编程最新进展的更新资源。

## Servo 项目增长:2025 年回顾 Servo 浏览器项目自 2023 年 Igalia 承担项目维护以来,取得了显著增长。数据表明,社区活动大幅增加——合并请求(PR)数量在 2023 年至 2025 年间几乎翻了四倍(达到 3,183 个),贡献者数量也增长了三倍以上,2025 年达到 146 人。值得注意的是,贡献者参与度不断提高,每年提交超过 10 个 PR 的人数也在增加。 技术进展也很明显,Web Platform Tests (WPT) 通过率在 2025 年从 48.2% 提高到 61.6%。该项目也获得了越来越多的关注,在 GitHub 上的星标数量接近 35,000 个。 除了代码贡献外,社区还扩展到包括 5 名管理员、17 名 TSC 成员、25 名维护者和 18 名贡献者。Servo 发布了三个版本,并建立了赞助等级,获得了 4 名铜牌赞助商,资金用于支持关键贡献者和改进 CI 时间。该项目还在全球技术活动中保持了强劲的 presence,并发表了 10 次演讲。 总而言之,2025 年展示了一个充满活力且不断壮大的 Servo 社区,为持续进步做好准备。

## Servo 浏览器引擎迎来活跃 Servo 浏览器引擎,最初是 Mozilla 的一个项目,现在由 Igalia 驱动,并获得 NLnet 和华为等机构的资助,正在经历显著增长。2023/2024 年,贡献者人数激增至 146 人,这得益于 Ladybird 浏览器项目,以及可能对当前浏览器生态系统(和 Manifest V3)的不满。 Igalia 是一家软件咨询公司,积极*编写* Servo 的代码,并通过技术指导委员会引导开发。他们被引入是为了复兴该项目,提供网络引擎开发和驱动程序实现等方面的专业知识。 虽然 Servo 仍然不能完全替代日常使用的浏览器,但在过去三年中,它得到了显著改进,像 GitHub 这样的主要网站现在可以正常工作。讨论的重点是它在嵌入式设备上的潜力,作为 WebKit 的更安全替代方案,但长期维护仍然是一个问题。该项目还在探索像 `webRequestBlocking` 这样的功能,用于像 uBlock 这样的广告拦截扩展。 这次复兴凸显了对浏览器引擎多样性的日益增长的需求,以及对浏览器技术中内存安全的重新关注。

## GitHub Actions:开发者的沮丧 作者表达了对 GitHub Actions 的强烈沮丧,甚至超过了对之前厌恶的技术(如旧版本的 PHP)。核心问题在于他们的项目 `tmplr`(一个模板/脚手架工具)的 CI 构建失败,原因是难以在不同目标平台(Linux ARM、macOS ARM、Linux x86_64、macOS x86_64)上安装 CUE 二进制文件。 尽管 CUE 在大多数平台上都能成功安装和运行,但 Linux ARM 构建始终以“命令未找到”错误告终——这是由于 GitHub Actions 的隔离跨构建环境将 x86_64 二进制文件隐藏在 ARM 运行器之外所致。这引发了一个重复的、耗时的 CI 配置更改和重复构建尝试的调试循环(每次更改需要 2-3 分钟)。 最终,作者通过从 `build.rs` 中移除构建逻辑并将其移动到 GNU Makefile,然后由 GitHub Actions 直接调用来解决了这个问题。他们提倡将构建逻辑保留在 GitHub Actions 的 YAML 配置之外,以避免类似的麻烦,并得出结论,虽然 Actions 提供了易于构建 macOS 的好处,但它通常会带来大量的调试时间和开发者精神损失。

## Seapie:以人为本的 Python 调试器 Seapie 是一款新的 Python 调试器,旨在易于使用和发现。它优先考虑自然的调试体验,力求“像你想象的那样工作”。与传统的调试器不同,Seapie 专注于 REPL 优先的方法,允许使用标准的 Python 语法(例如 `print(myvar)`,`myvar = None`)直接检查和修改变量。 主要功能包括有用的错误消息、可通过 `!help` 从任何地方访问的内置帮助,以及使用 Python 表达式定义调试条件的能力——例如,当函数返回 `None` 或特定函数在调用堆栈中时停止。 Seapie 可以与你的代码无缝集成;断点使用 `seapie.breakpoint()` 设置,调试直接在 Python shell 中进行。命令如 `!step`、`!traceback` 和 `!location` 提供控制,而调试器不会将你锁定在单独的模式中,允许灵活的探索并在任何时候恢复执行。

## Seapie:一个REPL优先的Python调试器 Markushirsimaki推出了Seapie,一个作为`pdb`替代方案的Python调试器。其核心思想是使断点简单地启动一个标准的Python REPL (`>>>`),在当前执行状态下,允许持久地更改变量和定义函数。调试功能通过内置变量(如`_magic_`)和小型`!commands`访问。 评论者指出,`pdb`和`ipdb`已经提供了类似REPL的功能,但Seapie旨在实现更简洁的集成。然而,经验丰富的开发者指出,IDE已经提供了丰富的调试体验——显示调用堆栈和变量状态,而无需REPL命令。 作者欢迎反馈,特别是来自重度调试器用户,讨论围绕Seapie与现有工具的比较以及REPL优先方法与IDE提供的全面视图之间的优缺点。相关项目如`pudb`和`extipy`(后者会打开Jupyter Notebook)也被提及。

Coverage Cat 正在寻找一位注重细节的团队成员,寻求在高增长的初创公司担任兼职职位。您将支持团队处理各种行政、后台和自动化运营工作,助力我们打造全球首个 AI 原生保险经纪人。欢迎应届毕业生以及寻求兼职职位的经验丰富的后台和运营支持专业人士申请。请仅通过上方 YCombinator Work-at-a-Startup 申请按钮提交申请。通过电子邮件发送的申请将被忽略。

黑客新闻 新 | 过去 | 评论 | 提问 | 展示 | 招聘 | 提交 登录 Coverage Cat (YC S22) 正在招聘兼职运营专家 (coveragecat.com) 12小时前 | 隐藏 指南 | 常见问题 | 列表 | API | 安全 | 法律 | 申请YC | 联系 搜索:

最近的拍卖显示,英国海上风电行业的成本正在上升,这受到全球供应链问题、材料成本增加以及与乌克兰战争相关的利率上升的影响。虽然价格比早期的拍卖有所下降,但与上一轮相比,价格已上涨至近91英镑/兆瓦时。 政府为这些成本辩护,认为海上风电仍然比新的燃气发电厂便宜(包括碳定价为147英镑/兆瓦时),并且对长期能源安全至关重要。然而,反对党批评政府未能兑现承诺的账单减免,并引用了不断上涨的合同价格和电网升级成本。 尽管存在政治辩论,但拍卖结果总体上受到能源部门和气候倡导者的欢迎,但人们仍然担心潜在的环境影响,特别是对海鸟种群的影响。对扩大可再生能源的支持很广泛,一些地区政党倡导对苏格兰和威尔士的能源资源拥有更大的控制权。

## 英国获得创纪录的离岸风电供应 英国获得了创纪录的离岸风电项目供应,引发了关于能源价格和安全的讨论。虽然这被誉为积极进展,特别是考虑到英国已经有超过70%的电力来自非化石燃料来源,但对话很快扩展到涵盖能源转型的复杂性。 主要讨论点包括电力和总能源使用量(交通和供暖)的区别,升级电网基础设施以处理增加的可再生能源容量的重要性,以及对能源存储解决方案的需求。人们对风力发电的间歇性以及对备用电源(如天然气)的依赖表示担忧,同时也关注了建设新基础设施相关的成本。 许多评论员强调,虽然可再生能源对于独立和长期成本降低至关重要,但为消费者提供立竿见影的价格救济是最重要的。关于当前方法是否真的能降低账单,存在争论,一些人指出了德国的经验以及逐步淘汰核电的影响。最终,这项倡议的成功取决于在实现环境目标的同时,为家庭带来切实利益。

MBCompass 是一款免费且开源的 Android 指南针和导航应用程序,优先考虑隐私和简洁性。它不同于笨重的地图应用程序,在 OpenStreetMap 上提供清晰的方向(磁北和真北)和实时 GPS 位置,且无广告、无跟踪、无应用内购买。 MBCompass 使用 Jetpack Compose 构建,具有磁场强度显示、传感器融合以提高精度以及浅色/深色主题等功能。它支持横向模式,并在使用过程中保持屏幕活动状态。 该项目正在积极开发中,即将推出用户界面改进,包括 GPS 测速仪和 AMOLED 深色模式。它由社区驱动,欢迎通过 Weblate 和 GitHub 提供翻译和贡献。鼓励通过捐赠来支持 MBCompass,以确保其在 GPLv3 许可下持续可持续地开发。

## MBCompass:一款小型、自由开源导航应用 一款名为MBCompass的新型、体积小于2MB的开源指南针和导航应用已发布(github.com/compassmb)。开发者nativeforks在Hacker News上分享了它,引发了关于自由开源项目许可和盈利的讨论。 该应用采用GPLv3许可,但包含一条禁止带有广告或追踪的商业再分发的说明——评论者对此争论说,这可能超出了GPL的范围。盈利建议包括双重许可、小额应用内购买费用和应用内捐赠提示。开发者目前依靠捐赠,但承认捐赠很少,尤其是在自由开源Android社区中。 MBCompass专注于离线功能和轻量级设计。未来的开发包括航点跟踪、GPS测速仪以及使用GeoPackage的离线地图。用户称赞它的准确性和实用性,其中一人已捐款支持该项目。开发者强调致力于保持完全的自由开源和免费,优先考虑用户尊重和简洁性,而非最大化利润。

## 分数证明:系统性地发现罕见错误 传统测试常常遗漏罕见的边缘情况,导致生产问题。该系统引入“分数证明”——一种结合了基于属性的测试(PBT)和形式化证明的优势,以高效地发现这些错误的方法。标准的PBT速度快但缺乏详尽的覆盖,而完整的证明在计算上不切实际。 分数证明通过将程序属性编码为PBT,然后*递归地分解*它们为更小、更易于管理的子测试来工作。这种分解,由对代码的推理引导,创建有针对性的单元测试,从而平衡速度、准确性和计算效率。 最近,这种方法自动发现了一个Anthropic近似Top-K采样实现中的错误——这个错误需要一个复杂的复现器才能手动找到。该系统生成了一个单元测试,*无需*依赖该复现器。 通过策略性地将复杂的定理分解为更小、可测试的组件,分数证明的计算复杂度随错误稀有度呈对数增长,从而能够系统地检测错误并提高程序正确性。该技术不仅适用于Top-K采样,还可以扩展到复杂的代码库和分布式系统。

## 超越基础的测试:模糊测试、变异和证明 一则Hacker News讨论围绕着改进软件测试展开,起因是关于系统地生成测试用例以捕获类似Anthropic模型中发现的bug的帖子。核心观点是,**模糊测试——自动生成多样化的测试案例——尽管其强大的发现传统测试遗漏的边缘案例的能力,但使用率仍然不足。** 提到了几个工具:**PITEST**用于单元测试变异,**CATS**用于REST API模糊测试,以及**Mutmut**,它故意在代码中引入bug以验证测试覆盖率。这些工具被认为是基于属性的测试(如**Hypothesis**)的宝贵补充。 对话还涉及了**形式化验证(证明)**的潜力,但承认其在计算成本和复杂性方面的当前局限性。虽然证明验证成本低廉,但*生成*这些证明仍然是瓶颈。一些人正在探索混合方法,使用证明来保证安全性,并使用单元测试来保证正确性。 最终,讨论强调了不同测试方法之间的权衡,以及战略性地分配资源以最大化影响的重要性。

更多

联系我们 contact @ memedata.com