每日HackerNews RSS

## WinQuake的故事:它为什么存在以及它是如何工作的 WinQuake是为了解决在Windows 95上运行原始*Quake*时遇到的性能问题和技术限制而产生的。虽然*quake.exe*可以在DOS和Windows 95上运行,但在Windows下会因虚拟化开销而导致性能下降25%。访问Windows的TCP/IP堆栈也需要一个复杂的解决方法。重要的是,*quake.exe*由于与虚拟DOS机器不兼容,在Windows NT上表现不佳。 *Winquake.exe*旨在通过提供对Windows API(如Winsock)的直接访问,并利用各种“后端”来处理输入、音频和视频,来解决这些问题。不同的模式——如“max”、“fastvid”和“safe”——配置这些后端以实现最佳性能,用速度换取功能。 *WinQuake*灵活性的核心在于它的视频后端,从安全的GDI渲染到利用SciTech的MegaGraph Graphics Library (MGL)和DirectDraw的高性能选项不等。MGL及其“WinDirect”技术允许绕过标准的Windows图形界面,直接访问硬件。 最终,*WinQuake*通常可以匹配甚至超过原始DOS版本的性能,提供显著改进的体验,并展示了对向后兼容性的承诺,即使在现代Windows系统上仍然存在。

最近在奥克尼的布罗德加尔遗址进行的考古工作,挑战了人们对新石器时代建筑追求永久性的假设。考古学家尼克·埃德蒙兹认为,像布罗德加尔这样的遗址是“表演性空间”——通过增加和移除石头不断演变,反映的是创造的*过程*,而非持久的稳定性。 证据表明,这些建筑并非总是深 foundation,并且会经历重建和最终的 deliberate “退役”仪式,例如在公元前 2400 年左右用大规模的牛祭祀封印 10 号建筑。即使是像 27 号建筑这样更稳定的结构,也显示出灰烬、骨骼和腐烂陶器的层层堆积,证明了使用和废弃的循环。 随着发掘的结束和遗址回归农田,人们的关注点转移到想象新石器时代生活的动态和短暂性上。持久的斯滕尼斯石阵,虽然看似永恒,现在被视为连接生者和死者的 portal,突出了个体存在于漫长时光背景下的短暂性。

## 黑客新闻讨论:新石器时代苏格兰与油炸火星棒 一篇最近的《纽约客》文章引发了黑客新闻对苏格兰北部持久的新石器时代文化的讨论,以及关于油炸火星棒出处的一场出乎意料的激烈争论。 最初的帖子引出了一长串帖子,剖析这种苏格兰“美食”是否真的起源于那里,或者是否是英格兰的舶来品。一些用户声称从未在苏格兰见过这种食物,而另一些用户则指出了证据——包括维基百科文章、BBC报道和个人经历——证实了它的苏格兰根源,尤其是在邓迪和阿伯丁郡等地。这场讨论强调了这种食物的新奇性,将其与类似的美国“病毒式”食品潮流相提并论。 除了火星棒的争论之外,评论者还分享了在奥克尼(斯卡拉布雷)等地亲身体验深厚历史联系的个人轶事,并反思了在苏格兰发现的独特文化连续性,即使在现代人口中也是如此。该帖子还涉及苏格兰的身份认同和幽默感,并引用了当地俚语和地区自豪感。

土星正在构建一个人工智能驱动的操作系统,旨在普及金融建议,服务十亿人。他们正在寻找一位**高级人工智能工程师**,负责在该高度监管的环境中拥有面向客户的关键人工智能功能。 这是一个高度自主的角色,需要强大的软件工程技能、大型语言模型(LLM)专业知识以及对产品质量的关注。该工程师将负责完整的特性生命周期——从架构和开发到部署和监控——利用“明确编排”来构建可审计的人工智能代理。 主要职责包括与金融专家合作设计强大的评估框架(“评估飞轮”),通过防御性设计确保系统可靠性,并通过简洁、经过良好测试的 Python 代码提高工程标准。 理想的候选人拥有 5 年以上经验,在扩展人工智能产品(特别是使用 LLM 和代理系统)方面拥有良好记录,并且强烈倾向于行动、所有权和数据驱动的决策。土星强调构建值得信赖、可解释的人工智能,并以质量和客户成功为中心。

黑客新闻 新 | 过去 | 评论 | 提问 | 展示 | 招聘 | 提交 登录 土星 (YC S24) 正在招聘高级人工智能工程师 (ycombinator.com) 1天前 | 隐藏 指南 | 常见问题 | 列表 | API | 安全 | 法律 | 申请YC | 联系 搜索:

## 使用 CodeQL 进行 JavaScriptCore 漏洞挖掘:总结 本文详细介绍了使用代码分析工具 CodeQL 探索和发现 JavaScriptCore (JSC) 漏洞的过程。JSC 是 Safari 和其他 macOS 应用程序的 JavaScript 引擎。作者最初对浏览器漏洞利用感到畏惧,但利用 CodeQL 调查了 JSC 的内部结构,并发现了潜在的安全漏洞。 JSC 通过以下阶段执行 JavaScript 代码:词法分析、语法分析,以及通过 LLInt 和 JIT 编译进行解释(编译层级越高,性能越好)。一个关键的关注点是**错误的副作用建模**——JSC 错误地假设某个操作*不会*导致意外后果的情况,这可能导致远程代码执行 (RCE)。 作者开发了一个自定义的 CodeQL 查询来识别这些漏洞,重点关注在应该调用 `clobberWorld`(一个指示潜在副作用的函数)时未调用的操作。这导致重新发现了已修补的漏洞 (CVE-2018-4233),该漏洞与 `InstanceOf` 相关,并识别了 `operationCreateThis` 中的*第二个*漏洞 (CVE-2018-4233),该漏洞曾在 2018 年 Pwn2Own 中被利用。 成功表明 CodeQL 在复杂的漏洞研究中的有效性,但最大的挑战在于深入理解目标代码库——在这种情况下,是 JSC 错综复杂的工作原理。作者强调了有组织的查询开发的重要性,并提供了进一步探索 CodeQL 和 JSC 的资源。

Hacker News 新闻 | 过去 | 评论 | 提问 | 展示 | 招聘 | 提交 登录 JavaScriptCore 的神秘领域 (2021) (cyberark.com) 23 分,由 program 1 天前发布 | 隐藏 | 过去 | 收藏 | 1 条评论 epolanski 1 天前 [–] 我经常思考是否可以实现一种能够直接编译成优化字节码(针对 V8 或 JSC)的语言,从而获得不需要运行时优化的“热代码”。有人探索过这个想法吗?回复 指南 | 常见问题 | 列表 | API | 安全 | 法律 | 申请 YC | 联系 搜索:

``` # 从任何云虚拟机或您自己的服务器开始 $ uc machine init [email protected] # 使用自动HTTPS部署您的应用 $ uc run --name my-app -p app.example.com:8000/https app-image:latest ✨ 您的应用已在 https://app.example.com 上可用 # 通过添加更多机器并扩展应用来实现高可用性 $ uc machine add [email protected] $ uc scale my-app 2 ```

## Uncloud:Kubernetes 替代方案摘要 Uncloud 是一种新型容器编排器,旨在成为 Kubernetes 的一个更简单的替代方案,尤其适用于小型部署。它由一位前 Kubernetes 用户创建,旨在解决在不需要完整控制平面时,K8s 经常相关的运营开销问题。 Uncloud 采用点对点架构,使用 Fly.io 的 Corrosion 在机器之间同步集群状态,无需中央控制平面和仲裁机制。它利用熟悉的 Docker Compose 规范来定义应用程序,提供自动 WireGuard 网状网络,并通过 Caddy 集成 HTTPS。 主要功能包括直接 Docker 镜像构建/推送(使用 unregistry)、命令式 CLI 以及对各种环境的支持——从云 VM 到树莓派。讨论强调了它对那些觉得 K8s 对于更简单的需求过于复杂的用户有吸引力,同时也承认 K3s 对于某些人来说仍然是一个可行的选择。目前,创建者正在为开发提供资金,并考虑提供 SaaS 服务以进行远程集群管理。

arXivLabs是一个框架,允许合作者直接在我们的网站上开发和分享新的arXiv功能。个人和与arXivLabs合作的组织都认同并接受我们开放、社群、卓越和用户数据隐私的价值观。arXiv致力于这些价值观,并且只与秉持这些价值观的合作伙伴合作。您是否有为arXiv社群增加价值的项目想法?了解更多关于arXivLabs的信息。

## AI 与大规模说服:摘要 一篇近期文章(以及随后的 Hacker News 讨论)探讨了人工智能如何大幅降低说服成本,可能使精英——以及越来越多的国家——以前所未有的轻松程度塑造大众偏好。虽然宣传和影响力活动并非新事物,但人工智能提供了以前无法企及的规模和个性化。 核心担忧并非仅仅是*更多*的宣传,而是其潜在的更深入、更有针对性的操纵,甚至可能影响自童年时期的信念。一些人认为人工智能 democratizes 内容创作,提供了一种制衡,但分发仍然主要由少数人控制。另一些人指出现有社交网络的力量以及人工智能可能加剧现有不平等的风险。 许多评论员强调,问题并非完全是人工智能特有的;现有的工具,如定向广告和社交媒体机器人,已经实现了类似的效果。然而,人工智能承诺加速和个性化这些努力。担忧范围从微妙的文化转变到公然的虚假信息活动,一些人担心权力结构会倒退回封建时代。讨论还涉及信任的作用、人工智能可能削弱批判性思维以及对不受约束的影响设置保护措施的需求。

启用 JavaScript 和 Cookie 以继续。

## 埃塞俄比亚火山爆发 – Hacker News 摘要 埃塞俄比亚的Hayli Gubbi火山爆发,这是近12000年记录以来的首次。然而,Hacker News评论区的讨论表明,“12000年”这个数字可能不准确,一些人指出卫星数据暗示着更近期的活动。 用户分享了GeologyHub YouTube频道等资源以获取更多信息。对话还深入探讨了准确地确定过去火山爆发的挑战,尤其是在埃塞俄比亚阿法尔地区等偏远地区,那里的地质监测有限。确定火山爆发历史很大程度上依赖于实地考察、树木年轮测定和地质调查——这些方法因该地区稀疏的植被和历史不稳定而变得复杂。 一些评论员推测了后冰期反弹对火山活动的影响,而另一些人则驳斥了气候变化是*这次*爆发的直接原因,承认它对大气变化的贡献。这场讨论强调了建立完整的火山记录的困难,尤其是在现代科学监测之前。

讨论的重点在于预计算数据与运行时计算的性能权衡。虽然将整数的五次方直接编译到可执行文件中对于小数组来说似乎很有效率,但它会显著增加加载时间,因为数据必须在启动时从磁盘读取。运行时计算这些值,虽然最初看起来较慢,但速度可以快 10³ 到 10⁵ 倍,尤其是在只需要数据子集的情况下(例如,本例中仅需 10,000 个元素中的 144 个)。 最佳方法取决于计算环境。对于专用机器,最小化*经过时间*(墙上时间)是关键。然而,在共享系统中,最小化*用户时间*更为重要,因为系统时间(例如,磁盘访问)不会直接计费给用户。使用 gfortran 在 Apple M2 上提供的计时结果表明,运行时计算时系统时间很短,突出了其效率。最后,计时本身具有可变性,需要多次运行才能获得可靠的结果。

这个黑客新闻的讨论围绕欧拉猜想——具体来说,寻找方程 i⁵ - n⁵ = j⁵ + k⁵ + l⁵ 的解。一位用户分享了一种相对快速的算法来搜索解,建议在定义的五次方集合中寻找共同的数字。 对话强调了使用“强度降低”进行优化的潜力,这是一种用加法替换乘法的方法,考虑到问题是在 CDC 6600 计算机上解决的背景,这是一种有价值的策略。 用户在现代系统(Slackware 和 Debian)上测试了该算法,报告了执行时间并指出由于系统负载导致的性能差异。还有人回忆了早期使用 CDC 6600/7600 机器的计算经验。最后,评论者讨论了搜索空间的规模以及潜在的进一步优化,例如在总和超过目标值时跳出循环。

伦敦议会的一份新报告警告说,对数据中心日益增长的需求正在加剧伦敦的住房危机。这些耗能设施对于流媒体和人工智能等服务至关重要,但正在给国家电网带来压力,导致新的住房开发项目难以接入电力供应——有些项目可能要等到2037年才能接入。 虽然短期措施阻止了完全停止建设,但西伦敦的项目仍然受到延误。该报告强调,迫切需要长期的电网容量规划,因为预计到2050年数据中心的能源消耗将增加高达600%,可能相当于每家设施10万户家庭的用量。 建议包括为数据中心设立单独的规划类别,并在下一次伦敦规划中制定专门政策,同时增加对电网的投资,以满足当前和未来的需求。这个问题平衡了伦敦吸引数字投资的愿望与迫切需要新建住房的需求。

## zmx:终端会话持久化 zmx 是一个轻量级工具,用于持久化终端会话,为 tmux 等功能齐全的终端复用器提供替代方案。它允许您分离并重新连接到 shell 会话,而不会丢失其状态——包括滚动和输出——*仅*关注持久性,并将窗口管理委托给您操作系统的窗口管理器。 **主要特性:** * **持久性:** 即使断开连接后也能保持 shell 会话的存活。 * **连接/分离:** 无缝重新连接到现有会话。 * **原生特性:** 利用您的终端模拟器的原生滚动和复制/粘贴功能。 * **SSH 集成:** 与 SSH 配合良好,通过 SSH 配置和 autossh 等工具实现持久的远程会话。 * **简单命令:** `zmx attach <name>`, `zmx detach`, `zmx list`, `zmx kill`。 zmx 利用 `libghostty-vt` 来恢复终端状态,确保流畅的重新连接体验。它通过 Unix 套接字进行通信,并将活动记录到 `/tmp/zmx`。目前,配置选项有限,优先考虑可维护性。 项目和源代码地址:[https://github.com/shell-pool/shpool](https://github.com/shell-pool/shpool)

## zmx:终端会话持久化 一个名为 **zmx** (github.com/neurosnap) 的新工具旨在为终端进程提供会话持久化,*无需*成为像 tmux 或 screen 这样功能齐全的终端模拟器。其核心思想是利用操作系统窗口管理器进行窗口管理,使 zmx 专注于可靠地重新连接到现有进程。 Hacker News 上的讨论强调了几个类似的工具,如 **reptyr, reredirect, retty, telefork, dtach, abduco, shpool 和 vmux**。用户分享了经验——有些人发现 dtach 更有效地重新连接到 Neovim 等程序。 zmx 的一个关键区别在于它能够在重新连接时恢复终端状态和历史记录,而像 abduco 这样的工具只能重新绘制屏幕。开发者承认需要一个比较图表,并计划将其添加到自述文件中。未来的开发包括一个 `zmx switch` 命令,用于快速在会话之间切换。 该工具适用于喜欢极简方法并希望避免终端复用器复杂性的用户。

更多

联系我们 contact @ memedata.com