2024-02-19

40 篇热帖

1. Show HN: htmz – a low power tool for HTML (leanrada.com)

htmz:一个轻量级HTML交互工具

htmz 是一个极简的HTML微框架,旨在利用纯HTML的熟悉简洁性,创建交互式、模块化的Web用户界面。

核心理念与特点

  1. 纯HTML:直接使用原生HTML,无需任何超集、特殊属性(如 hx-ng- 等)、领域特定语言或自定义元素。
  2. 轻量级:总体积仅166字节,零依赖,无需加载JavaScript包,甚至无需后端支持,只需一个内联的HTML代码片段。
  3. 无过滤器:不干预浏览器默认行为,操作真实DOM,没有虚拟DOM、点击监听器或AJAX/Fetch请求的抽象层,避免了“重新发明浏览器”。

工作原理

htmz 的核心功能非常单一:根据请求,将HTML片段加载到页面上的任意元素中。它通过一个名为 htmz 的隐藏 iframe 实现。当用户点击带有 target=htmz 的链接或表单时,请求的URL会在该 iframe 中加载。加载完成后,onload 事件处理器会从URL的片段标识符(# 后部分)中提取目标元素的选择器,并用 iframe 中新加载的内容替换该目标元素。

基本使用示例

<!-- 点击链接后,会加载 /flower.html 的内容,并替换掉页面中 ID 为 my-element 的元素 -->
<a href="/flower.html#my-element" target=htmz>Flower</a>

安装与使用

安装:最简单的方式是将以下代码片段复制到HTML页面中:

<iframe hidden name=htmz onload="setTimeout(()=>document.querySelector(contentWindow.location.hash||null)?.replaceWith(...contentDocument.body.childNodes))"></iframe>

也支持通过 npm (npm install --save-dev htmz) 或使用其提供的命令行工具进行安装。

高级用法

  • 按按钮设置不同动作:可以在表单中的不同 <button> 元素上使用 formaction 属性来覆盖表单的默认动作。
  • 设置默认目标:使用 <base target=htmz> 标签可以将所有相对链接的默认目标设置为 htmz。
  • 清理目标值:可以通过修改代码片段,实现将目标选择器直接写在 target 属性中(如 target="#my-element"),需要配合为每个目标创建一个同名的隐藏 iframe
  • 支持新标签页打开:可以通过服务器端的 Sec-Fetch-Dest 请求头来判断是否为直接访问,从而决定返回完整的页面还是片段。
  • 脚本与交互:htmz 不排斥JavaScript。当需要更复杂的交互时,可以使用JavaScript来增强特定控件,同时仍可利用htmz处理表单提交等。

设计思想与定位

htmz 是对HTML框架(如 <iframe>, <frame>)的现代泛化,允许在页面的任何元素中加载HTML资源。它灵感来源于 htmx 等项目,但旨在以更轻量、更贴近原生HTML的方式实现类似功能。

  • 本质:它是一个代码片段,而非传统的库或框架。
  • 扩展性:可以修改和扩展其核心代码片段以实现更高级的功能,如错误处理、多目标更新等,社区也提供了预写的扩展。
  • 命名含义:HTMZ 代表 “Html with Targeted Manipulation Zones”(带有目标操作区域的HTML)。
  • 主要限制
    1. 每个响应默认只能有一个目标元素(可通过扩展解决)。
    2. 基于传统的请求-响应模型(Web 1.0),每次交互都需要一次网络往返。
    3. 它并非模板库,不提供客户端的HTML导入或包含功能。

htmz 是一个实验性工具,旨在证明用极少的代码即可在现代浏览器中实现基于HTML片段的部分页面更新,其强大能力主要来源于浏览器本身的原生功能。

2. Groq runs Mixtral 8x7B-32k with 500 T/s (groq.com)

核心信息: Groq 推理服务能够以每秒500个token的速度运行Mixtral 8x7B-32k模型,提供快速、低成本的推理能力,专注于自定义硅芯片技术而非依赖GPU。

技术优势: Groq 于2016年推出LPU(推理专用芯片),这是首个为推理设计的芯片,所有设计均旨在保持智能响应的快速性和经济性。其云服务GroqCloud基于LPU构建,在全球数据中心部署,以实现低延迟和高效推理。

客户案例与效果: 多个客户选择Groq,如McLaren F1团队,用于实时分析和决策。用户反馈显示,使用GroqCloud后,聊天速度提升7.41倍,成本降低89%,token消耗增加三倍,表明性能显著提升且成本可控,有助于降低服务价格,如针对学生群体的优惠计划。

集成便捷性: Groq 提供与OpenAI兼容的接口,仅需两行代码即可切换,方便开发者快速接入,确保推理服务稳定、快速且经济实惠。

3. Lapce (lapce.dev)

Lapce 代码编辑器摘要

Lapce 是一款现代、开源的代码编辑器,使用 Rust 语言开发,以其高性能开箱即用的特性为设计核心。它采用原生图形用户界面(GUI),结合 GPU 加速技术(基于 Floem 框架),实现了从快速启动到实时输入的极致流畅体验,任何击键延迟都被视为需要修复的缺陷。

核心特点与功能包括:

  • 远程开发支持:可无缝连接远程机器,提供本地般的开发体验。用户能利用远程服务器的完整性能,或保持与生产环境一致的配置。官方还提供 Lapdev 工具以管理远程开发环境。
  • 完备的内置功能:集成 Tree-sitter 进行语法高亮,速度与准确性远超基于正则表达式的方法。同时内置语言服务器协议(LSP)支持,提供代码补全、诊断提示、代码操作等智能功能。
  • 类 Vim 的模态编辑:无需安装任何插件,开箱即用的 Vim 风格编辑体验。
  • 基于 WASI 的插件系统:支持使用任何可编译为 WASI 的编程语言来开发插件,开发者无需学习新语言即可进行扩展。
  • 内置终端:可直接在编辑器内,从当前工作区路径启动终端,无需切换窗口。

总而言之,Lapce 致力于成为一款速度快、功能强、扩展灵活且对开发者友好的代码编辑工具。

4. How to make a better default Firefox UI (github.com)

这篇文章讨论了作者为Firefox浏览器创建的Lepton主题,旨在改进Firefox v89引入的Proton UI所存在的问题。以下是核心内容的总结:

问题背景

  • 争议:Firefox v89于2021年发布,其Proton UI引发了广泛不满,主要问题是标签页设计反直觉、过多间距浪费屏幕空间、以及图标可读性差。
  • 现状:随着Firefox v115成为支持旧版Windows的最后版本,作者认为这是一个回顾和总结改进方案的好时机。

设计原则

作者基于三个主要原则和16个具体标准进行UI/UX设计推导:

  1. 直观性:易于理解、简洁、关键功能可见、符合用户习惯、一致、可预测、提供操作提示。
  2. 效率:操作快速准确、界面清晰易识别、元素位置接近、尺寸足够大、响应流畅。
  3. 灵活性:兼顾无障碍访问、功能多样、适应不同上下文、元素协调、带来愉悦感、兼容不同环境。

Proton UI的具体问题及Lepton的改进

  1. 标签页设计

    • 问题:标签页形似按钮,违背用户习惯和视觉分组直觉(根据格式塔心理学)。参考案例:苹果Safari曾因类似设计遭反对并最终撤回。
    • 改进:Lepton使选中的标签页与工具栏相连,并通过不同背景色清晰区分选中、多选、悬停等状态,提升了识别度和一致性。
  2. 界面间距

    • 问题:过多的内边距导致屏幕空间浪费,尤其对小屏幕不友好,且不符合Fitts定律(移动时间与目标距离/宽度比相关)。不同UI模式间的差异也过于细微。
    • 改进:Lepton填充了额外空间,使图标视觉上更大、更易点击,同时合理调整了各元素间距。
  3. 图标与文本

    • 问题:Proton UI移除图标,仅依赖文本,导致操作辨识度下降(尼尔森诺曼集团研究支持图标的重要性)。
    • 改进:Lepton在菜单和上下文菜单中恢复了清晰、大小适中、风格一致的图标,提高了扫描和识别效率。同时优化了菜单结构,将快捷键组合集中显示。
  4. 复杂标签状态的处理

    • 问题:Proton UI在多种状态叠加时(如静音、画中画、固定、标题更改等)信息展示混乱、位置不固定或遗漏。
    • 改进:Lepton确保在任何状态下,所有相关信息(如静音、画中画指示器)始终可见且位置固定,避免信息隐藏或移动。
  5. 智能空间利用

    • Lepton根据标签页宽度动态调整:空间不足时隐藏关闭按钮、优化标题显示、甚至利用光学错觉节省空间,从而展示更多网页内容。

其他方面改进

  • 主题适配:Lepton能自动适应不同操作系统(如Windows 7/10/11、macOS、Linux)的原生外观,包括标题栏颜色、按钮位置等。
  • 细节完善:修复了Proton主题的对比度问题,将主题样式应用于更多组件(如媒体播放器),并为表格/列表添加了交替行背景色以提升可读性。
  • 交互与动画:添加了丰富的交互反馈(如鼠标悬停变化、元素边框高亮)和流畅的动画,遵循快速响应、柔和结束的原则,提升了用户体验的愉悦感。
  • 插图恢复:借鉴Photon主题,恢复了友好的错误页面插图,减少了用户的尴尬感。

总结

Lepton主题旨在尊重并改进Proton UI,通过结合设计心理学、用户习惯研究及实际案例,解决了原版UI在直观性、效率和可用性上的核心问题。它提供了更一致、清晰、高效的界面,同时保持了高度的系统适配性和可定制性。

5. AstraZeneca unveils successes in treatment of lung cancer (www.ft.com)

根据提供的文章标题“AstraZeneca unveils successes in treatment of lung cancer”及可访问的内容显示,该文章为《金融时报》的一篇付费报道,目前无法查看全文。其主体内容因订阅限制(如提供标准数字版、高级数字版及周末纸质版等多种付费订阅方案)而被隐藏。

因此,无法就文章所述阿斯利康在肺癌治疗领域取得的具体成功(如临床试验数据、药物名称、治疗效果细节或市场影响等)进行实质性总结。仅能确认其主旨是关于阿斯利康公司在肺癌治疗方面的进展公告。若需了解详情,需订阅《金融时报》后阅读全文。

6. Diseconomies of scale in fraud, spam, support, and moderation (danluu.com)

本文主要探讨了大型科技平台在应对诈骗、垃圾邮件、内容审核及用户支持方面存在的“规模不经济”问题,并反驳了“只有大公司才能做好管理”的常见论点。

核心观点在于,随着平台规模扩大,在关键治理领域往往表现更差。具体体现在三方面:第一,对于几乎所有用户都认同的有害内容(如诈骗、垃圾信息),大型平台因其庞大目标和攻击者更高回报而面临更严重的非线性难度,实际效果常劣于小平台。例如,在搜索引擎、社交平台和邮件系统中,小规模或去中心化的服务在过滤滥用内容方面常常表现更佳。

第二,用户支持质量随公司规模扩大而显著下降。当用户账号被错误封禁或遇到问题时,在大公司获得有效帮助和恢复的难度急剧增加。支持系统常表现为自动化模板回复、官僚化流程,甚至付费支持也无法获得实质性改善,导致用户陷入困境。

第三,随着平台用户数量增长,关于哪些内容应被允许的共识更加难以达成。公司内部在优先级排序和政策制定上往往存在分歧,导致对敏感问题的处理滞后或不力。

文章指出,这些“规模不经济”源于多重因素:尽管大公司拥有大量资源,但通常未将其充分投入治理和支持,而是优先追求增长和利润;公司倾向于依赖自动化系统和规模化方案,但系统变得日益不透明和难以管理;此外,公司文化中对增长指标的过度重视,往往压制了对质量和安全问题的干预。

文中以Meta(Facebook)在缅甸危机中的角色为典型案例,说明即使面对反复严重警告,公司仍未能有效分配资源解决问题,揭示了系统性失职。此外,附录列举了众多Google、Amazon、Facebook等大型平台在反欺诈、内容审核和支持服务方面的具体失败案例,作为论据支撑。

总结而言,作者认为关于规模优势的理论论断与实践中的观察结果相反,大公司治理问题的解决关键不在于技术或资源限制,而在于公司是否选择将资源有效部署于用户安全与支持,并克服规模带来的组织复杂性和文化障碍。

7. Show HN: PRQL in PostgreSQL (github.com)

PL/PRQL 是一个 PostgreSQL 扩展,允许用户使用 PRQL 语言编写存储过程。该扩展支持 Linux 和 macOS 上的 PostgreSQL v13 至 v18 版本。

PRQL 语言简介 PRQL(流水线关系查询语言)是一种开源查询语言,它编译成 SQL 用于数据操作和分析。PRQL 引入了类似 Unix 管道的“流水线”概念,可逐行转换数据。这种顺序转换系列降低了嵌套 SQL 查询的常见复杂性,使数据操作逻辑更易于读写。通过 PL/PRQL,用户可以用 PRQL 而非传统的 PL/pgSQL 来编写过程化语言(PL)函数,结合了 PRQL 的简洁性与存储过程的强大功能。

主要功能

  1. 使用 PRQL 编写函数:适用于大型分析查询。可以将复杂的 SQL 逻辑移植为 PRQL 函数,用于仪表板、业务逻辑或其他数据库代码。
  2. 将 PRQL 查询编译为 SQL 查询:适用于开发和调试。使用 prql_to_sql() 函数可以查看底层执行的 SQL 语句。
  3. 执行 PRQL 查询:适用于原型设计和 ORM 中的自定义查询。使用 prql 函数可以直接运行 PRQL 代码。

使用示例

  • 编写函数:创建一个计算比赛统计(如击杀/死亡比)的 PRQL 函数,并可在 SQL 查询中调用。
  • 编译查询:使用 prql_to_sql() 查看上述函数生成的等效 SQL 语句。
  • 执行查询:使用 prql 函数直接过滤和查询数据,支持返回结果集或游标。

重要限制 PRQL 当前仅支持 SELECT 语句。INSERTUPDATEDELETE 语句及其他数据库代码仍需使用标准 SQL、ORM 或其他数据库框架。

安装方法 该扩展提供四种安装途径:

  1. 安装 Deb 文件:从发布页面下载与操作系统匹配的 .deb 文件,然后使用 dpkg 安装。需要预先安装 PostgreSQL。
  2. 从源代码编译:基于 Rust 的 pgrx 框架构建。需要安装 Rust、cargo-pgrx 及相关依赖,然后克隆仓库并编译安装。
  3. 运行 Dockerfile:使用提供的 Dockerfile 构建一个已安装扩展的 postgres:18-bookworm Docker 镜像。
  4. 运行 Shell 脚本:下载并执行提供的 shell 脚本来自动构建和安装。该方法需要预先安装一系列依赖(C 编译器、PostgreSQL 头文件、Rust 工具链等)。

版本控制与许可证 PL/PRQL 的版本号遵循模式:<PostgreSQL 主版本>.<主版本>.<次版本>

  • 第一个数字标识支持的最新 PostgreSQL 主版本。
  • 第二个数字表示 PL/PRQL API 或行为的破坏性变更。
  • 第三个数字表示错误修复和向后兼容的改进。 该项目采用 Apache 2.0 许可证
9. The day I canceled my Spotify subscription (blog.raed.dev)

取消Spotify订阅的那一天:总结

早期热爱与合法化

作者曾是Spotify的忠实粉丝,早年在突尼斯时通过VPN、免费试用账户和修改版软件等非法方式访问Spotify,尽管过程繁琐,但其便利性(如无缝集成本地MP3和发现新音乐)使其值得。2015年搬到欧洲后,作者终于能合法订阅Spotify Premium,认为这能支持喜欢的艺术家。

对Spotify的不满

随着时间推移,Spotify经历了多次界面重新设计、定价变化,并引入了播客和有声书。作者对当前体验感到失望:

  • 主屏幕问题:充满作者不关心的播客和通用播放列表,缺乏用户自定义选项,无法屏蔽不感兴趣的内容。
  • 音乐体验下降:Spotify训练作者被动接受建议,而非积极收藏和管理音乐,导致音乐体验变得被动和短暂。
  • 商业模式质疑:作者原以为订阅费直接支持艺术家,但发现费用通过黑箱公式汇集,主要支付给顶级表演者,独立艺术家可能因未达阈值而得不到报酬。此外,播客广告在Premium订阅中仍然出现,这被视为负面“创新”。

决定与回归

作者最终意识到不再从Spotify获得快乐,决定导出数据、取消订阅,并回归本地音乐拥有。总结强调Spotify从最初的便利工具转变为令人沮丧的服务,促使用户寻求更自主的音乐体验。

10. RoR Debugbar (debugbar.dev)

RoR Debugbar 简介

RoR Debugbar 是一个旨在帮助开发者更深入地理解和优化其应用程序性能与行为的工具。它通过提供一个可视化的调试栏,将应用运行时的关键信息直观地呈现出来。

核心价值

  • 性能洞察:帮助开发者快速识别应用中的性能瓶颈和慢查询。
  • 行为分析:清晰地展示应用在处理请求过程中的详细执行路径和内部状态。
  • 提升开发效率:通过集中展示关键调试信息,减少开发者定位问题所需的时间。

主要用途

该工具主要面向使用 Ruby on Rails 框架的开发者,用于在开发和测试阶段进行应用行为的深度分析与性能优化。

11. Castle Engine – Free open-source cross-platform 3D/2D game engine using Pascal (castle-engine.io)

Castle Engine 是一款免费且开源的跨平台 3D/2D 游戏引擎,基于现代 Pascal 语言开发。它支持多种平台,包括桌面操作系统(Windows、Linux、macOS、FreeBSD、Raspberry Pi)、移动设备(Android、iOS)、游戏主机(Nintendo Switch)以及网页端。未来还将增加对 VR 的支持。

该引擎提供强大的可视化编辑器和丰富的组件,用于构建 3D/2D 世界(如场景、摄像机、导航、几何体、灯光等)以及设计用户界面(如按钮、图像、标签等)。图形方面支持可组合的着色器特效、阴影、镜面反射、基于物理的渲染、凹凸贴图和伽马校正等功能。此外,它兼容多种开放标准,例如 glTF、X3D 和 IFC 等,方便资源导入与协作。

12. Poland’s PM says previous government illegally used Pegasus spyware (apnews.com)

波兰新任总理图斯克指控前政府非法使用Pegasus间谍软件

  • 指控内容:波兰新任总理唐纳德·图斯克于周二宣布,其掌握的文件证明,在前执政党法律与公正党领导期间,波兰国家当局非法使用了强大的Pegasus间谍软件,并将攻击目标对准了一份“非常长”的受害者名单。
  • 间谍软件功能:Pegasus软件由以色列NSO集团开发,可使操作者完全访问移动设备,能够提取密码、照片、消息、联系人及浏览历史,并可激活设备的麦克风和摄像头进行实时监听。
  • 政治背景:图斯克于去年12月掌权,结束了法律与公正党长达八年的统治。该右翼政党曾被欧盟指控侵蚀民主规范。波兰新议会已成立特别委员会,调查在法律与公正党执政期间该软件的使用者及目标对象。
  • 调查与回应:图斯克表示,已要求司法部长兼总检察长向杜达总统提供文件,这些文件能“百分之百证实”该软件被合法及非法购买与使用。杜达总统尚未对此公开回应。受害者名单暂未公开。
  • 技术验证与影响:多伦多大学公民实验室此前的研究(经美联社独家报道)已发现波兰一些反对前政府的人士遭Pegasus攻击。该实验室高级研究员约翰·斯科特-雷尔顿表示,图斯克的确认“为受害者及我们用于确认感染的技术和取证方法正名”。他指出,此类商业间谍软件对民主构成危险。苹果公司向部分被黑客攻击的用户发送了威胁通知,这些通知成为研究人员和记者发现间谍软件丑闻的首要线索。
  • NSO集团立场:NSO集团声称仅向经以色列国防部审查的合法政府执法和情报机构出售其软件,用于打击恐怖分子和犯罪分子。但全球范围内已出现政府利用该软件针对人权活动家和政界人士的证据。
13. Biologists discover four new octopus species (www.smithsonianmag.com)

生物学家在哥斯达黎加深海发现了四种新的章鱼物种

在哥斯达黎加附近的太平洋深海“埃尔多拉多山丘”,施密特海洋研究所的生物学家发现了四种尚未正式描述的章鱼新种。其中一种在深度约3000米的低温热液喷口附近孵化卵,这一罕见景象为研究深海头足类动物提供了新线索。

核心发现与研究过程

  • 科学家利用遥控潜水器“SuBastian”,在2023年6月和12月进行了两次考察,发现了两个热液喷口、两个章鱼孵化场和一个鳐鱼孵化场。
  • 研究证实这些章鱼孵化场似乎全年活跃。章鱼母亲选择在水温约54华氏度(约12摄氏度)的热液喷口附近孵卵,可能是为了利用热量缩短卵的孵化期,提高后代在寒冷深海中的存活率。

物种特征与分类

  • “多拉多”章鱼:以发现地命名,是唯一获得非正式昵称的物种。它与加州海岸的珍珠章鱼相似,具有短臂和小眼睛的特征。
  • 另外三种新物种:其中两种属于Muusoctopus属,臂较长,有两排吸盘,无墨囊,眼睛比“多拉多”章鱼大。第四种物种的特征(如皮肤凹凸、每条臂只有一排吸盘)令分类学家感到困惑。

科学意义与影响

  • 这是迄今为止全球发现的第二个深海章鱼孵化场(第一个在加州海岸附近),表明通常独居的章鱼可能会在热液喷口附近聚集,为深海生物研究开辟了新方向。
  • 低温热液喷口生态系统难以被探测,但可能是深海生物多样性的重要热点。
  • 本次考察共收集约310件深海标本,全部保存于哥斯达黎加大学动物学博物馆,这是首次将所有章鱼发现标本都保留在其来源的拉丁美洲国家。
14. The boundary of neural network trainability is fractal (arxiv.org)

标题:神经网络可训练性的边界具有分形特性

核心发现 本文实验性地探索了神经网络超参数中导致训练稳定(收敛)与发散行为之间的边界。研究发现,该边界在所有测试的网络配置中,在超过十个数量级的尺度范围内都呈现出分形特性。

背景与动机 研究受到数学中分形的启发。一些分形(如曼德博集合、二次朱利亚集合)的边界是通过迭代一个函数,并判断生成序列是发散还是有界来计算的。神经网络训练过程同样涉及迭代一个更新函数(如梯度下降步骤),其结果可能收敛或发散,并且对超参数的微小变化极度敏感。基于这些相似性,作者开展了本研究。

主要结论

  1. 分形边界普遍存在:神经网络的训练动态并非平滑过渡,其稳定与发散区域之间的边界是复杂且精细的,具有分形结构。
  2. 尺度跨越极广:这种分形特征跨越了极大的尺度范围(超过十个数量级),表明其结构的复杂性和自相似性是内在且显著的。
  3. 对超参数敏感:研究结果证实了神经网络训练对超参数选择的高度敏感性。在分形边界附近,任意微小的超参数调整都可能引发训练行为从稳定到发散的剧烈转变,这为实际训练中的调参带来了深刻挑战。

意义 该研究将神经网络训练理论与分形几何建立了直观联系,揭示了训练过程内在复杂性的数学本质,为理解其不稳定性及超参数敏感性的根本原因提供了新的视角。

15. A random dungeon generator that fits on a business card (2019) (gist.github.com)

A random dungeon generator that fits on a business card (2019) 摘要

本文介绍了一个极简的随机地牢生成器,其代码可以容纳在名片大小的空间内。核心内容是使用C语言编写的紧凑程序,用于生成随机地牢地图。

代码目的

该程序的目的是生成一个随机地牢,通过随机放置房间和走廊来创建迷宫般的结构。它使用随机数生成器来确保每次运行都能产生不同的布局。

代码结构

  • 头文件:包括 <time.h>(用于随机种子)、<stdio.h>(输入输出)和 <stdlib.h>(标准库函数)。
  • 宏定义
    • r 定义为 return,简化代码。
    • l(a, b, c, d) 定义嵌套循环,用于遍历二维数组。
  • 全局常量H=40(地图高度)和 W=80(地图宽度),地图存储在二维数组 m[40][80] 中。
  • 关键函数
    • g(i x):返回0到x-1的随机整数。
    • cave(i s):生成一个房间或走廊。参数 s 控制是否生成起始房间(如玩家位置)。函数随机确定房间尺寸和位置,检查与现有地图的冲突,并放置墙壁、地板和特殊字符(如玩家或宝藏)。
    • main():初始化地图为空格,循环1000次调用 cave 函数(首次调用生成起始房间),最后输出地图,将感叹号 ! 转换为 # 以形成墙壁。

关键功能

  • 随机房间生成:每个房间随机大小(宽度5-14,高度3-8)和位置,确保不重叠。
  • 连接走廊:通过检查房间边界上的墙壁来创建连接,使用 +\ 表示门或走廊入口。
  • 特殊元素:在房间内随机放置玩家(@)、宝藏($)或其他字符(A-Z、a-z、0-9)。
  • 地图输出:最终以字符形式打印地牢,其中 # 表示墙壁,. 表示地板,空格表示未探索区域。

代码特点

  • 代码极其紧凑,旨在适应名片大小,体现了极简主义编程风格。
  • 使用C语言的低级特性(如宏和全局变量)来压缩代码行数。
  • 随机种子基于当前时间,确保每次运行生成不同地牢。

该生成器适用于游戏开发或算法演示,展示了如何在有限空间内实现复杂功能。

18. GoPro Ride Through an Electron Beam Irradiator at Full Beam Power [video] (www.youtube.com)

该视频展示了一台处于全功率运行状态的电子束辐照器,实验中使用了一台经过辐射屏蔽的GoPro Session运动相机穿过该装置。视频的核心在于记录相机穿越高能电子束时的影像。

  • 实验设备与参数:电子束辐照器的工作束流参数设定为:能量 3.0 MeV,电流 50 mA
  • 实验方法:将辐射屏蔽后的GoPro相机送入辐照器内部并穿越电子束。
  • 实验目的:视频中同时观察了在光束下方通过的方解石样品。
19. I taught the Iliad to Chinese teenagers (scholars-stage.org)

总结:我如何向中国青少年教授《伊利亚特》

课程背景与目标

作者曾为北京一所顶尖高中国际部的优秀毕业生设计并主持了两个为期十周的研讨会课程,旨在为他们即将到来的美国大学生活做准备。课程目标包括:1)让学生体验美国大学课堂,培养参与讨论、撰写研究论文和引用资料的能力;2)引导学生学习对其未来人生有意义的知识。第一个课程名为“美好生活”,探讨伦理哲学;第二个名为“战争”,通过多种文学艺术作品研读战争体验,其中一半时间专注于《伊利亚特》。该课程反响热烈,被学生誉为高中三年的亮点。

教学准备与核心理念

  • 充分准备:作者进行了大量准备工作,包括研读不同译本、相关学术著作和文章(特别推荐乔纳森·谢的《越南的阿喀琉斯》和卡罗琳·亚历山大的《杀死阿喀琉斯的战争》),并耗时约一年设计课程。
  • 翻译选择:最终选用罗伯特·费格尔斯的译本,因其流畅易读、诗体形式及在资源获取上的便利性,有助于降低学生的畏难情绪。课程未涵盖全诗,聚焦于核心情节与主题(约280页),以确保课程深度和学生兴趣。
  • 核心教学理念:作者强调,向青少年传授古典著作的“为何学”比“如何学”更重要。应将《伊利亚特》作为一部探讨人类普遍境遇(如死亡、名誉、责任)的作品,而非单纯的西方传统基石。教师需真诚相信所授内容能改变学生人生,并认真对待学生的见解。同时,应设立高标准并投入时间帮助学生达到要求(例如采用严格的论文评分及重写机制)。

成功教学策略

  1. 座位与讨论安排:强烈推荐将课桌拼成四至六人的小组桌。这种方式能自然衍生出丰富的学习活动:在较长课时中,教师可随时抛出问题,让学生进行小组讨论,再由代表发言。这能确保所有学生参与思考与表达,尤其有利于缓解ESL学生的紧张,帮助其练习语言表达和思路整理。
  2. 确保完成阅读:每节课开始时进行简短的“三分钟阅读测验”。题目基于事实、易于回答且难以通过阅读概要应付,由学生相互批改。这既是阅读压力,也促进学生准时到课。
  3. 结构化研讨课:定期(约每三周一次)举行正式的研讨会。学生需提前完成“研讨准备文件”(摘录文段并撰写说明、提出问题)。研讨时将学生分为内外两圈,进行小组讨论与观察记录,确保在有限时间内让所有学生都有机会参与发言。

课程结构与内容概要(十二节课)

课程分为三个主题单元,循序渐进地引导学生理解《伊利亚特》。

  • 第一、二周:引入《伊利亚特》及其世界
    • 第一课:通过戏剧化朗诵开场,介绍希腊神话背景、关键神祇与人物,并提出核心问题:为何在无书写时代,人们要传承这部关于战争的史诗?布置作业让学生熟悉希腊神祇并阅读第一卷。
    • 第二课:探讨“荣誉文化”。通过现代影视片段(如《路易不容易》)和塔-内西斯·科茨的引述,引导学生理解荣誉作为一种社会“盾牌”的公共性和竞争性。重点分析阿喀琉斯与阿伽门农的争端本质,布置作业精读相关段落。
    • 第三课:对比分析宙斯与阿伽门农的领导方式。引入希腊概念“忒弥斯”(社会秩序/契约),并结合越战经历的文学摘录,讨论军队道德共同体被破坏的后果。
    • 第四课:简要介绍“荷马问题”及青铜时代晚期文明的崩溃。将《伊利亚特》置于“后末世小说”的视角下理解。进行分组项目,让学生研究史诗中的次要人物。
    • 第五课:通过分析战斗片段(如阿伽门农的战斗),揭示荷马式战斗的特点:通过插叙赋予阵亡者背景故事,体现战争的悲剧性与个人追求“荣光”的意义。结合现代历史武术比赛视频,说明古代战场的残酷与对超人勇气的要求。
  • 第三、四周:在 mortality 中寻找意义
    • 第六课:聚焦赫克托尔与家人的场景,特别是与妻子安德罗玛刻的对话。引导学生探讨安德罗玛刻的劝阻与赫克托尔以责任、名誉为由重返战场的抉择,揭示角色对荣誉文化开始产生内在质疑。
    • 第七课:通过萨耳珀冬与格劳科斯的对话,阐述为荣光而战的哲学。重点分析阿喀琉斯在第九卷中对生命、荣光与必死命运的彻底反思,展现其与前述战士截然不同的价值观。布置第一次正式研讨准备文件。
    • 第八课:举行第一次正式研讨,围绕“英雄性”、“荣光的价值”、“自私的界定”及史诗的现代相关性展开讨论。
  • 第五、六周:阿喀琉斯的沉沦与救赎
    • 第九课:探讨荷马史诗中诸神的角色。采用“流动小组”活动,让不同小组研读不同的学术阐释片段,并相互教学,最后集体讨论哪种解释最具说服力。
    • 第十课:分析帕特罗克洛斯之死对阿喀琉斯的毁灭性影响。通过同心圆示意图,逐步展示阿喀琉斯如何失去对人类、同伴乃至最后挚友的联结,陷入彻底的孤立与虚无,进而进入“狂暴”状态。结合文学分析,布置阅读相关章节。
    • 第十一课:分析阿喀琉斯战胜赫克托尔后非人化的言行(如与狮子的类比),说明其人性如何进一步沉沦。指出《伊利亚特》最终章(第二十四卷)关于普里阿摩斯赎回儿子尸体的情节,将是阿喀琉斯人性回归的关键。
    • 第十二课:举行第二次正式研讨,聚焦于《伊利亚特》结局的象征意义、赫克托尔与阿喀琉斯的和解、史诗的总体基调及其核心启示。

附录

作者还列出了“战争”课程中使用的其他作品,包括小说《西线无战事》、多首一战诗歌、散文、电影(如《火垂之狱》、《科伦拜因》)及纪实文学(如《广岛浩劫》),作为《伊利亚特》主题的延伸与对照。

20. Show HN: Domino Fit – Domino Tiling Puzzle (dominofit.isotropic.us)

Domino Fit 项目摘要

  • 项目名称: Domino Fit – 多米诺骨牌拼图游戏
  • 展示来源: Show HN(Hacker News 项目展示)
  • 主要内容: 显示第一次游戏结果,包括奖杯符号(🏆)和多个完成标记(✅✅✅✅✅),并提供链接以查看解决时间。
  • 关键功能: 专注于多米诺骨牌拼图的解决,可能涉及拼图摆放挑战,并集成计时功能以记录解决过程。
  • 结构特点: 内容简洁,以视觉符号(如表情符号)表示进度和成就,强调用户交互(如点击链接查看时间)。
  • 目的: 作为项目演示,旨在展示多米诺骨牌拼图游戏的玩法和用户体验。
21. Porting to GCC 14: C language issues (gcc.gnu.org)

GCC 14 将多项之前仅为警告的 C 语言问题升级为错误,以强制修复易被忽略的代码缺陷。迁移时需关注以下常见问题及解决方案:

主要语言问题

  1. 隐式 int 类型 (-Werror=implicit-int)

    • 问题:省略变量或函数返回类型时,默认为 int
    • 解决:显式添加 intvoid(用于无返回值函数)。旧式函数定义需添加正确的参数类型。
  2. 隐式函数声明 (-Werror=implicit-function-declaration)

    • 问题:调用未声明的函数。
    • 解决:包含正确的头文件(GCC 会提示)。对于 POSIX 扩展,可能需要定义特性测试宏或使用 -std=gnu11。对于项目内部函数,应在共享头文件中添加声明。
  3. 函数原型拼写错误 (-Werror=declaration-missing-parameter-type)

    • 问题:函数声明中的类型名称拼写错误。
    • 解决:修正拼写错误。
  4. return 语句类型不匹配 (-Werror=return-mismatch)

    • 问题void 函数中返回了表达式,或非 void 函数省略了返回值。
    • 解决:移除错误的表达式或添加适当的返回值。
  5. 指针与整数混用 (-Werror=int-conversion)

    • 问题:隐式将指针与整数相互转换。
    • 解决:添加显式类型转换。可使用 intptr_t/uintptr_tvoid *
  6. 指针类型不兼容 (-Werror=incompatible-pointer-types)

    • 问题:不允许在不同指针类型间隐式转换(void * 除外)。
    • 解决:添加显式转换。回调函数需使用正确原型。注意严格别名规则,必要时使用 -fno-strict-aliasing

对构建系统的影响

  • Autoconf/CMake 等:新的错误可能导致特性检测探针编译失败,从而意外禁用功能。需比较 config.log 等文件检查异常。

临时解决方案

  • 使用 -fpermissive-std=gnu89-std=c89 将错误降级为警告。
  • 通过 -Wno-error=... 禁用特定错误。
  • 代码生成器可使用 #pragma GCC diagnostic warning 指令。

未来变化预告

  • bool 关键字的默认支持可能带来兼容性问题。
  • 无原型函数声明(如 void f();)在未来可能引发警告,并在 C23 中变为约束违反。
  • 旧式函数定义预计仍将得到支持。

C++ 相关问题

  • 标准库头文件包含调整:需显式包含如 <algorithm><cstdint> 等头文件。
  • pragma GCC target 行为变更,影响 ISA 宏定义,可能导致代码针对错误指令集编译。
  • _Float16__bf16 类型的算术支持需通过 __SSE2__ 宏检测。
22. Gemini 1.5 outshines GPT-4-Turbo-128K on long code prompts, HVM author (old.reddit.com)

摘要

本文为HVM作者Victor Taelin对Gemini 1.5和GPT-4-Turbo-128K在处理长代码提示方面的测试比较。测试使用了HVM1和HVM2的合并代码库,共计120K tokens,通过7个问题评估两个模型的理解能力。以下是关键结果:

  1. 基础概念问题:关于HVM1基于term-like calculus和HVM2基于raw interaction combinators,两者均回答正确,平局。
  2. 语法示例:Gemini正确识别HVM1的Haskell风格语法,并尝试理解HVM2的alien IR语法,而GPT-4完全错误且出现幻觉,Gemini大胜。
  3. 内存存储表示:Gemini参考注释中的教程,为HVM1生成了部分正确的内存转储,但无法处理HVM2;GPT-4回避问题并声称信息缺失,但实际存在,Gemini获胜。
  4. beta-reduction代码定位:Gemini准确指出HVM1部分但误判HVM2;GPT-4避开HVM1但对HVM2给出合理推测,平局。
  5. 垃圾收集bug分析:Gemini理解HVM1的注释并正确解释bug,GPT-4回答错误,Gemini获胜。
  6. 并发bug解决方案:Gemini从分散信息中整合出HVM1的bug和HVM2的解决方案,GPT-4忽略要点,Gemini获胜。
  7. 移除的函数:Gemini识别出HVM1中存在但HVM2移除的函数并提供解释,GPT-4部分错误,Gemini获胜。

总体结论:Gemini 1.5在处理120K-token长上下文时显著优于GPT-4-Turbo-128K,展现了较强的信息定位和跨距离连接能力,但仍无法构建系统完整的心理模型或进行深度推理,因此尚未达到AGI水平。测试表明,Gemini 1.5在长代码理解任务中表现突出,而GPT-4在长上下文中容易出错。

23. Extreme video compression with prediction using pre-trainded diffusion models (github.com)

基于预训练扩散模型的预测式极端视频压缩

本文档介绍了一个利用预训练扩散模型进行极端视频压缩的项目。

项目概览与环境要求

  • 项目核心是使用预训练的扩散模型来实现视频压缩,在低比特率下性能优于H.264和H.265传统标准。
  • 运行环境需要Python 3.8及Conda,并建议配置CUDA以使用GPU加速。

压缩功能使用

  • 输入数据格式:压缩模型的输入为形状 (B, T, C, H, W) 的数组。其中,B为视频数量,T为帧数(固定为30),通道C为3,每帧尺寸固定为128x128像素。
  • 数据预处理:用户需将视频数据转换为上述格式。文档提供了city_bonn.npy示例文件,其中包含来自Cityscape数据集的46个视频。
  • 处理流程:通过运行city_sender.py脚本启动压缩。可通过start_idxend_idx参数选择处理特定范围的视频。

基准测试工具

  • 文档提供了用于计算H.264和H.265压缩性能指标的代码。
  • 输入要求:测试数据需为30帧128x128的图像序列,并按frame0.pngframe29.png格式命名。
  • 运行方式:通过bench.py脚本进行测试,并使用project_str参数标识数据集。

模型检查点配置

项目使用两套检查点:

  1. 视频生成模型checkpoint_900000.pt文件,需放置于checkpoints/sender文件夹。
  2. 图像压缩模型:包含六组不同压缩质量的检查点,对应不同的拉格朗日乘子(λ)值和质量等级,需放置于checkpoints/neural network文件夹。具体对应关系如下:
    • λ=0.45,质量 q5
    • λ=0.15,质量 q4
    • λ=0.032,质量 q3
    • λ=0.015,质量 q2
    • λ=0.008,质量 q1
    • λ=0.004,质量 q0

模型性能

性能图表显示,在低比特率(bpp)条件下,本项目的压缩模型在压缩性能上优于传统的H.264和H.265标准。图表数据基于city_bonn.npy文件中的前24个视频计算得出。

24. Ask HN: Best resources on starting a lifestyle business?

文章总结:

  • 提问者背景与动机: 一位拥有多年风险投资支持初创公司RevOps(收入运营)和销售经验的专业人士,正在考虑为某个自己感兴趣的特定细分行业创立一家SaaS(软件即服务)企业。
  • 核心问题与困境: 他正在寻求开启“生活方式企业”(lifestyle business)的最佳资源。但他基于过往经验,对市场上许多收费出售“指南”或“资源”的网红和专家持怀疑态度,这让他难以辨别哪些资源真正具有价值。
  • 请求内容: 他希望社区能推荐那些在他考虑踏上创业之旅时,真正有用的资源。
25. Everything is a linear model (danielroelfs.com)

文章核心:常见统计检验是线性模型的变体

这篇文章通过数学推导和R代码示例,论证了一个核心观点:许多常见的统计检验(如t检验、ANOVA)在本质上都是线性模型(lm())的特定形式。理解这一点有助于从统一的框架理解统计检验的输出结果(如估计值、标准误、t值、F值等)。

1. 单样本t检验即线性模型

  • t检验公式:计算样本均值与参考值(总体均值)的差异,并用标准误标准化。
  • 转化为线性模型:将样本值减去参考值后,拟合一个只包含截距项(~ 1)的线性模型。此时:
    • 截距估计值等于调整后样本的均值。
    • 截距的t值t.test()函数得到的t值完全相同。
    • 这证明单样本t检验等同于检验线性模型的截距是否为0。

2. 双样本t检验即线性模型

  • t检验公式:比较两组均值的差异,并用合并标准误标准化。
  • 转化为线性模型:用组别(如0/1编码)作为预测变量拟合线性模型(浓度 ~ 组别)。此时:
    • 截距估计值是参考组(如健康对照组)的均值。
    • 组别变量的斜率估计值等于实验组均值减去参考组均值。
    • 组别变量的t值与Welch t检验得到的t值(符号可能相反)相同。
    • 这证明双样本t检验等同于检验线性模型中分类变量系数是否为0。

3. 方差分析(ANOVA)即线性模型

  • 关键联系:R中的aov()函数实际上是lm()的包装器。
  • 结果对比
    • ANOVA的F统计量和p值与对同一数据拟合的线性模型(分数 ~ 组别)的整体F检验结果完全相同。
    • 线性模型的系数估计值表示各组均值与参照组(如第一个水平)均值的差值。
    • ANOVA表中的平方和(组间平方和、残差平方和)可以通过比较组均值与总均值、个体值与组均值来计算,这与线性模型中的方差分解概念一致。

4. 线性模型详解:残差与R²

  • 残差:观测值与模型预测值(拟合值)之间的差。残差平方和(SSE)是衡量模型未解释变异的关键指标。
  • 总平方和(SST):观测值与总均值之间的差的平方和,代表数据的总变异。
  • R²(决定系数):表示模型解释的变异比例,计算公式为 1 - (SSE / SST)。文章通过手动计算验证了其与summary(lm())输出一致。
  • 可视化理解:文章通过图示直观展示了数据点、回归线、残差(箭头长度)以及残差平方(正方形面积),帮助理解“残差平方和”的几何意义。

结论

文章总结,从简单的t检验到复杂的ANOVA,其核心都是线性模型框架的特例。虽然这并不意味着必须只用lm()进行所有分析,但理解这种统一性有助于深入解读各种统计检验输出的含义(估计值、标准误、检验统计量等),从而更好地理解数据。

26. Wyze security incident update (forums.wyze.com)

Wyze安全事件更新摘要

事件概述

2024年2月16日,Wyze公司发生安全事件,导致用户数据泄露,具体表现为事件缩略图被错误地显示给其他用户。事件发生后,Wyze立即启动调查并采取行动通知用户。

用户通知策略

Wyze向所有用户发送了电子邮件,根据受影响程度将通知分为四类:

  • 第一封:发送给所有未受影响的用户,告知事件但强调其账户安全。
  • 第二封:发送给事件缩略图被他人看到但未点击的用户。
  • 第三封:发送给事件缩略图被他人看到且点击的用户。
  • 第四封:发送给看到他人缩略图但自己缩略图未泄露的用户。

电子邮件发送过程中,受影响用户的邮件先发出,未受影响用户的邮件可能延迟,因Wyze拥有数百万用户。

事件根本原因

调查表明,事件主要由两个因素引发:

  1. AWS服务中断:合作方AWS的服务中断导致Wyze设备在2月16日清晨停机数小时。
  2. 缓存库错误:在设备ID和用户ID映射过程中,缓存库出现错误,导致在负载变化时键值返回不同结果,进而混淆了用户数据。错误涉及第三方缓存库,但具体名称未公开。

社区反应与Wyze回应

用户社区对事件表达了多样反应:

  • 批评与担忧:部分用户指责Wyze推卸责任给AWS和第三方库,指出类似事件在2023年9月已发生,质疑公司安全措施的不足。
  • 反馈与问题:用户询问了缓存库的具体细节、错误文档化情况,以及事件查看功能何时恢复。
  • 正面评价:有用户肯定Wyze此次通过电子邮件清晰分类通知的做法,认为这是改进的积极步骤。

Wyze方面表示已采取补救措施,包括:

  • 创建新的安全监控仪表板以加强未来事件检测。
  • 修复缓存库错误,防止类似映射问题。

事件影响与当前状态

事件影响范围有限,超过99.75%的Wyze账户未受影响。用户如未收到电子邮件,可能因发送延迟,建议检查收件箱或联系支持。事件查看功能暂时中断,但未指定具体恢复时间。Wyze强调持续改进安全协议,并承诺未来更透明沟通。

27. Bitmagnet Allows People to Run Their Own Decentralized Torrent Indexer Locally (torrentfreak.com)

Bitmagnet:实现本地化去中心化种子索引

Bitmagnet 是一款新兴的自托管工具,允许用户在本地运行私有化的去中心化种子索引器。其核心目标是减少用户对公共种子网站的依赖,从而规避广告、恶意软件风险以及网站被关停带来的问题。

技术背景与原理

  • BitTorrent 的去中心化潜力:BitTorrent 协议本身具备去中心化特性,尤其是通过分布式哈希表(DHT)和 BEP51 协议扩展,能够在不依赖中心服务器(追踪器)的情况下发现和收集信息哈希(infohash)。
  • 现实与理论的差距:尽管协议具备去中心化能力,但用户通常仍依赖集中式搜索引擎或索引网站获取资源。这些网站一旦离线,其提供的种子文件也随之消失。
  • Bitmagnet 的解决方案:该工具利用 DHT 和 BEP51,通过本地运行的爬虫主动发现并收集种子元数据,将其转化为完整的可搜索索引,无需中心化网站作为中介。

主要功能与特点

  • 私有化部署:用户可通过 Docker 容器快速部署实例,并支持通过 Gluetun 集成 VPN 以增强隐私保护。
  • 自动分类与搜索:运行后,Bitmagnet 自动从 DHT 网络收集种子信息,对内容进行分类,并通过内置搜索引擎提供查询功能。
  • 庞大的内容规模:长期运行后,索引的种子数量可达千万级别,甚至超过许多传统公共种子网站的库藏,且包含大量通常仅在私有追踪器中流通的内容。

优势与局限

  • 优势
    • 去中心化与自主控制:用户完全掌控索引内容,不依赖第三方网站。
    • 内容发现能力强:通过 DHT 持续爬取,能发现大量冷门资源。
  • 局限与挑战
    • 缺乏内容筛选:初始版本几乎索引所有 DHT 可见内容,包括错误标签、恶意软件或潜在非法内容(软件内置 CSAM 过滤机制)。
    • 资源索引延迟:罕见资源可能需要更长时间才能被发现并收录;偶尔可能遇到无效或不完整种子。
    • 未来改进方向:计划通过支持手动发布、联邦学习等功能增强内容筛选和社区协作。

法律与使用风险

  • 公共部署风险:若将实例公开为搜索引擎,可能因流量引发版权机构关注,面临法律风险。
  • 私人使用风险:即使仅用于个人合法内容下载,由于 Bitmagnet 在 DHT 网络中以客户端身份活动,可能被反盗版监控工具误标记。开发者建议用户配合 VPN 使用以降低风险。

项目现状与可持续性

  • 开发状态:目前处于早期(Alpha)阶段,但已引起关注(Docker 镜像下载近 2.5 万次,GitHub 星标超千)。
  • 抗关停性:代码为开源,即使 GitHub 仓库面临侵权投诉,也可轻易迁移至其他平台继续分发。开发者强调工具本身不包含侵权内容,类似于浏览器或 BitTorrent 客户端,属于中立技术工具。

Bitmagnet 展示了 BitTorrent 协议长期未被充分利用的去中心化潜力,为用户提供了一种自托管、抗审查的索引替代方案,但仍需用户在内容管理与法律风险间自行权衡。

28. GitHub bans organizations without warning or explanation

事件概述:GitHub 平台在未提供警告或解释的情况下,封禁(隐藏)了用户账户下的多个组织。

用户具体情况

  • 该用户所有账户关联的组织均被从公开视野中隐藏。
  • 用户界面显示红色横幅,告知“您的几个组织已被标记”并因此被隐藏,并建议联系支持团队复查。
  • 关键问题:平台既未指明具体哪些组织被标记,也未说明封禁原因。
  • 用户在联系 GitHub 支持超过一周后,未收到任何回应。

用户困惑与不满

  • 用户声称其个人资料中没有任何有争议的组织。
  • 此事件引发了用户对 GitHub 平台管理透明度和公正性的质疑。

背景信息

  • 此事件由用户 siamese_puff 于 2024年2月18日在 Hacker News 上发布。
  • 截至目前,该帖获得 130 个赞同,并引发 58 条讨论。
  • 用户同时提供了相关推文链接作为事件佐证。
29. AMD Zen 5 CPUs Reportedly Made on TSMC's 3nm Process, Mass Production in Q3 (wccftech.com)

AMD Zen 5 CPU预计将于2024年第三季度进入量产,相关芯片预计最早在第二季度进入台积电晶圆厂进行生产准备。此次量产将涵盖多个CPU产品线,包括面向桌面的Granite Ridge(Ryzen)、面向移动平台的Strix Point(Ryzen)以及面向服务器的Turin(EPYC)。

报道指出,关键的Zen 5 "Nirvana" CCD(核心计算芯片)将采用台积电3nm工艺制造,而此前有消息认为标准Zen 5架构将使用4nm节点,3nm工艺则专为追求高密度计算的Zen 5C "Prometheus"核心预留。因此存在工艺节点信息相互矛盾的可能性。目前,AMD的MI300系列高性能计算产品已使用台积电4nm和5nm工艺进行量产,订单需求持续旺盛。

关于Zen 5架构的官方信息有限,但已知其将提供增强的性能与效率、经过重构的前端与更宽的发射结构,以及集成的AI与机器学习优化。尽管相关报道的准确性尚未得到官方证实,但AMD Zen 5 CPU系列因其预期的性能、效率提升和新特性,已引起广泛关注。更多官方信息有望在2024年6月的Computex展会前后公布。

30. Show HN: CodeRev.app – Code Review as Interview (coderev.app)

CodeRev.app:将代码评审融入面试的免费工具

CodeRev.app 是一款专为技术面试设计的代码评审工具,旨在帮助团队高效、准确地评估候选人的代码阅读、分析与沟通能力。该工具完全免费,无广告、无付费计划、不收集用户数据,并提供开源代码供自行部署。

核心理念与优势

随着 AI 编程助手(如 Copilot、Cursor)的普及,团队需要能评估候选人审查 AI 生成代码或现有代码库的能力。CodeRev.app 通过让候选人直接评审代码片段,模拟真实工作场景,从而:

  • 反映日常工作职责:聚焦代码分析、反馈与沟通,而非算法解题。
  • 降低作弊风险:相比算法题,更难通过死记硬背或生成式 AI 工具应付。
  • 高效评估:在更短时间内了解候选人对代码质量、性能和安全的判断力。
  • 适用角色广泛:适合技术主管、架构师、技术支持、QA 等更侧重代码阅读而非编写的职位。

主要特点

  • 设置简便:轻量级,几步即可创建评审任务。
  • 环境隔离:无需暴露公司 GitHub 账户或代码库。
  • 注重协作:强调开放式讨论与反馈,而非黑白对错的答案。
  • 隐私保护:支持匿名账户,数据永久删除,仅使用 Google Analytics 分析流量。

技术实现

  • 技术栈:Nuxt3 (Vue.js) + Quasar Framework + Google Cloud Firebase。
  • 成本控制:主要使用静态资源,Firestore 使用量极小,文件存储在 Storage(免费额度 1GB/天),仅域名需续费。
  • 开源可用:代码完全公开,确保数据使用透明。

常见问题

  • 与 CodeSandbox/Stackblitz 的区别:后两者用于代码编写测试,而 CodeRev.app 专注于模拟实际代码评审中的沟通与问题发现。
  • 能否替代编码测试:可作为评估手段之一,尤其适合侧重代码分析的职位。
  • 免费原因:通过优化资源使用和利用云服务免费额度,实现长期免费运营。

CodeRev.app 提供了一种低压力、高真实性的面试方式,帮助团队更全面地评估候选人的工程实践能力。

31. Show HN: RAM Prices (ramstickprices.com)

该内容是一份内存(RAM)产品价格列表,以结构化数据形式呈现,每个条目包含三个数值和一个亚马逊产品链接。

数据结构:

  • 第一列数值:该内存条每MB容量的价格(单位:美元),数值范围为0.02至7.00。
  • 第二列数值:该内存条的单条/套装总价(单位:美元),价格从$9.99到$839.96不等。
  • 第三列数值:该内存条的单条容量(单位:MB),涵盖256MB、512MB、1GB、4GB、8GB、16GB、32GB、64GB、128GB等多种规格。

内容概述:

  1. 产品多样性:列表涵盖了从非常早期的DDR/DDR2内存到较新的DDR4内存,适用于台式机、笔记本电脑、服务器、工作站、苹果Mac电脑、NAS设备等多种平台。
  2. 品牌与型号:列出了众多品牌的产品,如Kingston、Crucial、Samsung、Hynix、A-Tech、Timetec、NEMIX RAM、CMS、OWC等,具体型号和规格描述详细(包括类型如DDR、DDR2、DDR3、DDR4,频率如533MHz、1600MHz、2400MHz、3200MHz,是否带ECC校验等)。
  3. 价格信息:提供了广泛的价位选择,从十几美元的老旧小容量内存,到数百美元的新款大容量、高频内存套装。
  4. 数据本质:这份列表本质上是一个内存市场价格速查表或价格比较工具,旨在通过量化指标(每MB价格)和明确的产品链接,帮助用户快速了解当前不同规格内存的市场价位,便于根据预算和需求进行选购或参考。
32. Airline Takes Revenge After Bad Review, Posts Passenger's Passport Online (viewfromthewing.com)

文章摘要:航空公司因差评报复乘客,公布其护照照片

事件背景
YouTuber乔希·卡希尔(Josh Cahill,拥有近70万订阅者)以评测航班闻名,此前曾因负面评测被卡塔尔航空封禁。近期,他搭乘东帝汶航空(Aero Dili)从巴厘岛飞往东帝汶帝力机场,并发布了一段对该航司唯一喷气式客机的差评视频,声称机上食物导致食物中毒。

航空公司的报复行为
东帝汶航空在Facebook上回应指控,称卡希尔试图“敲诈”航司,以换取正面评测,并列举其索要内容:

  • 免费航班
  • 酒店住宿
  • 日常餐饮津贴
  • 5万美元现金
    然而,航司未提供任何证据支持此指控,转而公开发布卡希尔的护照照片作为回应。

法律与行业背景

  • 卡希尔指出,东帝汶尚无生效的数据保护法律(2021年曾有相关法律草案但未实施),因此公布护照照片并不违法。
  • 该航司并非国际航空运输协会(IATA)成员,未违反该组织指南。
  • 卡希尔呼吁观众向新加坡政府施压,阻止东帝汶航空计划开通的新加坡航线,理由是其未遵守数据保护标准。

舆论与行业分析

  • 航空博客“One Mile at a Time”指出,航司公布护照照片的做法极不妥当,不仅无益于自身形象,还招致广泛批评。该博主认为航司对敲诈的指控“完全是捏造的”。
  • 部分观点推测,卡希尔可能曾主动联系航司寻求赞助或合作,但航司提出的索赔金额(5万美元)对于一家小型航司而言显然不切实际。
  • 卡希尔的追随者在航司社交媒体上大量留言抗议,航司仅使用Gmail地址(aerodili2018@gmail.com)作为官方联系邮箱,显示其规模较小。

事件核心争议

  • 卡希尔否认敲诈指控,强调航司声明完全虚假。
  • 航司未公布卡希尔的所谓“索要邮件”,却选择公开其护照信息,此举被批为不当且缺乏实质意义。
  • 评论认为,卡希尔的评测视频需通过戏剧化内容(极端正面或负面体验)吸引关注,而航司可能将其实质性投诉误解为恶意敲诈。

后续影响

  • 事件凸显了小型航司在社交媒体危机处理上的不专业性,以及数据隐私保护法律缺失地区的风险。
  • 卡希尔的粉丝持续在航司社交平台施压,进一步加剧了航司的舆论危机。

(总结基于原文内容,未包含主观评价或额外信息。)

33. "Rabbit Test" Unwins the Hugo (samtasticbooks.com)

2023年雨果奖争议事件总结

事件背景
2023年雨果奖的提名与投票统计数据于2024年1月公布后,引发广泛质疑。数据显示,部分潜在候选作品被莫名标记为“不符合资格”,且提名数据存在难以解释之处。

核心问题曝光
2024年2月14日,Jason Sanford与Chris M. Barkley联合发布的调查报告揭示了关键内幕:一名奖项管理员泄露的邮件显示,奖项委员会中的美国/加拿大成员主动且私自审查了候选作品的政治立场(尤其是涉及中国的内容),并据此将部分作品排除在提名之外。值得注意的是,无证据表明中国审查机构曾干预英文作品的评选,部分作品甚至已被译为中文。这种行为被认定为基于猜测的预防性自我审查

提名操纵的具体表现
泄露的验证名单显示,尤其是在虚构类奖项中,大量原本处于领先地位的中国提名者作品神秘消失,未能进入最终候选名单。数据显示,若这些作品未被移除,2023年所有虚构类获奖者(包括短篇、中短篇、中长篇、长篇小说和系列小说)均无法成为最终候选

“名单”指控与实际情况
管理员在道歉信中声称,由于收到“中国出版物存在提名名单串通”的信息,相关选票被识别并剔除。然而调查指出:

  • 雨果奖规则并未禁止“名单”式提名。
  • 无证据表明存在违规串通(如大规模购买会员资格)。
  • 实际情况是:中国《科幻世界》杂志曾刊登雨果奖提名指南及推荐作品(涵盖中英文作品),中国科幻爱好者出于热情按指南正常投票。中国科幻社群规模庞大且活跃,这是积极现象。

获奖作者的反应与行动
文章作者(雨果奖获奖者之一)基于现有信息,认为自己“不应出现在候选名单上”。虽然最终投票未受直接篡改,作者仍对奖项的公正性产生严重质疑:

  • 感到被利用,成为“无争议”的名单点缀,实则服务于排斥中国作品、维护美国主导权的隐议程。
  • 对受影响的中国提名者和爱好者表示歉意。
  • 从个人简介中删除“雨果奖”标识。
  • 已联系出版方,计划从即将出版的书籍封面和后续版本中移除“雨果奖获奖者”字样。

事件影响与展望
作者强调,最应关注的是那些本应获得提名却遭不公对待的作者,以及受此事件牵连的中国科幻社群。作者希望奖项机制能进行彻底改革,以杜绝此类事件重演,否则将对雨果奖的未来深表失望。报告同时呼吁加强对被剔除作品的翻译关注,并提及了相关分析文章及被排除的优秀作品范例。

关键细节

  • 事件主因:西方委员会成员的自我审查与越权操纵,而非中国外部施压。
  • 涉及作品:包括陆斑《崛起》(Upstart)、杨婉晴《蜂鸟歇在金银花上》(Hummingbird, Resting on Honeysuckles)等中译英作品。
  • 权威分析:推荐参考Abigail Nussbaum的详细评述及相关社群分析文章。
36. FTC Obtains $195M Judgment and Ban on Simple Health for Sham Insurance Offering (www.ftc.gov)

FTC对Simple Health公司虚假医疗保险案获1.95亿美元判决及禁令

核心判决

美国联邦贸易委员会(FTC)在佛罗里达州南区联邦法院成功获得对Simple Health Plans LLC及其首席执行官Steven J. Dorfman的1.95亿美元判决。法院还裁定永久禁止Simple Health、五家关联实体及Dorfman从事电话营销及任何医疗保健产品的营销、推广、销售或提供。

违法行为

  • 欺诈性质:Simple Health通过电话营销欺骗消费者,使其误以为购买的是全面医疗保险(覆盖既往病症、处方药、住院、急诊等),实则提供的是医疗折扣计划或极其有限的福利计划
  • 消费者损失:多数消费者每月支付高达500美元,却未获得承诺的保障,导致面临数千美元未承保医疗账单,甚至无法获得必要医疗服务,实质上处于无保险状态。

法律依据与处罚

  • 违反法律:法院认定被告违反了《FTC法案》和FTC电话销售规则。
  • 资产处置:自2018年11月冻结的所有资产将被清算,所得款项移交FTC用于消费者退款。
  • 禁止行为:禁止在销售任何商品或服务时进行虚假陈述;禁止收取已售医疗产品的款项;要求销毁收集的客户个人信息。

其他被告处理

  • 关联实体:Health Benefits One LLC等五家关联公司均受禁令约束。
  • 合规官和解:首席合规官Candida Girouard于2021年2月与FTC达成和解,被禁止营销或销售任何医疗相关产品,并禁止违反电话销售规则。

案件背景

  • FTC于2018年提起诉讼。
  • 诉讼由FTC中西部地区办公室的Elizabeth Scott等四名律师负责处理。
37. Union, intersection, difference, and more are coming to JavaScript Sets (www.sonarsource.com)

JavaScript Set 新增集合操作方法

JavaScript Set 现在包含了 unionintersectiondifference 等原生集合操作方法,这些已成为语言规范的一部分。此前,这些操作需要手动实现或借助第三方库。

主要新增方法

新增的七个方法均作用于任何可迭代对象,并返回新的 Set 对象:

  • union(other):返回包含两个集合所有元素的新集合(并集)。
  • intersection(other):返回包含两个集合共有元素的新集合(交集)。
  • difference(other):返回存在于第一个集合但不在第二个集合中的元素(差集)。
  • symmetricDifference(other):返回存在于任一集合但不同时存在于两个集合中的元素(对称差集)。
  • isSubsetOf(other):检查当前集合是否是另一集合的子集。
  • isSupersetOf(other):检查当前集合是否是另一集合的超集。
  • isDisjointFrom(other):检查两个集合是否不相交(无共同元素)。

示例说明

  • 并集frontEndLanguages.union(backEndLanguages) 返回包含所有前端和后端语言的集合。
  • 交集frontEndLanguages.intersection(backEndLanguages) 返回两个集合共有的语言(如 "JavaScript")。
  • 差集frontEndLanguages.difference(backEndLanguages) 返回仅在前端语言集合中的元素。
  • 对称差集frontEndLanguages.symmetricDifference(backEndLanguages) 返回仅在一个集合中出现的元素。

优势与支持

这些方法使常见的数据操作模式更易读、更不易出错,取代了基于循环或数组方法的自定义实现。截至目前:

  • Safari 17+Chrome 122+ 已支持这些方法。
  • EdgeFirefox 预计很快跟进。
  • 对于旧引擎,可使用 core-jses-shims 项目中的 polyfill。

这些新增方法完善了 JavaScript Set 的功能,减少了开发者对自定义实现或外部库的依赖,使得集合操作更标准化、高效。

40. Sent – Simple plaintext presentation tool (tools.suckless.org)

Sent:简洁的纯文本演示工具

概述

Sent 是一个极其简单的演示工具,无需 LaTeX、LibreOffice 或其他复杂文件格式。它使用纯文本文件描述幻灯片,并支持图片显示。每个段落代表演示中的一张幻灯片,尤其适合使用高桥流方法快速准备闪电演讲。

核心特点

  • 纯文本驱动:演示文稿仅需一个简单的文本文件,每个段落对应一张幻灯片。
  • 内容自动缩放:幻灯片内容自动适应屏幕大小,无需手动调整对齐或布局。
  • 高对比度显示:在简单的 X11 窗口中以黑底白字显示,确保在强光下仍保持可读性。
  • 支持图片:通过 @ 前缀指定图片文件(例如 @image.ff),但图片幻灯片不能同时显示文本。
  • UTF-8 支持:可显示多种语言字符。
  • 轻量高效:核心代码约 1000 行 C 语言编写,运行快速。

使用方法

  1. 编辑配置:根据需要修改 config.h 文件,然后重新编译。

  2. 运行演示

    sent [FILE]
    
    • 若省略 FILE 或使用 -,则从标准输入读取内容。
    • 使用箭头键导航幻灯片,按 q 退出。
  3. 文件格式示例

    # 注释行(以 # 开头)不会显示在幻灯片中
    \@ 这是第一张幻灯片
    
    @image.ff  # 显示图片的幻灯片
    
    关键点一
    关键点二
    
    • 转义字符:行首的 \#\@ 可作为普通文本显示。

依赖项

  • 编译依赖:Xlib 和 Xft 库。
  • 图片支持:需安装 farbfeld 工具(旧版 sent-0.2 仅支持 PNG,但可能缺少后续更新和修复)。

有意排除的功能(“非特性”)

  • 无字体样式(粗体、斜体、下划线)。
  • 无复杂布局选项(不同字体大小、颜色等)。
  • 无动画效果。
  • 无自动段落布局支持。
  • 无内置导出功能(如需导出,可使用 xdotool 配合截图脚本实现)。
  • 故意设计:若幻灯片内容过长或字符过多,会产生渲染异常,以避免制作冗长、低质量的演示。

开发与获取

  • 源代码仓库:可通过 git clone https://git.suckless.org/sent 获取。
  • 下载版本:sent-1 (20170904)。
  • 演示示例:编译后运行 make && ./sent example 查看内置示例。