每日HackerNews RSS

## ClojureFnl:将Clojure带到Fennel 这个项目始于2019年的`fennel-cljlib`,旨在Fennel Lisp环境中复现Clojure的特性。目标是通过实现核心Clojure函数、不可变性、测试工具,甚至`clojure.core.async`来增强Fennel类似Clojure的感觉。虽然是一个充满激情的项目,但由于性能限制和Fennel不同的函数式编程关联,它在很大程度上仍然是实验性的。 最近,开发转向了`ClojureFnl`,一个基于`fennel-cljlib`构建的Clojure到Fennel编译器。它目前可以编译大多数`.cljc`文件,但运行编译后的代码仍在进行中。一个主要障碍是不可变数据结构的初始实现,由于过度复制,证明速度非常慢。 为了解决这个问题,作者在Fennel中开发了新的、高性能的持久化数据结构:基于HAMT的哈希映射和集合、持久化向量以及红黑树。基准测试表明,这些比原生Lua表慢,但可用。该项目还包括持久化列表和队列的实现。有了这些基础元素,重点现在正在转向改进`ClojureFnl`编译器本身。

对不起。

Keychron 发布了88款键盘和鼠标模型的生产级CAD文件,包含超过686个设计文件,旨在促进一个繁荣的硬件改装社区。这个开源项目允许用户研究真实的工业设计,修改键盘面板和外壳,并创建兼容的配件。 **允许的使用**包括个人项目、教育目的以及开发与Keychron产品兼容的*配件*。提供全面的文档和指南,帮助用户浏览文件(STEP、DWG、DXF、PDF格式)并贡献改进。 **限制**如下:直接复制和销售Keychron键盘/鼠标,或使用Keychron商标是被禁止的。 该项目会积极更新新文件(最近添加了K0 Max、Q12 HE和Q6 Max型号),并鼓励社区通过GitHub和Keychron Discord贡献。此举旨在降低硬件爱好者、学生和工程师的入门门槛,促进键盘生态系统内的创新和定制。

## Keychron 设计文件发布 - Hacker News 摘要 Keychron 在 GitHub 上发布了他们的键盘和鼠标设计文件,引发了关于硬件设计可访问性和实体键盘商店现状的讨论。用户指出,美国缺乏可以*试用*机械键盘的零售店,这与东京和台北等城市现有的选择形成了对比。 对话强调了在线订购和退货选项的便利性,以及键轴采样器的日益普及。虽然此次发布并非完全“开源”(禁止商业用途复制 Keychron 设计),但被视为对爱好者和改装者的一步积极进展。 许多评论者分享了他们使用 Keychron 产品的经验,赞扬了热插拔开关和无线连接等功能,同时也指出了重量、电池续航和软件等需要改进的地方。讨论还涉及了物理设计作品的知识共享许可的复杂性以及未来 DIY 项目的可能性。

CPUID,生产HWMonitor和CPU-Z等常用系统信息工具的公司,本周早些时候遭遇了安全漏洞。攻击者入侵了CPUID网站的后端组件,将下载链接重定向到恶意软件,而不是合法的软件安装程序。 虽然软件构建本身没有被篡改且签名完好,但被入侵的“侧面API”交换了链接大约六个小时。恶意安装程序针对64位HWMonitor用户,伪装成一个假的DLL,并连接到一个命令和控制服务器以获取进一步的恶意载荷。 分析显示,该恶意软件主要在内存中运行,在受害者的机器上编译.NET代码,并试图窃取浏览器数据,包括可能解密的Google Chrome凭据。证据表明,这次攻击与之前的活动有关,表明这是一项范围更广、持续进行中的行动。CPUID已经修复了漏洞,但受影响的用户数量尚不清楚。此事件表明,攻击者即使不直接修改软件代码,也可以分发恶意软件。

## CPU-Z & HWMonitor 被攻破 - 摘要 流行的系统监控工具 CPU-Z 和 HWMonitor 近期通过供应链攻击被攻破。黑客入侵了 CPUID 官方网站,并更改了下载链接,传播了恶意安装程序数天(9月4日至10日 GMT)。攻击者针对生成下载链接的 API 层,而非二进制文件本身,标志着攻击策略的演变。 此事件凸显了即使是受信任的软件源也可能存在漏洞的风险。建议用户在下载软件时谨慎,并考虑使用诸如 `winget`(执行签名检查,但并非万无一失)或 Chocolatey 等软件包管理器。 讨论围绕这些攻击日益频繁、验证软件安全性困难以及需要更好的安全实践,例如可重现构建和强大的软件包管理。 许多用户建议在安装前查看软件包清单,一些人指出 VirusTotal 等工具在初步扫描方面的有效性。 怀疑与最近 FileZilla 被攻破的威胁组织是同一组织。

## Bluesky 服务中断总结 (2024年4月8日) Bluesky 在4月8日(星期一)经历了一次重大中断,持续时间长达8小时,影响了大约一半的用户。根本原因是一个最近部署的内部服务向数据平面发送了异常大量的请求——具体来说,一批请求包含15,000-20,000个帖子URI查找,而通常情况下为1-50个。 这导致一个关键端点 (`GetPostRecord`) 超载,该端点缺乏并发限制,由于TIME_WAIT状态的连接累积,耗尽了可用的TCP端口。由此产生的memcached故障触发了过多的日志记录,进一步加剧了系统压力,导致垃圾回收暂停时间增加以及出现内存不足 (OOM) 错误——形成了一种不稳定的“死亡螺旋”。 最初的故障排除受到可观测性不足的阻碍,特别是缺乏按客户端的指标。一个临时解决方案,即对memcached连接随机化本地IP地址,打破了死亡螺旋,使团队能够在识别核心问题的同时稳定服务。 Bluesky 对此次中断表示歉意,并强调需要改进可观测性,特别是关于大型请求模式,以及在高规模系统中采取更谨慎的日志记录方法。他们还纠正了之前状态页面更新中错误地将问题归因于第三方提供商的情况。

## Bluesky 中断事件分析总结 最近Bluesky的一次中断事件被追溯到一项新的内部服务,该服务在帖子查找时采用了一种发送大量URI(15-20k)的模式,尽管整体请求速率较低(每秒低于3次)。这意外地耗尽了服务器上可用的TCP端口,因为`TIME_WAIT`状态,从而有效地阻止了新的连接。 解决方法是随机化本地主机地址,以创建更大的可用端口池——这一方案被比作DDoS缓解。虽然这是一个临时修复,但根本原因已单独解决。 讨论的重点是发送如此大量批次的架构问题、潜在的改进测试以捕捉此问题、以及扩展Go应用程序时可能出现的无限制资源使用的挑战。该事件引发了关于真正去中心化网络定义的争论,将Bluesky的中心化方面与Nostr协议和互联网本身进行了对比。最终,Bluesky强调了在解决中断事件及其原因方面保持透明。

## 1d-Chess:一个简化的挑战 1d-Chess是一种在单线上进行的象棋变体,只有三个棋子:国王、骑士和车,并具有简化的移动规则。国王移动一格,骑士跳两格,车在直线上移动任意距离。 目标仍然是将军绝杀——使对手的国王无法逃脱。然而,可以通过僵局、三次重复局面或材料不足(仅剩国王)来达成和棋。 尽管简单,1d-Chess却提出了一个令人惊讶的挑战。该游戏最初由马丁·加德纳描述,提出了一个引人入胜的问题:在完美对弈的情况下,白方能否强行击败人工智能?一个建议的开局序列(N4 N5, N6 K7, R4 K6, R2 K7, R5++)暗示了隐藏在这种极简版象棋中的战略深度。

## 一维棋及相关游戏 - 摘要 一个Hacker News讨论围绕一款简单的1D棋游戏([rowan441.github.io](https://rowan441.github.io))以及类似简约策略游戏展开。玩家们发现这款游戏出乎意料地引人入胜,但许多人难以理解获胜条件和国际象棋记谱法。核心挑战在于强迫获胜,同时避免僵局——当玩家没有合法走法但未被将军时出现的平局。 讨论扩展到相关概念,如“心智棋”(一种延迟将死的游戏)以及其他一维游戏,如西洋跳棋和曼卡拉。多位用户分享了类似谜题和游戏的链接,包括一维围棋变体和一款涉及在约会中延迟回复信息的游戏。 一个共同的主题浮现:这些游戏将策略提炼到其核心,通常依赖于心理因素和对对手行为的理解。许多评论者发现,仅仅通过讨论这款游戏就输掉了长期保持的“连胜”,凸显了它令人惊讶的成瘾性。

## WireGuard for Windows 更新 – v0.11 & v0.6 发布 WireGuard for Windows 的新版本现已可用:WireGuardNT(内核驱动程序和 API)v0.11 和 WireGuard for Windows(管理软件和 UI)v0.6。这是近期的首次发布,源于最近的媒体关注。 此次更新侧重于重要的内部改进,包括错误修复、性能增强以及通过提高最低支持的 Windows 版本而实现的精简代码。这带来了更强大的基础和现代工具链(更新的 EWDK、Clang/LLVM/MingW 和 Go)。新功能包括在不丢包的情况下移除单个允许的 IP 地址,以及对低 IPv4 MTU 的支持。 尽管经过了彻底的测试——甚至在较旧的、不受支持的 Windows 10 版本上——但仍鼓励用户测试新软件并报告任何问题。更新将通过内置更新程序自动交付,或可以通过提供的下载链接手动启动:[https://download.wireguard.com/windows-client/wireguard-installer.exe](https://download.wireguard.com/windows-client/wireguard-installer.exe) 和 [https://www.wireguard.com/install/](https://www.wireguard.com/install/)。 此版本还解决了与 Microsoft 的临时帐户暂停问题,该问题现已解决。

法国正在采取措施,以减少对美国技术的依赖,首先是从一些政府电脑上放弃微软Windows操作系统,转而使用开源操作系统Linux。这一举措由大卫·阿米尔部长领导,旨在让法国对“我们的数字命运”和数据安全拥有更大的控制权。 该计划从DINUM数字机构开始,反映了欧洲对依赖外国技术提供商的更广泛担忧,尤其是在特朗普政府时期出现的不稳定以及最近影响国际访问美国服务的情况之后。 这并非孤立的努力;法国最近选择使用法国制造的视频会议工具Visio,而不是微软Teams,并计划将其健康数据平台迁移到安全、可信的替代方案。目标是通过优先考虑在其境内产生的技术和云服务来加强“数字主权”。尚未公布完全过渡到Linux的具体时间表。

## 独立式与托管 C++ 实现 C++ 实现分为两类:**托管**和**独立式**。托管实现依赖于操作系统(如 Windows、macOS 或 Linux),提供多线程、`main` 函数要求和完整的标准头文件支持等功能。独立式实现常见于嵌入式系统和内核,在*没有*操作系统的情况下运行,缺乏堆分配和系统调用等功能。 `__STDC_HOSTED__` 宏指示您使用的是哪种类型(1 表示托管,0 表示独立式)。 虽然独立式环境提供的保证最少,但 C++ 标准*确实*要求库的核心子集——包括 `<cstdint>`、`<cstddef>` 和 `<limits>`——提供基本类型和实用程序。 依赖于操作系统的功能,如 `<thread>`、`<filesystem>` 和 `<iostream>`,通常不可用。 然而,现代 C++(从 C++20 开始)正在扩展独立式子集。 更多的头文件,包括算法库的部分内容和 `std::span` 等实用程序,正在变得可用,即使在资源受限的环境中也能实现更具表现力的代码。 这种演变是由嵌入式系统和游戏开发的需求驱动的,旨在使现代 C++ 普遍可行。

一个黑客新闻的讨论围绕着一篇关于C++独立标准库的博客文章展开。文章本身引发了争论,许多评论者怀疑它是人工智能撰写或大量编辑的,原因在于其语气、标点符号(特别是对长破折号的过度使用)和结构。 用户指出,在独立模式下编译时(例如,使用GCC/Clang的`-ffreestanding`),主流C++实现中已经存在一个“独立”的stdlib。然而,这篇文章因纯粹是信息性的,缺乏可操作的见解而受到批评。 一位从事嵌入式系统开发的评论者表达了对缺乏实际细节(关于支持、替代方案和特定实现方面)的失望。总体情绪表明,黑客新闻上的用户希望看到更多深入的技术文章。

## macOS 隐私设置的假象:一个“魔法”演示 此演示揭示了macOS“隐私与安全性”设置中关于应用程序访问受保护文件夹(如“文档”)时存在误导性行为。作者创建了一个名为“Insent”的简单应用程序,以说明即使在“系统设置”中撤销访问权限后,应用程序如何能够获得并*保留*对文件夹的访问权限。 Insent有两个关键功能:“有许可打开”(需要访问文件夹的权限)和“从文件夹打开”(允许通过打开面板访问,暗示用户意图)。一旦通过“有许可打开”授予了初始许可,Insent 就会获得访问权限。即使在“隐私与安全性”设置中禁用了访问权限,访问权限仍然存在——似乎绕过了设置中显示的限制。 这个问题源于macOS处理沙盒的方式。通过用户意图授予的访问权限(例如通过打开面板)会绕过沙盒,而“隐私与安全性”设置并未反映此更改。完全撤销访问权限的唯一方法是使用终端命令 (`tccutil reset`),然后重新启动。 这凸显了一个潜在的安全问题:应用程序可能比“系统设置”中指示的拥有更广泛的访问权限,并且可以通过仔细的时间安排和用户交互来利用。 你可以在这里找到Insent:[insent11](https://insent11)

## 氦气:一种关键且脆弱的资源 近期全球动荡,如伊朗冲突和霍尔木兹海峡关闭,凸显了我们对经常被忽视的供应链的依赖——包括氦气。尽管氦气是宇宙中第二丰富的元素,但地球上可获取的氦气有限,来源于地下天然气沉积,并缓慢逸散到太空。卡塔尔供应全球约三分之一的氦气,美国也贡献了很大一部分,这使得供应容易受到地缘政治事件的影响。 氦气具有独特的性质——特别是其极低的沸点——使其在许多关键应用中不可替代。这些应用包括冷却超导磁体,用于核磁共振成像(MRI)等重要技术(消耗美国供应的17%)和半导体制造(全球25%,需求不断上升)。它对于光纤生产、科学研究、航空航天清洗(美国宇航局是主要用户)以及深海潜水等专业用途也至关重要。 虽然一些应用通过回收利用减少了消耗(如航空航天),并且某些用途存在替代品(如氩气用于焊接),但许多工艺缺乏可行的替代方案。尽管氦气的总体用量与其他气体相比相对较小,但其独特的地位意味着短缺对众多行业和技术进步构成重大威胁。

更多

联系我们 contact @ memedata.com