【HN中文日报】今日科技圈大事件速递:SQLite数据丢失风险、AI模型蒸馏争议、还有...自制朋友圈LAN?

意外富翁 · 6个月前 · News · 34 · 0

今天 Hacker News 社区聊了啥? NO.20250724

今天份的科技日报来啦!SQLite 用户注意,你的数据可能在静默丢失!网站指纹追踪比想象的更可怕,隐私岌岌可危。还有,AI 模型蒸馏技术火热,但暗藏争议!想学音乐/代码?模仿大佬就对了!更有牛人自建了个永久在线的朋友圈 LAN,快来看看大佬们都在玩什么!别犹豫了,点开全文,一起涨姿势!

Hacker News 中文精选


SQLite WAL 校验和静默失败可能导致数据丢失

本文讨论了 SQLite 在 WAL (Write-Ahead Logging) 模式下校验和错误处理的问题,指出 SQLite 在检测到 WAL 文件中的校验和错误时,会丢弃错误帧及其后续所有帧,而不是抛出错误,这可能导致数据丢失。

文章详细解释了 SQLite 的 WAL 机制,它首先将写入操作记录到 WAL 文件中,然后在检查点操作期间将数据从 WAL 文件写入主数据库文件。WAL 中的每个页面称为一个帧,包含帧号、页号、提交标记和校验和。SQLite 使用滚动校验和,即当前帧的校验和依赖于前一帧的校验和。当检测到校验和不匹配时,SQLite 会丢弃该帧及其后续所有帧。校验和验证发生在构建 WAL 索引(.db-shm 文件)期间。如果存在 .db.db-wal 文件,但缺少 .db-shm 文件,并且在 WAL 写入期间发生非正常关闭,则下次启动时 SQLite 会重建索引,此时会触发校验和检查。

作者认为,SQLite 不在检测到损坏时抛出错误,并且自动执行检查点操作,会导致数据丢失。作者希望 SQLite 在检测到损坏时抛出错误,并允许用户选择忽略损坏并继续操作。作者还提到,即使损坏的帧属于旧版本的页面,也会导致数据丢失。

Pekka Enberg 认为,SQLite 运行在嵌入式环境中,没有服务器,因此核心开发者可能认为继续运行比崩溃更好。Alex Miller 提出,SQLite 主要运行在具有廉价 SD 卡的移动设备上,损坏更为常见,因此 SQLite 具有损坏检测功能更为重要。

由于没有评论内容,此处省略评论分析部分。


网站指纹识别的严重性分析

本文深入探讨了网站指纹识别技术,揭示了其对用户隐私的潜在威胁,即使在用户清除缓存或使用隐私浏览模式下,网站仍然可以通过分析浏览器和硬件配置来识别用户。

文章首先解释了传统的cookie跟踪方式以及现代浏览器提供的防护措施,然后重点介绍了指纹识别技术,这种技术通过收集浏览器版本、CPU数量、屏幕尺寸等信息生成唯一ID,从而在用户不知情的情况下进行追踪。作者通过一个名为FingerprintJS的公司提供的demo,展示了指纹识别技术的准确性,即使在清除缓存和使用隐私浏览模式下,该技术仍然可以识别用户。作者分别在Firefox、Chromium和Tor浏览器上进行了测试,结果显示,默认配置下的Firefox和Chromium都容易受到指纹识别的攻击,而开启privacy.resistFingerprinting的Firefox可以有效阻止指纹识别。文章强调,由于Web浏览器和Web标准的复杂性,指纹识别比想象的更容易实现,这对用户的隐私构成了严重威胁。文章还提到,一些电商网站利用指纹识别技术来防止信用卡欺诈,但这同时也牺牲了用户的隐私。


基于绳索驱动的高精度机器人狗 CARA

CARA 是一款使用绳索驱动的四足机器人,其独特之处在于采用绞盘驱动,无需齿轮或滑轮,实现了零回程、高扭矩透明度、低惯量和低成本等优势。这款机器人由 Aaed Musa 设计,是继 ZEUS、ARES 和 TOPS 之后的又一力作。

CARA 的核心在于其精确的 8:1 齿轮比的实现。设计者通过数值计算方法,精确测量绳索直径,并使用线性插值法计算出能产生精确 8:1 齿轮比的外部滚筒直径。腿部设计是 CARA 的关键,采用了同轴五杆机构,这种设计能够更均匀地分配电机之间的负载,结构也更为紧凑。每个关节都由一个 8:1 的绞盘驱动,使用 Dyneema DM20 绳索和 Eaglepower 90KV BLDC 电机,电机控制由 ODrive S1 FOC 控制器处理。

机器人的结构设计相对简单,四个腿安装到机器人的核心,并固定四个碳纤维管,形成其结构框架。机器人大脑是 Teensy 4.1 微控制器。

由于没有评论内容,这里跳过评论相关的总结与分析。


通过模仿学习音乐和代码

这篇文章探讨了通过模仿(cover)歌曲和代码库来学习音乐和编程的有效方法。作者认为,模仿是学习新技能的绝佳途径,因为它提供了一个客观的参照物,让你能够对比和学习。

在音乐方面,当你尝试演奏别人的作品时,你可以专注于尽可能接近原版,这能让你深入理解原作者的意图,例如,某个和弦的编排方式。通过简化或修改原版,并比较不同版本之间的差异,你就能逐渐理解原作者这样做的原因。

同样,在编程领域,你可以通过重新实现现有的库(例如 Boost 库的部分功能)来学习 C++ 和数据结构。通过研究库的 API、实现方式和底层原理,然后尝试自己编写代码,你可以更深入地理解代码背后的设计思想。当你遇到难以理解的地方时,可以尝试不同的实现方式,从而发现原作者选择特定方案的原因。

作者还鼓励大家不要害怕模仿,即使别人已经做过类似的项目。重要的是,你要从中学习,并最终创造出属于自己的东西。模仿不是抄袭,而是一种学习和进步的方式。当然,在使用他人作品时,一定要注明出处。

评论区也对此话题展开了热烈的讨论:

  • @ozim: 分享了自己的经历,指出有些人会批评模仿行为,但他认为模仿是学习和尝试的好方法,不要理会那些负面评价。
  • @datameta: 强调即使是逐字重新输入代码,也能比复制粘贴学到更多。
  • @michaelterryio: 指出本杰明·富兰克林在他的自传中也提到过类似的学习方法。
  • @empressplay: 提到了创意编程,认为它结合了艺术和动画,通过模仿和再创作来学习编程。
  • @RickJWagner: 认为无论是音乐还是编程,都会有人批评你的版本不如原版,但不要因此气馁。

总的来说,评论区普遍赞同通过模仿来学习的观点,并分享了各自的经验和看法。


科学写作的价值:在 LLM 时代坚持人工撰写

这篇文章探讨了在大语言模型(LLM)时代,人类撰写科学文章的价值。文章强调,写作不仅仅是报告结果,更是发现新想法和进行深度思考的工具。

文章指出,写作能帮助我们以结构化的方式整理多年的研究、数据和分析,从而提炼出核心信息和工作的影响。 此外,手写还能促进大脑的广泛连接,对学习和记忆产生积极影响。 然而,随着 LLM 的发展,它们可以在短时间内生成科学文章甚至同行评审报告,这似乎节省了时间和精力。

尽管如此,文章强调,LLM 不能被视为作者,因为它们缺乏责任感。完全由 LLM 撰写的稿件不应被发表。更重要的是,如果写作本身就是思考的过程,那么我们阅读的到底是 LLM 的“想法”,还是研究人员的思考? 当前的 LLM 还可能出现“幻觉”,产生错误信息。因此,LLM 生成的文本需要经过彻底的检查和验证,这使得 LLM 实际节省的时间变得值得怀疑。

当然,LLM 并非一无是处。它们可以帮助提高可读性和语法,对母语非英语的人尤其有用。LLM 还可以用于搜索和总结文献、提供要点和辅助头脑风暴。 此外,LLM 还能帮助克服写作障碍,为研究结果提供替代解释,或识别看似无关主题之间的联系,从而激发新想法。

总而言之,将整个写作过程外包给 LLM 可能会剥夺我们反思领域、创造性地将研究结果塑造成引人入胜的叙述的机会,而这种能力在学术写作之外也至关重要。


Kotlin 静态代码分析工具 Detekt 介绍

本文介绍了 Detekt,一个用于 Kotlin 语言的静态代码分析工具,旨在帮助开发者编写更清晰、更易于维护的 Kotlin 代码。Detekt 提供了 Gradle、Maven 和 Bazel 等多种构建工具的插件,方便集成到 Android、JVM、JS、Native 和 Multiplatform 项目中。

Detekt 的主要优势在于其可扩展性,开发者可以自定义规则来跟踪和修复代码库中的反模式。该工具完全开源,由社区驱动,鼓励开发者参与贡献,共同塑造其未来。通过使用 Detekt,开发者可以专注于构建出色的软件,而无需过多关注代码风格和潜在问题。它能够集成到各种项目中,并支持自定义规则,帮助开发者跟踪和修复代码中的不良模式。

评论区主要围绕 Kotlin 的使用场景和 Detekt 的优势展开了讨论。有人好奇有多少人在后端开发中使用 Kotlin,并认为 Java 已经赶上,Kotlin 的优势可能不足以抵消潜在的风险。另一些人则指出 Kotlin 对 IntelliJ IDEA 的依赖是其缺点,VSCode 的支持不佳影响了现代 AI 工具的使用。

但也有评论者表达了对 Detekt 的喜爱,认为它非常适合强制执行标准 linter 无法覆盖的项目约定。通过访问完整的 AST,开发者可以使用自定义分析器强制执行任何类型的规则,而 LLM 可以减少创建新分析器 90% 的工作量。还有用户提到 Detekt 已经使用了多年,并称赞其高级 lint 规则和类型解析功能,希望它能尽快支持 K2。也有人好奇为什么这篇文章突然成为 HN 上的热门文章。

总的来说,评论区对 Kotlin 的应用场景和 Detekt 的实用性存在不同的看法,但普遍认可 Detekt 在 Kotlin 代码质量保证方面的价值。


BGP.Tools:互联网生态系统的浏览器

BGP.Tools 是一个用于浏览互联网生态系统的工具,用户可以通过 ASN、前缀、DNS 或 MAC 地址进行搜索。它提供近乎实时的 BGP 数据和用户友好的界面,还提供 BGP 网络监控和 IRR 数据库监控等付费功能。

该工具可以显示你连接的 IPv4 和 IPv6 地址,以及到 bgp.tools 的延迟。它还提供了一些示例页面,例如 Cloudflare (AS13335)、LINX LON1 和 Google DNS Prefix。BGP.Tools 提供了免费的近实时 BGP 数据和用户友好的界面,并且会频繁更新外部数据。付费用户可以享受 BGP 网络监控、IRR 数据库监控、API 脚本等功能。

BGP.Tools 背后的公司 Port 179 Ltd 在英格兰和威尔士注册。

评论区里,有用户对 BGP.Tools 提供的地图功能特别感兴趣,认为它很有意思。另有用户分享了一个 YouTube 视频,展示了数据是如何被收集和解析的。还有人提到之前在 Hacker News 上也讨论过这个工具。有人认为 ASN 级别的机器人防御可能会变得越来越普遍。还有用户询问,如何能比专家更快地判断大规模服务中断是否由 BGP 引起。


足球主场优势的消失:英格兰足球联赛数据分析

本文分析了英格兰足球联赛中主场优势的变化趋势,并探讨了可能的原因。作者通过大量数据,揭示了主场优势在逐渐减弱,尤其是在新冠疫情期间几乎消失的现象。

文章首先定义了两个关键指标:每场比赛的主场进球优势和主场胜率。通过对1888年至2024-2025赛季的完整数据分析,作者发现所有联赛的主场优势都呈现下降趋势。新冠疫情期间,由于比赛空场进行,主场优势几乎完全消失,这表明球迷的支持是主场优势的重要因素。作者还引用了Sean Elvidge的研究,提出了几种解释主场优势下降的可能原因,包括球员的身体素质和训练水平提高、客队球迷数量增加、战术演变以及裁判对主队的偏袒。作者认为,客队球迷数量增加和裁判偏袒是更有可能的解释,并提出了相应的研究方法。文章最后预测,按照目前的趋势,主场优势可能会在未来几年内完全消失。总而言之,这篇文章以数据为基础,深入探讨了英格兰足球联赛中主场优势的演变,并提出了有价值的见解。


AI 模型蒸馏技术:原理、应用与争议

本文介绍了 AI 模型蒸馏技术,这是一种使 AI 模型更小、更经济的技术,并探讨了其在行业内的广泛应用和潜在争议。文章重点介绍了模型蒸馏的原理、发展历程以及在实际应用中的价值,尤其是在降低计算成本和提高模型效率方面的作用。

模型蒸馏的核心思想源于 Geoffrey Hinton 等人在 2015 年提出的“暗知识”概念,旨在将大型“教师”模型的知识迁移到小型“学生”模型中。最初,研究人员通过集成多个模型来提高性能,但成本高昂。Hinton 提出,模型在给出错误答案时,不同错误的程度也蕴含着信息,即“暗知识”。通过让教师模型将这些“软目标”(soft targets)传递给学生模型,可以更有效地训练学生模型,使其在几乎不损失准确性的情况下变得更精简。

尽管最初并未引起广泛关注,但随着大数据和深度学习的发展,模型规模和计算成本急剧增加,模型蒸馏的重要性日益凸显。谷歌的 BERT 模型就是一个例子,其庞大的规模和运行成本促使开发者创建了 DistilBERT,一个更小、更高效的版本。如今,模型蒸馏已成为一种普遍使用的技术,并被谷歌、OpenAI 和亚马逊等公司作为服务提供。

文章还提及了中国 AI 公司 DeepSeek 因涉嫌使用模型蒸馏技术,未经许可从 OpenAI 的 o1 模型中获取知识而引发的争议。虽然直接从闭源模型中进行蒸馏在技术上不可行,但通过提示教师模型并利用其输出来训练学生模型也是一种可行的蒸馏方法。此外,研究人员还在不断探索模型蒸馏的新应用,例如用于训练链式推理模型,以更低的成本实现与大型模型相似的性能。

评论区有用户指出,Hinton 等人的蒸馏论文虽然被广泛引用,但其核心思想实际上来源于 Caruana 等人更早的模型压缩工作。该用户认为,Hinton 等人的工作只是在 Caruana 等人的基础上进行了一些参数调整,并使用了更吸引人的名称。


电动汽车对城市空气质量的意外影响:减少刹车粉尘污染

这篇文章探讨了电动汽车除了减少尾气排放外,在降低城市空气中刹车粉尘污染方面的显著作用。一项针对伦敦、米兰和巴塞罗那的研究表明,电动汽车的刹车粉尘污染比传统燃油车减少了高达 83%。

这一显著减少主要归功于电动汽车的再生制动技术。与传统摩擦制动不同,再生制动利用电机反向旋转来减速,并将动能转化为电能储存在电池中。这不仅提高了能源效率,延长了电池寿命,还将机械制动的需求降低了一半,从而大幅减少了空气中的刹车粉尘排放。

刹车粉尘由铁、铜、锌、有机碳和其他金属的复杂混合物组成,它不仅仅是表面的污垢。研究表明,城市中高达 55% 的非尾气交通相关 PM10 颗粒物来自刹车磨损。这些颗粒物通常小于 10 微米,有时甚至小于 100 纳米,很容易被人体吸入并深入肺部,对健康造成潜在危害。

因此,电动汽车在改善城市空气质量方面的贡献不容忽视,它不仅减少了尾气排放,还通过再生制动技术显著降低了刹车粉尘污染,为城市居民创造更清洁、更健康的生活环境。


The Promised LAN:一个自建的永久在线的朋友圈局域网

The Promised LAN 是一个会员制的封闭网络,自 2021 年以来,它作为一个 24/7 全天候运行的局域网派对存在。该项目旨在创建一个去中心化的、由朋友们共同维护的网络环境,用于游戏、文件共享和技术交流。

文章详细介绍了 The Promised LAN 的架构和技术实现。核心思想是通过 backbone 网络连接各个独立的 LAN 网段,避免单个 LAN 连接过多而导致的维护难题。Backbone 网络由多个独立运营的节点组成,这些节点通过 IPSec 链接进行对等连接,并使用 BGP 协议进行路由信息交换。

在 DNS 方面,The Promised LAN 使用非标准的 .tpl 顶级域名,每个加入的 LAN 都会自动获得一个域名。为了简化配置管理,每个 LAN 运行自己的权威域名服务器。此外,还使用 Anycast 技术在 backbone 网络上运行递归解析器。

文章还介绍了 PKI 基础设施的搭建,用于支持 TLS 服务的部署。The Promised LAN 运营一套根 x509 证书颁发机构,并使用 DNS TXT 记录来管理证书的颁发,简化了证书申请流程。

评论区对 The Promised LAN 提出了各种看法。有人认为这种形式的 LAN Party 与传统的定义有所不同,更侧重于虚拟连接和技术交流。也有人赞赏其去中心化的理念,认为这是对现有互联网中心化趋势的一种抵抗。还有人关注其技术选型,例如为什么选择 IPSec 而不是 Wireguard。此外,也有人希望了解更多关于 The Promised LAN 的细节,例如他们玩的游戏类型。最后,有人将其与 DN42 进行了比较,认为两者有相似之处。总的来说,评论区对 The Promised LAN 的模式和技术实现都表现出了浓厚的兴趣。


美国人工智能行动计划:加速创新、建设基础设施、引领国际合作

本文主要介绍了美国为赢得人工智能全球竞争而制定的行动计划,该计划围绕加速人工智能创新、构建美国人工智能基础设施以及引领国际人工智能外交与安全这三大支柱展开。

该计划旨在通过消除繁琐的法规、确保前沿人工智能保护言论自由和美国价值观、鼓励开源和开放权重的人工智能、支持下一代制造业、投资于人工智能驱动的科学等方式,创造有利的创新环境,从而加速人工智能创新。

为了构建强大的人工智能基础设施,美国需要大幅提升能源生产能力,简化半导体制造设施和能源基础设施的审批流程,发展与人工智能创新相匹配的电网,重建美国半导体制造业,并培养一支熟练的劳动力队伍。

在国际人工智能外交与安全方面,美国的目标是推动美国人工智能系统、计算硬件和标准在全球范围内的应用, противодействовать 中国在国际治理机构中的影响,加强人工智能计算出口管制,并确保美国政府在评估前沿模型的国家安全风险方面处于领先地位。

评论区观点:

  • @softwaredoug: 认为人工智能和清洁能源都至关重要,但美国似乎更重视前者,可能会在能源领域失去领导地位。
  • @LorenDB & @AlanYx: 赞赏该计划对开源和开放权重人工智能的重视,尽管这与欧盟人工智能法案等其他监管措施存在冲突。
  • @mlsu: 批评该计划在能源部分只关注核聚变,而忽略了太阳能。
  • @Karawebnetwork: 提到了一个后续页面,内容是关于防止联邦政府中的“觉醒人工智能”。

欧洲主权技术基金:开源软件维护的新希望

本文讨论了成立欧洲主权技术基金 (EU-STF) 的必要性,旨在解决开源软件维护资金不足的问题,并借鉴德国主权技术机构的成功经验,为欧盟层面的开源项目提供更有效的支持。

文章指出,开源软件作为重要的数字基础设施,对全球经济贡献巨大,但维护工作却长期被忽视。 调查显示,许多开源维护者得不到报酬,且项目往往由少数人维护,这给开源社区的健康和软件生态系统的安全带来了风险。 GitHub 通过赞助、安全开源基金等方式来解决这个问题,但仍存在巨大差距。

为了弥补这一差距,EU-STF 应该关注以下五个主要领域:识别欧盟最关键的开源依赖项、投资于维护、投资于安全、投资于改进、加强开源生态系统。 文章还提出了两种机构设置方案:集中式的欧盟机构和欧盟成员国组成的联盟,并强调了基金成功的七个设计标准,包括资金池、低官僚主义、政治独立性、灵活的资金、社区关注、开放性和互操作性、以及透明度。 基金应能够汇集行业、国家政府和欧盟的资金,简化申请流程,保持政治独立性,并为个人、非营利组织和公司提供灵活的资金支持。 此外,基金还应重视与开源社区的合作,确保开放性和互操作性,并保持透明度。

通过这些措施,EU-STF 有望为欧洲的开源软件生态系统注入新的活力,确保关键数字基础设施的安全和可持续发展。


Tender:只为你爱人照片定制的滑动应用

Tender 是一款类似 Tinder 的应用,但它只展示你伴侣的照片,并且你只能右滑。这款应用旨在通过简单的互动,为情侣之间创造更多乐趣和亲密感。

该应用的开发者巧妙地将 Tinder 的滑动机制运用到情侣关系中,让用户可以专注于欣赏和肯定自己的爱人。用户可以设置应用,在床上滑动浏览照片,给伴侣一个惊喜。有人甚至付费购买了高级版,虽然还没有“妻子”,但这个小玩笑也增添了不少乐趣。

这款应用也启发了一些类似的想法,比如 Kinder,一款帮助情侣选择宝宝名字的应用,它会展示双方都喜欢的名字。还有人希望 Tinder 可以扩展到更广泛的内容,比如照片、餐厅、约会时间和地点,方便用户分享和选择。

评论区对这款应用的反应非常积极,许多人认为这是一个有趣且温馨的点子。有人觉得这是一种表达爱意的小方式,并建议开发者添加一些有趣的统计数据,比如“总右滑次数”或“连续天数”。当然,也有用户遇到了技术问题,比如在 iPhone 13 mini 上显示不完整。还有一些评论充满了幽默感,比如有人开玩笑说终于找到了一个可以合法右滑别人妻子的方式。总的来说,这款应用引发了许多有趣的讨论和想法,也展现了技术在增进情侣关系方面的潜力。


Jitsi 隐私漏洞:一键实现隐蔽音视频捕获

本文揭露了 Jitsi 公共实例中存在的一个隐私漏洞,攻击者可以利用该漏洞在用户不知情的情况下,通过访问恶意网页来静默捕获用户的音频和视频。用户如果之前已经授权 Jitsi 访问麦克风和摄像头,攻击者便可利用 config.prejoinConfig.enabled=false 参数绕过预加入页面,在后台静默运行会议,从而获取用户的音视频数据。作者认为这更像是一个问题而不是一个功能,并建议 Jitsi 至少应该在公共实例中移除此“功能”,因为那里的安全风险最高。

攻击者首先在 Jitsi 公共实例上创建一个会议,例如 "MiniGinger"。然后,当用户访问攻击者控制的网页 "CuteCats.com" 时,网页会在后台将用户重定向到 https://meet.jit.si/MiniGinger#config.prejoinConfig.enabled=false。如果用户之前已经允许 Jitsi 访问麦克风和摄像头,那么攻击者的会议就会在后台静默运行,无需用户交互,从而实现隐蔽的音视频捕获。更进一步,攻击者可以使用 JavaScript 代码将 Jitsi 链接在后台打开,受害者可能根本不会注意到。

Jitsi 官方回应称这是一个“功能”,并无意修复。作者在 2025 年 6 月 17 日将此问题报告给 Jitsi,但 Jitsi 回应称这是一个功能。作者随后询问是否可以公开讨论此功能,但未收到回复。在等待一个多月后,作者于 2025 年 7 月 23 日发布了这篇文章。

评论区对该漏洞的看法不一。

  • Jitsi 开发者 (saghul) 表示他们正在重新评估这个问题,并计划限制其使用方式,因为在 Jitsi Meet 被嵌入时,通常会有“host”站点提供预加入页面。
  • 其他评论者 (cornholio) 认为这是一个严重的安全漏洞,而非功能,本质上是权限劫持。用户之前授权给 Jitsi 域名的音视频权限被第三方滥用,在未经用户允许的情况下启动会议并访问用户的音视频。
  • dathinab 质疑为什么可以在 URL 中设置 config.prejoinConfig.enabled 配置,并思考其他视频会议系统是否存在类似的攻击面。
  • markasoftware 指出隐蔽音视频捕获漏洞非常常见。
  • Telemakhos 提到他的 Mac 设置比较严格,每次使用 Jitsi 都需要显式授权麦克风和摄像头权限。
  • spaceport 调侃希望看到更多使用猫咪图片作为解释的安全性研究文章。

总的来说,评论区普遍认为这是一个需要重视的安全问题,即使 Jitsi 官方将其定义为“功能”,也应该采取措施限制其滥用,以保护用户的隐私。


停止倒退式地构建 AI 工具

本文作者 Hazel Weakly 认为,目前 AI 工具的构建方式存在问题,不仅不道德,而且浪费能源。更重要的是,这种构建方式没有充分利用 AI 的潜力来提升人类的能力,反而可能降低人类的关键推理能力。

文章的核心观点是,我们应该以人为本,根据人类的学习方式来设计 AI 工具。人类通过努力回忆信息来学习,而不是简单地下载信息。因此,AI 工具应该鼓励人类参与,而不是取代人类的思考过程。人类擅长累积迭代和集体创新,而 AI 工具应该支持这种协作。

作者提出了一个改进 AI 工具构建方式的框架,即“解释、演示、指导、增强”。这个框架强调 AI 应该像一个“健忘的导师”,引导用户学习,而不是直接给出答案。通过这种方式,AI 工具可以帮助人类更好地解决问题,并在迭代中不断进步。文章以事件管理为例,说明了如何应用这个框架来构建更有效的 AI 工具。

总而言之,作者呼吁开发者停止构建“倒退式”的 AI 工具,而是应该构建能够真正帮助人类思考和学习的工具。


OpenStreetMap 部署矢量瓦片

OpenStreetMap 官方网站正式部署了矢量瓦片,为用户带来更清晰、更快速的地图体验,并为开发者提供了更多自定义地图样式的可能性。这次升级使用了全新的后端技术,标志着 OSM 在技术上的重要进步。

文章指出,新的矢量瓦片具有高度的适应性,开发者可以基于现有的 Shortbread 样式进行修改,或者完全创建新的样式,并使用 OSMF 托管的瓦片。为了方便开发者使用,OSMF 还发布了矢量瓦片使用策略。文章鼓励用户积极参与到矢量瓦片的改进中来,针对样式(spirit)、瓦片生成(tilekiln)和瓦片内容规范(shortbread-tiles)等方面提出意见和建议。总的来说,这次矢量瓦片的部署,不仅提升了 OpenStreetMap 的视觉效果和性能,也为开发者提供了更灵活、更强大的工具。

评论区里,用户们对新的矢量瓦片发表了各自的看法。有人指出,新地图在显示希伯来语/阿拉伯语等文字时存在问题,也有人觉得地图整体上显得过于空旷,缺少细节。还有用户提到,乡村和森林地区的显示效果不佳,颜色对比过于强烈,并且在缩放时存在一定的延迟。不过,也有用户对矢量瓦片的部署表示赞赏,认为它在城市地区的显示效果很好,并且可以作为第三方添加兴趣点 (POI) 的底图。另一些用户则关注行政边界和邻里边界的显示问题。总的来说,评论区的观点多样,既有对新功能的肯定,也有对具体问题的反馈,为 OpenStreetMap 的进一步改进提供了有价值的参考。


突破传统:hyperpb 如何革新 Protobuf 解析

本文介绍了 hyperpb,一个由 Go 语言编写的全新 Protobuf 解析库,它通过借鉴 UPB 的优化思路并结合 Go 语言的特性,在性能上超越了现有的 Go Protobuf 解析器,包括官方的 generated code 和 vtprotobuf。hyperpb 的核心在于其动态性和对 Go 语言特性的充分利用。

hyperpb 的诞生源于对现有 Protobuf 解析方案的局限性思考。传统的 Protobuf 后端通常通过生成针对特定类型的源代码来实现高性能,但这种方式存在一些缺点:需要提前编译所有类型,这对于需要处理用户提供的通用 schema 的场景不太友好;每个类型都会增加指令缓存的负担,导致解析大量不同类型时性能下降。为了解决这些问题,hyperpb 借鉴了 UPB 的思路,采用了一种完全动态的解析方式。UPB 使用一个小的 C 内核来解析 Protobuf 消息,该内核通过数据表进行配置,本质上是一个解释器 VM,将 Protobuf 消息作为字节码执行。

hyperpb 在 UPB 的基础上进行了多项优化,并针对 Go 语言的特性进行了调整。例如,hyperpb 充分利用了 Go 的寄存器 ABI,可以将整个解析器状态保存在寄存器中,避免了内存访问的开销。此外,Go 语言较少的未定义行为 (UB) 使得 hyperpb 可以进行一些在 C++ 或 Rust 中无法实现的指针操作,从而进一步提升性能。hyperpb 还针对 Protobuf Go 的反射系统进行了优化,使其能够与现有的 Go 生态系统无缝集成。hyperpb 的 API 设计简洁明了,用户可以通过 hyperpb.Compile* 函数编译消息描述符,然后使用 proto.Unmarshal 函数将数据反序列化到 *hyperpb.Message 中。

由于编译过程是一个优化编译器的过程,因此可能会比较耗时,建议用户缓存编译步骤。hyperpb 的主要应用场景是只读操作,目前不支持对 *hyperpb.Message 进行修改。

目前文章没有评论区,因此无法分析评论观点。


使用 COLODEBUG 提升 Bash 脚本调试体验

本文介绍了一种简单易用的方法,通过几行代码扩展 GNU Bash 脚本,以便在运行时更容易理解其执行流程,并改进 set -x(xtrace 模式)的实用性,该方法也兼容 zsh。

文章首先回顾了常见的 Shell 脚本调试方法,例如使用 echoprintf 语句、sleep 命令、以及启用 xtrace 模式。作者指出 xtrace 模式虽然很有用,但会隐藏重定向操作,且不显示脚本中的注释,这使得理解脚本的执行过程变得困难。为了解决这个问题,作者引入了 “冒号注释” 的概念,即使用 : 命令来模拟注释,以便在 xtrace 模式下也能显示注释信息。

文章详细解释了 : 命令的用法,它是一个空命令,总是成功执行。通过将普通注释(#)替换为冒号注释(:),可以在 xtrace 模式下输出注释内容,从而提供更多的上下文信息。作者还提醒读者,#: 在语法上并不完全等价,需要注意使用方式,避免出现语法错误。

为了进一步增强调试功能,作者提出了使用 : :: 的方法,也就是自定义一个名为 : 的函数,使其具有更多的功能,例如颜色输出等。通过自定义 : 函数,可以更灵活地控制调试信息的显示方式,从而提高调试效率。

总的来说,这篇文章提供了一种简单而有效的方法来改善 Bash 脚本的调试体验,通过使用冒号注释和自定义 : 函数,可以更清晰地了解脚本的执行流程,从而更快地定位和解决问题。


AWS 密钥泄露利用:攻击者视角与 AWSKeyLockdown

本文深入探讨了 AWS 密钥泄露后,攻击者如何快速利用这些泄露的密钥,以及传统安全措施的局限性。文章还介绍了 Clutch Security 开发的工具 AWSKeyLockdown,旨在帮助企业应对此类威胁。

文章指出,即使 GitHub 能够自动检测到暴露的 AWS 密钥,并且 AWS 会立即附加 AWSCompromisedKeyQuarantineV2 策略,但攻击者仍然可以在密钥被隔离之前利用它们进行恶意活动。攻击者可以进行侦察操作,例如列出用户、角色和策略,从而了解 AWS 环境。他们还可以执行数据泄露,例如从 S3 存储桶下载对象,从 AWS Secrets Manager 检索密钥,以及访问 Lambda 函数中的敏感配置。此外,攻击者还可以通过 STS 承担角色来提升权限,调用高成本服务(如 AWS Bedrock 上的机器学习模型)来产生意外费用,并使用 aws ssm start-session 访问启用了 SSM 的 EC2 实例,从而建立后门。更严重的是,他们甚至可以运行 aws ec2 terminate-instances 来删除活动部署和数据,导致服务中断和数据丢失。

文章还批评了 AWS Trusted Advisor 的建议,即检测到暴露的密钥后应立即删除。文章认为,AWS 并没有提供立即禁用这些密钥的内置选项,这使得它们容易受到快速利用。相比之下,Google 在收到 GitHub 的通知后会自动撤销 GCP 服务帐户密钥。文章呼吁 AWS 采取更积极主动的方法,并建议 AWS 效仿 GCP 的做法,立即撤销暴露的密钥。

从攻击者的角度来看,他们利用泄露的密钥进行有组织、有计划的攻击。他们使用权限提升、横向移动和侦察等技术,系统地映射和渗透云环境。他们的目标包括了解基础设施,利用基础设施进行资源密集型操作,并将其用作更广泛目标的工具。

由于没有评论内容,这里就不做评论分析了。


挑战完成:博主喝遍国际调酒师协会(IBA)官方鸡尾酒单上的所有酒

博主分享了他挑战喝遍国际调酒师协会(IBA)官方鸡尾酒单上所有102种鸡尾酒的经历,并讲述了其中的趣事和挑战。这个挑战的起因是博主喜欢记录各种列表,从专辑到餐厅,再到鸡尾酒。

博主最初创建了一个名为“合法鸡尾酒”的列表,记录自己成年后喝过的经典鸡尾酒。后来,他决定将列表范围限定为IBA官方鸡尾酒单,并取消了“合法”的限制。截至2024年5月9日,IBA官方鸡尾酒单上有89种鸡尾酒,而博主已经尝试过其中的33种。

IBA官方鸡尾酒单由国际调酒师协会维护,旨在标准化全球酒吧中最受欢迎的鸡尾酒配方。该列表于1961年首次发布,包含50种鸡尾酒,之后每10年左右进行一次修订,增删鸡尾酒以反映潮流变化。IBA将鸡尾酒分为“经典”、“当代”和“新时代”三个类别。

博主发现,虽然大多数鸡尾酒都很常见,但有些鸡尾酒却非常冷门,难以获得,比如需要古巴甘蔗酒的Canchanchara。


已复制到剪贴板

评论 0 条

暂无评论,来种下第一颗种子。