2024-11-13

34 篇热帖

1. No GPS required: our app can now locate underground trains (blog.transitapp.com)

无需GPS:我们的应用现已能定位地下列车

在地铁、城轨或地铁的蜿蜒隧道中,通常缺乏可靠的蜂窝网络、WiFi或GPS信号。这意味着在地下时,你无法有效追踪站点和预计到达时间。

我们没有巨额资金研发穿透地面的GPS卫星,但通过四位工程师的努力,现在我们可以通过手机的振动特征来预测你在地铁隧道中的位置。

工作原理简述:

  1. 在应用中启动GO行程。
  2. 应用将在地图上显示预测位置、站点倒计时并更新预计到达时间,无需GPS坐标。

技术实现步骤:

第一步:基本运动分类 进入无GPS信号的隧道后,首先需确定手机是否在移动列车上。通过分析手机加速度计数据,发现移动中列车的振动频率约为5Hz,而步行时约为2Hz。但需区分随机噪声和谐波频率,因此需要机器学习模型进行分类。

第二步:收集真实数据 工程师在多个城市收集数百次行程的振动数据,并手动标注每一步状态(如开始步行、下楼梯、等待、列车移动/停止等)。他们重点在纽约地铁系统收集数据,覆盖所有线路,以构建通用模型。

第三步:训练运动分类器 使用收集的数据训练机器学习模型,以区分“移动中的列车”与其他状态(如停止、步行、扶梯等。模型通过比对预测结果与人工标注,不断优化,最终能准确判断手机是否在移动列车上。

第四步:位置预测 训练名为“The Mixer”的模型,综合以下因素预测用户位置:

  • 运动状态分类结果
  • 用户最后已知位置
  • 位置更新的时间远近
  • 列车时刻表

该模型能正确预测位置的概率达90%。当列车在地面时,可利用GPS或蓝牙/WiFi信号校准地下位置预测。

优势:

  • 离线工作:所有模型已压缩为小文件,完全在手机端运行,无需向服务器发送数据。
  • 隐私保护:不追踪、不使用Cookie,振动数据完全私有。
  • 实用性强:初始测试中已帮助识别约40万次行程中的150万个地下站点。GO导航功能已在全球600多个城市用于地上导航,现在地下乘客也能在信号不佳区域依赖它。

使用方式: 在地下列车上打开Transit应用,启动GO行程,即可查看站点倒计时和实时位置预测。

3. M4 Mac mini's efficiency (www.jeffgeerling.com)

M4 Mac mini 效率总结

M4 Mac mini 在效率测试中表现出色,显著超越预期。作者预计 M4 会比 M1/M2 系列更高效,但实际测试显示其效率提升了 32%,远高于 Arm 系统通常的年度 2-5% 增幅。这使其成为测试过的最高效 CPU。

关键性能数据

  • 基准测试:在 HPL 基准中,M4 mini 达到 6.74 Gflops/W。
  • 对比结果:M4 mini 可实现 283 Gflops 功耗 42W,而 M1 Max Mac Studio 为 264 Gflops 功耗 66W(即 4.00 Gflops/W)。
  • 空闲功耗:总系统空闲功耗仅 3-4W,与树莓派相当,远低于通常 10 GbE 控制器单独消耗的 4-6W。

系统配置与优势

  • 测试系统配置包括 10 Gigabit Ethernet 和 32 GB RAM,但功耗仍保持低位。
  • 高效设计允许在 1.25U 机架空间内运行三台 Mac mini,空闲功耗约 10W,提供近 1 teraflop CPU 性能,并集成快速 GPU/NPU、10 GbE 和高速 Thunderbolt IO。
  • 效率优势扩展至各类任务,尽管芯片并非所有场景最快,但整体能效比突出。

后续测试与说明

  • 作者已更新测试结果(2024-11-20),包括重新运行基准和 LLM 性能测试,效率进一步提升,详细数据可在 sbc-reviews M4 Mac mini issue 和 GitHub top500 基准结果中查看。
  • 目前尚未测试 M4 Pro Mac mini,因此其效率表现未知。

注意事项

  • 文章中提及电源按钮位于底部的设计缺陷,但未影响效率评估。
4. $8k Suzuki from India received a 5-star crash test rating (jalopnik.com)

文章报道了印度铃木子公司Maruti Suzuki旗下经济型轿车Suzuki Dzire在Global NCAP碰撞测试中取得优异成绩。该车型起售价约合8,000美元,配备1.2升发动机,却在成人乘员安全方面获得五星评级,在儿童乘员安全方面获得四星评级。尽管价格低廉,Dzire标配六个安全气囊、电子稳定程序(ESP)、坡道辅助及行人保护功能。

与上一代Dzire相比,新车型安全性能大幅提升。前代车型在Global NCAP测试中仅获两星评级,仅配备两个前部安全气囊,车身结构和脚部空间区域被评为不稳定,在侧面碰撞测试中对假人胸部保护较弱,且未进行杆撞测试。

文章指出,美国市场最便宜的日产Versa起售价已达18,330美元,是Dzire基础价格的两倍多。即使Dzire顶配车型也仅约12,000美元。Maruti Suzuki主动提交车辆供Global NCAP进行测试,表现出对产品安全性的信心。

全球NCAP所属的Towards Zero基金会执行主席David Ward表示,希望Maruti Suzuki能将同等安全水平应用于其全系车型,若能实现,将对印度消费者的车辆安全产生变革性影响。

6. Visualizing 13M Bluesky users (joelgustafson.com)

这篇文章记录了作者Joel Gustafson可视化Bluesky社交平台1300万用户关系图的完整过程与技术探索。

数据获取与处理 作者通过Bluesky基于AT协议的WebSocket实时数据流获取全平台的关注与取关事件,并存储于本地SQLite数据库。截至2024年11月,数据库包含约5亿条记录,数据量约30GB。所有处理均在家用服务器上完成。

大规模图布局挑战 直接对1300万节点和5亿边进行力导向布局(Force-Directed Layout)存在巨大计算复杂度。作者开发了名为Andromeda的多线程图布局引擎,使用Barnes-Hut算法将计算复杂度从O(n²)优化到O(n log n),以实现近似计算。然而,传统力导向布局结果呈现“团块状”,难以展现局部社区结构。

引入UMAP降维算法 为改善效果,作者转向机器学习领域的降维技术。首先使用GGVec算法为每个用户生成32维嵌入向量,再应用UMAP算法进行二维投影。UMAP在保留大规模结构上表现更好,但存在节点重叠问题。

定制化优化与可视化 作者将UMAP的输出作为Andromeda引擎的输入,通过短暂的力导向模拟“平滑”重叠节点,解决了点覆盖问题。在着色方面,作者采用了基于嵌入向量的k-means聚类方案,结合对数尺度下的粉丝数调整亮度,使大账号更明亮突出。

最终成果与展望 作者成功生成了包含770万过滤后节点的交互式社交网络地图,可通过网页(需支持WebGPU的Chrome浏览器)探索。可视化清晰展现了不同社区集群(如冰岛用户群、媒体评论账号集群)以及机器人网络。作者计划未来增加显示所视区域用户帖子的时间线功能,旨在将其发展为一种新的社交探索工具。

7. Waymo One is now open to all in Los Angeles (waymo.com)

摘要:
Waymo One 自即日起在洛杉矶向所有人开放全自动驾驶出行服务,提供 24/7 全天候运营。服务覆盖洛杉矶县近 80 平方英里,包括圣莫尼卡、好莱坞大道和南加州大学等区域。自今年初开始商业运营以来,Waymo 在洛杉矶受到欢迎,约有 30 万人加入等待名单,并已完成数十万次付费出行,平均评分 4.7/5 星。调查显示,98% 的用户对服务满意,96% 认为有用。

Waymo 联合首席执行官 Tekedra Mawakana 表示,现在是欢迎所有洛杉矶人体验自动驾驶的激动人心时刻。用户可以在交通中节省时间,用于工作、娱乐或放松,将 Waymo 融入日常生活。Waymo 与当地社区合作,例如与致力于帮助洛杉矶单身母亲的非营利组织“她希望”合作,以促进道路安全和出行便利。此外,Waymo 还是洛杉矶汽车展的官方出行合作伙伴。

Waymo 计划未来扩大服务区域,并鼓励人们下载 Waymo One 应用以体验全自动驾驶的好处。

8. Show HN: Stretch My Time Off – An Algorithm to Optimize Your Vacation Days (stretchmytimeoff.com)

项目概述:Stretch My Time Off

项目名称:Stretch My Time Off(延长我的假期)
展示平台:Hacker News(HN)
核心目的:通过算法优化用户的假期天数,帮助最大化假期的利用效率。

主要功能与结构

  • 用户输入:工具要求用户提供以下信息:
    • 居住国家:通过下拉菜单选择(内容中列出了全球多个国家/地区,如阿富汗、阿尔巴尼亚等,但输入字段为空)。
    • 假期天数:用户可输入从1月1日到年底的可用假期天数(初始显示为0天)。
    • 年份:可选择或重置到当前年份(例如,通过“Reset to current year”按钮)。
  • 优化算法:基于输入数据,算法计算并推荐最优的假期安排方案,可能涉及节假日、周末等因素的整合,以延长有效假期时间。
  • 界面元素:网页表单形式,包含国家选择器、天数输入框和年份控制选项,设计简洁以便用户操作。

关键细节

  • 算法驱动:项目重点是利用计算逻辑,自动化生成假期优化建议,减少手动规划的麻烦。
  • 灵活性:支持全球多个国家/地区的选择,适应不同用户的地点和假期制度。
  • 目标用户:适用于有固定假期天数并希望最大化休闲或旅行时间的个人,例如职场人士或旅行爱好者。
  • 状态:从内容片段看,工具可能处于演示或早期开发阶段,用户输入字段未完全填充,但核心功能已明确。

总结

该项目通过一个用户友好的网页界面,结合算法优化技术,帮助用户智能规划假期,提升时间利用效率。其结构包括国家选择、天数输入和年份设置,并基于这些数据生成个性化建议。

9. Show HN: Bluetooth USB Peripheral Relay – Bridge Bluetooth Devices to USB (github.com)

蓝牙USB外设中继器项目总结

项目概述

这是一个基于树莓派Zero(或其他支持USB OTG的单板计算机)的蓝牙USB HID中继器项目,旨在解决蓝牙外设无法在禁用蓝牙的电脑上使用的问题。它将树莓派配置为一个复合USB HID设备,充当蓝牙键鼠与主机电脑之间的桥梁。

核心功能与架构

  • 蓝牙连接:通过蓝牙连接键盘和鼠标。
  • USB HID模拟:向主机电脑呈现为一个复合USB HID设备(键盘和鼠标)。
  • 广泛兼容性:支持Windows、Mac和Linux系统。
  • 自动启动:开机后中继服务自动运行。
  • OTG配置:将树莓派配置为USB OTG设备。
  • 配对辅助:提供脚本帮助配对蓝牙设备。

工作流程:蓝牙键鼠 → 树莓派(HID中继) → USB → 主机电脑。

技术栈与组件

  • 硬件:树莓派Zero W 2(或其他支持USB OTG的单板计算机)。
  • 系统:DietPi或其他轻量级Linux发行版。
  • 软件
    • Bash脚本:用于系统设置和配置。
    • Go程序:处理蓝牙输入并转发为USB HID输出。
    • Systemd服务:实现服务的开机自启。

环境要求

  • 硬件:需具备USB OTG或主机能力的设备。
  • 软件前提
    • Go 1.21或更高版本。
    • Task runner(用于构建和任务管理)。

设置与使用

  1. 克隆仓库并运行设置脚本以配置USB主机、蓝牙和HID gadget。
  2. 配对蓝牙设备(手动或使用提供的脚本)。
  3. 构建并安装服务,随后连接树莓派至目标电脑即可使用。

注意:设置过程会修改系统配置,若USB gadget设置出错可能需要重刷系统。操作前建议备份SD卡。

任务管理(Task runner)

项目使用Task runner管理常用操作,包括:

  • 通用任务:构建、清理、测试、运行、诊断。
  • 服务管理:安装、查看状态、查看日志、重启、启动、停止、卸载服务。
  • 诊断工具
    • I/O Doctor:检查蓝牙设备连接及输入事件。
    • 输入模拟:无需蓝牙设备即可测试USB HID输出(如模拟鼠标移动、键盘输入)。

卸载与恢复

提供脚本用于卸载服务、移除HID gadget并恢复USB主机配置。

开发与学习价值

该项目可作为以下领域的学习基础:

  • Linux系统内部机制。
  • 创建USB gadget。
  • 使用Go进行硬件交互。
  • 配置Systemd服务。
  • 将单板计算机设置为USB OTG设备。
  • 蓝牙设备配对与管理。

兼容性与支持

  • 已在DietPi 64位系统、Windows 10和MacOS客户端上测试,无明显延迟。
  • 项目在GitHub上开放,欢迎报告问题或提出建议。

许可证

该项目采用MIT许可证。

10. Show HN: Jelly – A simpler shared inbox for small teams (letsjelly.com)

Jelly:为小团队设计的简洁共享收件箱

Jelly 是一款旨在简化小团队邮箱管理的共享收件箱工具。它将团队邮件集中到一个地方进行处理,确保所有成员信息同步,避免沟通遗漏。

核心功能:

  • 协作分配: 可以清晰指派团队成员负责处理特定邮件,明确责任。
  • 内部评论: 支持在邮件内直接通过@提及同事进行内部讨论,无需转发,保持上下文。
  • 自动化规则: 可设置规则自动对收到的邮件进行标签、分配或归档等操作。
  • 快速回复: 提供“已保存回复”功能,实现一键快速回复重复性问题。
  • 免抄送跟踪: 团队成员可以自行关注任何重要邮件,无需依赖抄送(Cc)。
  • 操作追踪: 能清晰记录团队成员在共享地址下执行的具体操作(如回复)。

主要特点与集成:

  • 优先支持 Gmail。
  • 提供丰富的功能,如多地址管理、个性化发件名称、搜索过滤、团队活动日志、定时发送、彩色标签、延迟处理、签名档、批量归档、API 接入等。
  • 支持 Slack 和 Discord 集成,提供 Webhook。
  • 同时具备移动端友好、暗色模式、撤销发送、双因素认证等现代邮箱功能。

设计理念与定价:

  • 强调简洁: Jelly 刻意避免了复杂客服系统中常见的冗余功能(如AI聊天机器人、复杂工作流),只专注于高效协同的核心需求。
  • 统一定价: 采用每月 29 美元的固定价格,适用于整个团队,没有按用户数收费的昂贵费用,对小团队预算友好。

用户反馈: 来自不同规模(2-8人)的多家小团队用户(如设计团队、教会、项目小组等)给予积极评价。主要赞誉集中在:

  • 显著简化了共享邮箱的管理工作,提升了效率(有用户称减少了约40%的工作量)。
  • 上手快速,团队易于接受。
  • 界面设计受到喜爱。
  • 集中管理有助于防止邮件处理遗漏,尤其在有人缺席或出现紧急情况时。
11. Unusual Raku Features (buttondown.com)

Raku 编程语言的独特特性总结

Raku 被描述为一个“语言特性的实验室”,其设计旨在探索不同编程范式。这导致了该语言包含大量实验性功能,以下介绍其中五个可能影响其他语言的特性。

1. Junctions(交集)

Junctions 是“可能值的叠加态”。对 Junction 应用操作时,操作会作用于其中所有值。Junction 主要用于表示布尔公式,无法解构,需先转换为布尔值使用。例如,列表的 .all 方法会返回一个 Junction,便于组合条件。Junction 也优雅地支持了量词表示。

2. Whatevers(Whatever 符号)

* 符号在 Raku 中有多重用途。在范围或序列中表示“无界”。其主要应用是“Whatever-priming”,即包含 * 的表达式会被提升为匿名函数(WhateverCode)。当多个 * 出现时,它们成为独立的位置变量。此特性允许将函数传递给许多内置方法(如索引器 []),从而简化实现(例如环形缓冲区)。

3. 正则表达式

Raku 正则表达式突破了 POSIX 和 PCRE 标准,引入了重大改进。可组合性是其核心:通过 <regex> 语法嵌入其他正则表达式,避免了“泄漏”问题。这支持了内置的语法解析。此外,Raku 正则还增加了多项生活质量改进,如值分隔符(%)、更清晰的前瞻和非捕获组、并集与交集操作、反向回溯控制,以及默认忽略空白字符。

4. Hyperoperators(超运算符)

超运算符是 Raku 的元运算符,可对列表进行元素级操作。基础形式如 >>.method 类似于 map,但可递归处理子列表。更通用的二元超运算符 l1 <<op>> l2 会按元素应用操作,并循环较短的列表直至较长列表结束。变体 <<op<<>>op>> 控制循环至左/右操作数耗尽。超运算符支持并行执行,并可与 Whatever 结合使用。

5. Pair Syntax(键值对语法)

Raku 的哈希表由 key => value 对构成。冒号语法提供了定义键值对的简洁方式。关键糖包括 :key:!key,分别映射为 key => Truekey => False。这在方法参数中特别有用,允许通过标志(flags)进行简洁配置,且标志可在方法调用后指定或组合。

其他实验性领域

  • Slangs:允许修改 Raku 语法,例如更改循环语法或添加新语言结构。
  • RakuAST:允许在 Raku 内部解析自身代码为 AST,并支持将 AST 反解析为不同语言。

生态与社区

  • Rakudo Star:官方发行版,捆绑了推荐的第三方模块,平衡了标准库维护与生态系统依赖问题。
  • 社区资源:推荐关注 Elizabeth Mattijsen 的内部技术文章、Codesections 的博客以及年度更新的 Raku Advent Calendar。
13. 3600 MHz Raspberry Pi 5 with Liquid Nitrogen (skatterbencher.com)

本文记录了将树莓派5超频至3.6 GHz的多种尝试,旨在冲击“世界最快树莓派5”头衔,但最终未能突破该频率上限。以下为实验的关键步骤与发现:

1. 系统与软件优化

  • 使用官方树莓派操作系统替代Ubuntu,并应用了NUMA内存控制器补丁,显著提升了基准测试性能。

2. 液氮冷却尝试

  • 采用液氮散热,将温度降至-40°C甚至-90°C,但树莓派5在3700 MHz即死锁。超频在3600 MHz稳定,但温度与电压提升均无法突破该限制,表明可能存在硬件固有的频率墙。

3. 电源电路增强

  • 树莓派5的PMIC电源管理芯片存在电压限制和过载保护问题(如高负载时自动关机)。
  • 通过ElmorLabs AMPLE-X1电源卡,移除原机PMIC与SoC的连接,外部供电最高达25.5W,并将电压提升至1.55V,但仍无法提升频率上限。

4. 晶振替换

  • 将原54 MHz晶振替换为可调外部晶振,尝试调整PLL比率。当晶振频率降至46 MHz时,系统可配置显示4 GHz,但实际频率约为3407 MHz。
  • 晶振频率调整同样受阻,验证频率墙约为3.4-3.6 GHz。

结论 尽管综合了液氮冷却、电源强化、晶振更换等所有可行手段,树莓派5的最高可实现频率仍停留在3600 MHz。实验揭示其频率限制可能源于硬件设计(如SoC内部PLL或特定IP模块),而非温度、电压或时钟源问题。此次超频探索虽未打破记录,但为后续硬件改造积累了重要经验。

14. Russian family lived alone in the Siberian wilderness for 40 years (2013) (www.smithsonianmag.com)

俄罗斯利亚科夫家族在西伯利亚荒野独居40年始末

背景与发现

  • 宗教迫害与逃亡:利亚科夫家族是俄罗斯东正教旧礼仪派信徒,因长期受迫害(尤其在苏联时期),于1936年逃离世俗社会,深入西伯利亚针叶林(泰加林)荒野生活。
  • 意外发现:1978年,苏联地质学家的直升机在阿巴坎河流域偏远地区发现一处疑似人类居住地。经过调查,他们找到了老卡尔普·利亚科夫及其女儿阿加菲亚,此时家族已完全与世隔绝超过40年。

隔绝生活

  • 环境与生存:家族居住在极端严酷的西伯利亚荒野,依赖自然资源为生。他们自建简陋小屋,用桦树皮制作容器,种植马铃薯等有限作物,并通过设陷阱狩猎。
  • 饮食与匮乏:食物极度单调且经常短缺,曾多次经历饥荒。1961年母亲阿库莉娜因饥饿去世。
  • 语言与文化:子女们在与世隔绝中长大,语言逐渐变化,对外部世界认知有限,仅通过父母讲述获得模糊概念。主要娱乐是讲述梦境。

家族成员与性格

  • 老卡尔普:家族领袖,坚定维护旧信仰,抵制现代事物,但对卫星等新奇发明感到好奇。
  • 萨温与娜塔莉亚:长子和长女,较为保守,萨温因肾功能衰竭于1981年去世。
  • 德米特里:次子,能力强,善于狩猎和手工,对现代技术(如锯木机)表现出兴趣,但因肺炎于1981年去世。
  • 阿加菲亚:幼女,最年幼,性格坚韧、开朗且聪明,适应力较强。

与外界的互动

  • 初步接触:地质学家们最初赠予盐,家族逐渐接受毛毯、谷物等物品,但仍抵制火柴等被视为“罪恶”的现代用品。
  • 文化冲击:阿加菲亚曾受邀前往苏联各地旅行,但对都市生活(如汽车污染)感到恐惧,最终返回荒野。
  • 健康挑战:家族成员在接触外界后,萨温、娜塔莉亚和德米特里相继去世,但死因主要与长期饮食和疾病有关,而非外界病菌。

现状与延续

  • 唯一幸存者:父亲卡尔普于1988年去世后,阿加菲亚成为家族唯一幸存者,继续独自生活在西伯利亚荒野。
  • 现代援助:近年来,随着年龄增长(她已80多岁),阿加菲亚接受了外界更多帮助,包括俄罗斯富翁资助建造新木屋、获得卫星电话,以及志愿者定期运送物资。
  • 坚守家园:尽管健康状况下降,阿加菲亚坚持留在荒野,视其为真正家园。
15. Abusing Ubuntu 24.04 features for root privilege escalation (snyk.io)
16. Rim/Blackberry tales – reply all (awadwatt.com)

Rim/Blackberry的“回复全部”事件总结

事件概述

  • 时间:2011年11月7日。
  • 起因:Blackberry(RIM)员工Ed在Sumit B.入职第一天,发送邮件要求将Sumit B.添加到多个分发列表(DL),但错误地将邮件发送给了整个分发列表的成员,而非列表所有者。
  • 涉及范围:邮件发送至SAP CAB、SAP Team、SAP Functional Team DL和OCS2007USERSDL等分发列表,覆盖公司数千名员工(当时Blackberry有19,000名员工)。
  • 事件发展:员工Syed首先回复全部指出错误,随后其他员工通过回复全部或尝试使用BCC(密送)来控制邮件,但引发更多连锁反应,导致邮箱持续收到回复邮件。

关键反应和过程

  • 员工反应
    • 尝试停止:如Bryan和Carl尝试使用BCC移除分发列表,FrancesL、MonicaC、NickS等呼吁停止回复全部。
    • 幽默或讽刺:一些员工如VesaK、YanZ以玩笑方式回复,AsifN自称“正确的Asif”,CraigG自嘲。
    • 批评和不满:RandyB愤怒要求停止,DanielS称“白痴”,JustinM表示“史诗失败”。
    • 高层介入:CEO Mike Lazaridis在4:40 PM发送邮件要求从分发列表移除。
  • 时间线:事件从下午4:18开始,持续约25分钟,IT部门在后续数小时内干预。

IT干预和公司文化

  • IT响应:IT部门在事件早期注意到流量激增,通过Exchange规则删除包含“Sumit B.”的邮件,但由于Blackberry推送机制,部分邮件已发送至设备无法撤回。
  • 公司文化背景
    • 当时Blackberry文化宽松、非官僚,强调“不惜一切代价”创新。
    • 硬件获取容易(如通过帮助台直接获取设备),分发列表管理松散,允许随意添加成员。
    • 这种环境导致电子邮件控制松懈,加剧了事件的扩散。

后续影响和轶事

  • Sumit B.的成名:事件使Sumit B.在公司内广为人知,他后来从LinkedIn上删除了在Blackberry的工作经历。
  • Ed的职业发展:Ed获得MBA,在华尔街工作后成为教师。
  • 文化反响:附近咖啡馆Mambella’s次日在外标牌上幽默提及事件,并为Sumit B.提供免费餐食。
  • 整体结局:事件成为公司历史趣闻,大多数参与者后来被裁员,但故事仍被讲述。

核心启示

  • 事件突显了大型组织中“回复全部”邮件的常见错误,即使是在移动邮件发明者Blackberry内部。
  • 反映了人类错误、公司规模和技术限制(如Blackberry推送机制无法撤回邮件)的相互作用。
  • 作为Blackberry企业文化的一个缩影,展示了其宽松环境下的混乱和幽默。
17. MIT engineers make converting CO2 into useful products more practical (news.mit.edu)

背景与问题

全球致力于减少温室气体排放,但捕获二氧化碳(CO2)并转化为有用产品(如运输燃料、化学原料或建筑材料)的现有方法在经济上缺乏可行性。MIT工程师团队的研究旨在提高这些电化学系统的效率和经济性。

研究概述

  • 团队:MIT博士生Simon Rufer、机械工程教授Kripa Varanasi等人,成果发表于《自然通讯》。
  • 焦点:电化学转化CO2为乙烯(一种广泛用于塑料和燃料的化学品,目前源自石油),同时该方法也适用于其他高价值产品如甲烷、甲醇、一氧化碳。
  • 目标:使转化过程成本低于或接近乙烯当前市场价(约每吨1000美元)。

技术挑战

  • 气体扩散电极需平衡两种特性:
    • 导电性:减少电阻热损失,提高效率。
    • 疏水性:防止水基电解液泄漏,确保反应正常进行。
  • 传统材料中,改善导电性会降低疏水性,反之亦然,形成权衡。

创新解决方案

  • 材料选择:使用PTFE(特氟龙)作为基底,因其疏水性优异。
  • 设计改进:在PTFE薄片中编织导电铜线,以增强导电性同时保持疏水性。
  • 原理:铜线作为电子“高速公路”,弥补PTFE导电性不足,将电极分为更小的子部分,模拟小电极的高效性能。

规模扩大与优化

  • 实验验证:团队制作了面积比传统样本大10倍的电极,并证明其有效。
  • 关键发现:电极尺寸增大时,导电性急剧下降,导致能源消耗增加和副产品增多。
  • 模型开发:通过模型计算导电线的最佳间距,优化电压分布和产品生成,确保大规模应用时效率不减。

耐久性与可扩展性

  • 稳定性测试:电极连续运行75小时,性能保持稳定。
  • 制造集成:编织铜线的工艺可轻松融入现有制造流程,包括大规模滚对滚生产。
  • 通用性:该方法不依赖特定催化剂或材料,适用于任何气体扩散电极。

重要性与应用前景

  • 解决了CO2转化中的关键瓶颈,为大规模处理CO2(每年需处理数千兆吨)提供可行方案。
  • 研究强调从可扩展性出发,识别并突破技术限制,推动环保技术的实际应用。

支持信息

  • 研究由Shell通过MIT能源倡议资助,部分工作使用MIT.nano设施完成。
18. From BSP to ESP – How S3ctor Abused Quake Editors to Redefine the Morrowind Mod (openmw.org)

从BSP到ESP:S3ctor如何利用Quake编辑器重新定义Morrowind模组开发体验

这篇文章介绍了OpenMW核心开发者S3ctor,如何将经典Quake引擎的“刷子式”关卡编辑器工作流(以Trenchbroom为代表)引入《晨风》(Morrowind)模组开发,从而创造了一套全新的、更高效直观的内容创建流程。

核心思想与技术背景

  • 两种工作流对比
    • 现代网格工作流:类似“建房子”,艺术家使用Blender等工具独立建模,关卡设计师再将模型组装进引擎。流程复杂,个人开发者难以独立完成高品质内容。
    • 经典刷子工作流:源于Quake等早期引擎,关卡设计师直接在编辑器中使用基础几何体(凸多面体,称为“刷子”)构建世界。这种方式融合了设计与建模,允许快速迭代和定制化,但要求所有形状必须是凸的。
  • S3ctor的动机:自幼痴迷idTech引擎技术,并在OpenMW开发中遇到了传统工作流的瓶颈。他意识到,刷子工作流能大幅降低关卡设计门槛,提升迭代速度。

技术实现与开发过程

  1. 从创意到验证:S3ctor与同伴Epoch最初尝试将《晨风》素材移植至Quake,后反向思考,尝试用Trenchbroom为《晨风》创建地图。他们通过导出.obj文件再转换为NIF格式的方法进行了初步验证,并成功解决了两个引擎间的单位比例问题(通过比较玩家边界框)。
  2. 开发编译器(Morrobroom):核心创新在于开发了一个“编译器”。不同于Quake将.map文件编译成BSP文件,该工具将Trenchbroom的.map文件编译成OpenMW能识别的.ESP插件文件。
    • .map文件以文本方式存储每个刷子(由三个点定义的平面)的信息。
    • 编译器(参考了Qodot/func_godot项目并用Rust重写)解析这些平面数据,计算顶点并生成网格,同时处理纹理映射、实体(如灯光、NPC)放置等。
    • 编译器支持缩放、顶点颜色透明度测试、碰撞体配置等选项。
  3. 成果与应用
    • 利用此工作流,S3ctor和Epoch能够快速创建大量风格独特的地图,甚至实现了程序化生成2500个地图区块。
    • 他们尝试移植开源项目LibreQuake的素材(如武器),验证了技术的通用性。
    • 成功复现了Quake的天幕效果等经典视觉元素。

意义与展望

  • 对模组开发者的价值:此工作流极大地简化了关卡设计过程,使个人或小团队能够更自由、更快速地实现创意,无需依赖复杂的外部建模软件。
  • 对OpenCS编辑器的启示:Trenchbroom与OpenCS在技术栈(Qt, OpenGL)上有相似之处,其一些优秀的交互设计(如基于Shift键的轴向移动)可为OpenCS未来的改进提供参考。
  • 更广阔的适用性:类似的技术整合方案(如Unity的Tremble, Unreal的HammUEr)表明,Quake式的工作流可以应用于任何现代3D游戏引擎,为那些觉得Bluneer等工具过于复杂的开发者提供了新选择。

总而言之,S3ctor的工作证明了将经典游戏开发中经过验证的高效范式与现代开源游戏引擎相结合,能够创造突破性的工具,重新定义特定游戏社区的内容创作体验。

19. Qwen2.5-Coder-32B is an LLM that can code well that runs on my Mac (simonwillison.net)

文章总结:Qwen2.5-Coder-32B 编程大模型本地体验

模型概述 阿里巴巴通义千问团队于2024年11月12日发布开源(Apache 2.0许可)的Qwen2.5-Coder系列大语言模型。其中,Qwen2.5-Coder-32B-Instruct 被官方宣称已成为当前最先进的开源编程模型,在编码能力上可媲美GPT-4o。该模型的32B参数版本相对轻量,可在64GB内存的MacBook Pro M2上运行。

性能基准测试

  • 官方基准:Qwen发布的评分显示,该模型在多个代码相关基准测试中表现优异,与GPT-4o及Claude 3.5 Sonnet(2024年10月版)相当。
  • 第三方基准:Paul Gauthier的Aider代码编辑基准测试结果如下:
    • “whole edit”基准:Claude 3.5 Sonnet (84%) > Qwen2.5 Coder 32B (74%) ≈ GPT-4o (71%)。
    • “diff”基准:Qwen2.5 Coder 32B与GPT-4o打平,但略低于Claude 3.5 Haiku。 这些数据表明其在主流基准上具备与顶级商用模型竞争的实力。

作者本地运行与测试 作者尝试在Mac上本地运行该模型,测试了多种方式:

  1. GGUF格式(llm-gguf):由于未编译GPU支持,运行速度过慢。
  2. Ollama:通过 ollama pull qwen2.5-coder:32b 安装了20GB的量化模型。使用LLM工具测试了一个编写Python函数(从URL获取CSV并存入SQLite)的指令,生成的代码有效,但遇到了一个与ssl相关的bug(若允许使用requests库则可避免)。
  3. MLX框架:通过uv运行mlx_lm库,模型来自mlx-community/Qwen2.5-Coder-32B-Instruct-8bit。性能指标显示:
    • 提示词处理速度:约95.7 tokens/秒。
    • 生成速度:约10 tokens/秒。
    • 峰值内存占用:32.685 GB。 成功生成了一个可在终端中运行的曼德博罗特分形渲染函数。
  4. 创意测试:使用“Pelican on a bicycle”基准测试生成SVG,结果虽有争议,但展示了模型的基础能力。

结论与评价 作者认为,该模型尺寸适中,可在不关闭其他应用的情况下在Mac本地运行,其生成速度和质量与顶级云服务模型相比具有竞争力。鉴于作者约80%的大模型使用场景是编程辅助,此开源模型是一个具有实际意义的有用工具,标志着本地化高性能编程助手的发展。

20. Micron launches 60TB PCIe gen5 SSD with 12GB/s read speeds (www.micron.com)

美光发布60TB PCIe Gen5 SSD,读取速度达14GB/s

产品概述

美光推出6550 ION SSD,这是全球首款60TB PCIe Gen5数据中心SSD,容量高达61.44TB,专为AI数据湖、高性能计算(HPC)、大数据与分析等工作负载设计。

核心优势

  • 极致性能:顺序读取速度14.0 GB/s,写入速度7.0 GB/s(功耗仅20W),性能比竞争对手产品高250%,写入61.44TB数据仅需2.4小时,速度提升250%。
  • 高能效:功耗比竞品SSD低20%,顺序读/写带宽每瓦性能分别提升226%和338%,帮助数据中心将更多电力分配给GPU/CPU。
  • 领先密度:首款60TB E3.S外形SSD,支持1U系统实现超过1.2PB存储,空间利用率比U.2方案提高67%,减少数据中心占地面积。

技术特性

  • 搭载OCP 2.5智能管理功能,实现云级企业数据中心管理。
  • 提供端到端安全保护,包括SED、SPDM 1.2和安全加密环境(SEE)

适用场景

针对AI工作负载优化,适用于数据密集型环境,旨在提升数据中心效率与可持续性。

比较基准

对比基于三星、Solidigm和西数同类61.44TB NVMe SSD的公开数据(竞品最大功耗25W,美光为20W)。

21. 80286 ATX mainboard based on the IBM 5170 AT PC (github.com)

项目概述

该项目旨在基于IBM 5170 AT PC设计,构建一个ATX规格的80286主板和配套的ISA内存卡。项目已完成并实现全功能运行,CPU速度可达20MHz。其初衷是出于对历史计算设计的热爱,为具备足够电子组装和故障排除能力的爱好者提供体验技术的机会,亦适合学生作为教学项目。

核心技术与设计

  • 核心逻辑替代:通过逆向工程破解了IBM 5170主板上的关键PAL U87芯片逻辑,并使用CPLD(ATF1508AS)实现了复杂的8位到16位数据转换、DMA机制及系统控制逻辑。
  • 系统控制:设计了自定义状态机逻辑,取代了传统的82284和82288芯片,生成所有系统控制信号,提升了逻辑速度和效率。
  • 内存子系统:将内存解码器和最多15MB的SRAM(用于常规内存、UMB及XMS)集成到独立的ISA内存卡上。主板BIOS和Option ROM(如XT-IDE)位于主板,后期版本通过Shadow RAM技术将ROM代码复制到RAM中运行,以支持20MHz及更高频率。
  • I/O接口:主板集成双16位IDE端口、8位SCSI端口、软驱接口、16位Realtek LAN、基于RP2040的USB转串口鼠标、简化的并口、ATX电源控制等。
  • 芯片替换
    • 使用74F245和74F574替代了74LS646。
    • 设计了TI 74LS612页面寄存器的替代电路。
    • 推荐使用DS12885作为RTC/CMOS RAM芯片,并可通过ATX电源持续供电保持时间与设置。

关键性能与优化

  • 频率提升:从初期的16MHz稳定提升至20MHz,甚至能在22.4MHz下运行(REV3D版本)。这需要Shadow RAM、扩展ALE信号、CPU时钟周期控制及将总线逻辑升级为更快速的74F系列等优化。
  • 版本演进
    • REV1:初始版本,需要大量手动接线修改,推荐运行在18MHz。
    • REV3D:最终CPLD版本,集成了总线控制逻辑,减少了芯片数量,优化了时序,支持22.4MHz运行,并集成了兼容RealDOOM的EMS系统。
    • REV4:计划中的FPGA版本,旨在将全系统集成至单一FPGA芯片。

重要限制与警告

  • 仅供实验与教育:项目按GPL3许可发布,仅为个人爱好和实验目的。不保证其功能或适用于任何特定用途。
  • 使用风险自担:构建和使用此设计全部由构建者自行负责,可能出现数据丢失、系统故障。禁止用于任何可能导致损伤或伤害的场合。
  • 技术要求高:项目复杂,非新手可胜任,需要高水平的电子组装专业知识和经验。
  • 网络风险:将此系统连接至任何计算机网络,风险自负,不保证防止数据丢失或网络故障。

致谢与资源

项目感谢了IBM公司、XT-IDE Universal BIOS项目、多个论坛成员(如德国DOS Reloaded、VCFed)的讨论与技术支持。特别感谢了Johann(jonny64)在PAL逆向工程、sqpat在Shadow RAM代码和CPU芯片、LimeProgramming(Adam)在USB转串口鼠标项目等方面的关键贡献。设计参考了Intel、LG Semiconductors、Standard Microsystems Corporation、Realtek、NCR等公司的数据手册。

项目状态与建议

  • 当前状态:REV3D版本已完全功能化,可运行软件和游戏(如通过Doom8088或RealDOOM项目)。
  • 构建建议:提供了详细的元件选择(如推荐Harris 286 CPU、Trident VGA卡、特定BIOS版本)、硬件修改注意事项及SMD焊接技巧。主板上的RTL8019AS LAN芯片不推荐使用,建议使用UMC UM9007AF等独立网卡。
  • 资源:所有设计文件(原理图、CPLD项目等)及更新均在GitHub上公开,供感兴趣者研究、学习或构建。
22. Sentry just gave $750k to open source projects (blog.sentry.io)

Sentry宣布2024年向开源项目捐赠75万美元,较去年增长50%,相当于每位开发人员资助约5,813美元。作为一家“公平源”公司,Sentry依赖大量开源维护者的工作,此举旨在回报社区并推动开源可持续发展。

今年的重要进展是Sentry与其他公司共同发起了“开源承诺”倡议,呼吁企业每年至少为每位在职开发人员支付2,000美元给开源维护者,并通过年度博客透明公开,以提升行业责任感。

Sentry的主要受赠方包括:Django(3万美元)、OSI(3万美元)、Outreachy(2.5万美元)等12个知名开源项目,共计21.85万美元,占总预算的29%。剩余53.15万美元通过三个平台自动化分配:

  • thanks.dev:38.15万美元,覆盖超500个受赠方,算法分配资金。
  • GitHub Sponsors:7.5万美元,以小额月度赞助形式支持依赖项目的维护者。
  • Open Source Collective:7.5万美元,参与基于Ecosyste.ms数据的算法分配试点。

文章指出,开源资金分配面临挑战:企业难以逐一评估每位维护者的贡献。目前主要有两种解决思路:一是平台优化算法分配,二是由开源基金会牵头管理资金。PHP基金会等新兴实体已专注于资助核心维护者。

Sentry希望通过自身实践和“开源承诺”倡议,吸引更多企业参与资助开源维护者,共同解决开源生态的可持续性问题。

23. Docker Compose Isn't Enough (blog.tealok.tech)

Docker Compose 的局限性与更高抽象层的解决方案

Docker Compose 的作用与问题

Docker Compose 是一个用于定义和运行多容器 Docker 应用的工具,通过声明式配置简化了复杂应用程序的部署。然而,它本身不足以使自托管应用程序变得足够简单,以面向大众市场。Docker Compose 在以下方面存在局限性:

  • 抽象层级过低:它过于灵活和详细,操作在错误的抽象层上,导致配置冗余和资源浪费。
  • 破坏标准化:容器旨在通过标准化接口简化操作,但 Docker Compose 打破了这种标准化,重新引入了容器原本解决的问题,如配置复杂性和端口冲突。
  • 资源浪费:每个应用可能包含自己的 Web 服务器和数据库实例,导致多个冗余服务(如反向代理或数据库服务器)竞争计算资源。
  • 操作复杂性:应用需要手动配置端口映射、卷挂载、环境变量、反向代理、DNS 和 TLS 证书等,增加了管理负担。

具体问题示例

以自托管应用如 Pihole、Jitsi Meet、Authentik 等为例,Docker Compose 配置通常涉及多个容器、端口、卷和环境变量,配置复杂。关键问题包括:

  • 反向 HTTP 代理:每个应用可能包含内嵌的 Web 服务器,导致资源重复;或依赖外部代理,但需要额外配置和管理。
  • 数据库管理:数据库容器默认会删除数据,备份困难且易出错;多个应用可能运行独立的数据库实例,造成资源浪费。
  • 端口和网络:IPv4 网络下端口冲突常见,需要映射和管理,增加了复杂性;DNS 和 TLS 证书配置需要手动处理。

解决方案:更高抽象层

为解决这些问题,需要一种类似 Docker Compose 但更高抽象层级的工具,引入语义概念,如 SQL 数据库、本地缓存、持久存储、服务发现和资源管理。这能让应用程序声明需求(例如,“需要反向代理和数据库”),而不是指定容器细节。

Tealok:一个新容器运行时

Tealok 是一个正在开发的容器运行时,旨在提供标准化接口,简化应用程序部署和管理:

  • 标准化接口:应用通过配置文件(如 TOML 格式)声明需求,如反向代理、数据库或缓存,运行时自动供应这些资源。
  • 自动化管理:自动处理 TLS 证书、DNS 记录、备份和反向代理配置,减少操作负担。
  • IPv6 网络:为每个容器分配 IPv6 地址,避免端口冲突,允许使用标准端口(如 80 和 443)。
  • 资源优化:支持共享反向代理和数据库实例,减少冗余,提高资源利用率。
  • 简化自托管:目标是让自托管变得简单易用,使任何人都能拥有自己的云计算服务。

配置示例

在 Tealok 中,配置专注于语义需求而非容器细节。例如:

  • 应用声明需要 HTTPS 反向代理和 SQL 数据库,运行时负责提供相应服务。
  • 应用程序绑定标准端口,运行时自动处理网络和安全配置。

总结

Docker Compose 在部署复杂应用时提供了便利,但其低层级抽象导致配置冗余、资源浪费和操作复杂性。通过引入更高抽象层的工具(如 Tealok),应用程序可以声明需求而非实现细节,从而简化自托管、优化资源并减少管理开销。Tealok 旨在标准化容器交互,使应用程序部署更高效、更易于维护。

25. Show HN: Proxmox VE Helper Scripts: Make managing your Proxmox homelab a breeze (community-scripts.github.io)

根据提供的标题“Show HN: Proxmox VE Helper Scripts: Make managing your Proxmox homelab a breeze”,可以推断这是一篇介绍名为 Proxmox VE Helper Scripts 工具的帖子。

该工具旨在简化 Proxmox 虚拟环境(VE)在家庭实验室(homelab)中的管理。其核心价值在于通过提供辅助脚本,使管理任务变得更加轻松便捷,即实现“a breeze”的效果。

由于未提供实际内容,无法获取关于脚本的具体功能、结构或使用方式的详细信息。该帖子很可能是作者(或开发者)在 Hacker News 社区分享其项目,以获取反馈、交流或展示其工作成果。

26. Spotify's Car Thing, due for bricking, is getting an open source second life (arstechnica.com)

Spotify Car Thing 设备介绍与开源转型

Spotify Car Thing 是一款专为汽车设计的小型音乐设备,旨在为缺乏 Apple CarPlay、Android Auto 或内置 Spotify 支持的车辆提供专用屏幕。该设备售价 100 美元,配备 4 英寸触摸屏和旋钮,可安装在仪表板或 CD 插槽中。其功能仅限于播放 Spotify,且需用户为付费会员。Spotify 推出此设备的初衷是“更好地了解用户在车内听音乐的方式”,并为老旧汽车或桌面音乐控制提供升级方案。

然而,在全面发布后不到半年,Spotify 因产品需求和供应链问题宣布放弃 Car Thing。公司计划提供退款(但不保证),并预计于 2024 年 12 月将设备变砖,即禁用其功能。这一决定标志着 Spotify 硬件业务的撤退。

尽管 Spotify 放弃,但固件黑客社区对 Car Thing 表现出浓厚兴趣。YouTuber Dammit Jeff 等开发者探索了设备潜力,展示替代软件方案。他们赞赏设备的旋钮手感和顶部四个按钮(原用于收藏播放列表)的设计灵活性,认为其可用于扩展功能。值得注意的是,Car Thing 本身具有开源属性,虽未公开,但为社区二次开发提供了基础。

开源社区的介入为设备注入新生命,通过自定义固件和软件升级,将其转化为多功能工具,延续了硬件的使用寿命。这一转变突显了开源模式在应对商业产品废弃时的价值。

27. Ask HN: How to deal with a serious mental health breakdown?
28. A Mathematician in a School of Art (www.mathvalues.org)

数学家在艺术学院

人物与职位

埃德蒙·哈里斯是阿肯色大学数学科学系与艺术学院联合聘用的数学家、艺术家和教师。他的职位旨在从制度层面凸显数学与艺术的联系。在艺术方面,他探索如何以好奇心为驱动,将工艺传统与数字制造、虚拟现实、人工智能等技术结合;在数学方面,他研究艺术如何感知与批判性地思考图像、物体与体验,从而逆向探索如何通过物理经验理解数学概念。

代表性作品与项目

哈里斯的工作跨越多个领域:

  1. 出版物:与亚历克斯·贝洛斯合著了两本畅销数学涂色书《宇宙的图案》和《宇宙的视觉》,向大众展示了数学之美。他还创作了儿童计数书《你好,数字,你会做什么?》,旨在从最初的数学学习体验开始,就引入神秘感、游戏和探索。
  2. 雕塑与技术创新:2021年秋,他的一座基于“曲面体”玩具概念的大型雕塑在校园内落成。该雕塑项目源于一门跨学科课程,旨在改善校园空间。为解决预算限制,他与建筑师合作开发了名为“Zipform”的系统,将数学中的曲线构架理念与等离子切割和焊接技术结合,能将平面材料弯曲成曲面梁。该技术此后被应用于更多项目,包括在发展中国家开发优化的混凝土梁技术。
  3. 教学实践:他将数学与艺术融入教学,认为在数学课程中增加艺术环节(如用尺规作图)能让学生产生对数学思想的拥有感;在艺术课程中引入数学方法(如概念、程序与软件的交互),能帮助学生抽象化创作过程并发现新的探索途径。

哈里斯螺旋的发现

2015年,哈里斯发现了一条受黄金比例启发的美丽新曲线,并被命名为“哈里斯螺旋”。其创造动机源于对凯尔特与伊斯兰艺术中螺旋图案的兴趣,以及希望引导对黄金比例有兴趣的人深入了解更多代数数。该螺旋基于“塑性比”(方程 (x^3-x-1=0) 的实根)构建。具体构造方法是:取一个宽为1、长为塑性比的矩形,从中切出一个相似的矩形和一个正方形,得到另一个相似矩形;对此过程进行迭代,在每个正方形上添加适当的圆弧,即可形成一组嵌套的螺旋。哈里斯认为,创造过程更像是广泛探索后与最初目标的偶然连接,并强调了接受失败的重要性。

对数学对象命名的反思

哈里斯螺旋以他的名字命名,但哈里斯对此持辩证看法。他认为,将数学对象以人名命名存在问题:这强化了数学是“孤独天才”工作的观念,而非集体努力的成果,可能疏远大众;且人名线索(如“高斯曲率”)对不了解该人物背景的人而言不够直观。他认为,更好的方式是讲述更多数学对象的历史,并识别相关贡献者,这有助于提升对数学发展广泛文化层面的认识。此外,他指出,在数学可视化领域,人们对创意起源的追溯往往不足。

对初学者的建议

对于刚接触数学艺术创作或将其用于教学的读者,哈里斯的核心建议是“拥抱失败”。鼓励人们尝试各种事情以观察结果,并追求那些成功的方向,而非试图建立可靠的系统。

29. Backdoor attempt on Exolabs GitHub repo through an innocent looking PR (twitter.com)

针对Exolabs GitHub仓库的后门攻击尝试

根据Alex Cheema发布的推文,开源项目@exolabs的GitHub仓库近期遭遇了一次后门植入的攻击尝试。

  • 攻击方式:攻击者提交了一个外表看起来正常无害的Pull Request(PR)。
  • 安全提醒:推文作者强调,在审查代码时需要仔细检查每一行代码(Read every line of code),并附上“Stay safu”的警示,提醒开发者及社区成员提高警惕,注意代码安全。
30. The First Virtual Meeting Was in 1916 (spectrum.ieee.org)

1916年:首次虚拟会议回顾

1916年5月16日,美国电气工程师学会(AIEE,IEEE前身)在纽约举办了一场开创性的全国会议,这被认为是首次大规模的“虚拟会议”。会议通过电话线路连接了横跨四个时区、八个城市的超过5000名与会者,比Zoom等视频会议工具早了一个多世纪。

核心事实

  • 时间与组织者:1916年5月16日晚,由AIEE主席约翰·J·卡蒂主持。
  • 技术实现:利用电话线连接了亚特兰大、波士顿、芝加哥、丹佛、纽约、费城、盐湖城和旧金山的会场,总线路长约6500公里,穿越20个州,使用了超过15万根电线杆和5000个交换机。此举是在首次跨大陆电话通话仅一年后实现的。
  • 参会者:记录在册的成员超过5100人。由于座位有限,纽约和费城仅限成员本人参加,且明确不邀请女性;而其他一些城市则允许携带女伴(注:AIEE直到1922年才吸纳首位女性会员)。
  • 会议目的:纪念近期在通信、运输、照明和电力领域取得的成就,并展示工程能力。

会议进程

  1. 开幕与点名:卡蒂在纽约主持,各城市分会场主席负责本地议程。会议首先确认各分会场的通信连接畅通,并进行了点名。丹佛和盐湖城因电话线路经过而旁听,并通过电报发送了参会人数和问候。
  2. 名人致辞:会议收到了美国总统伍德罗·威尔逊的贺电。亚历山大·格雷厄姆·贝尔、AT&T首任总裁西奥多·韦尔、英国工程师查尔斯·勒·梅斯特以及贝尔的助手托马斯·沃森等也先后致词。
  3. “分组会议”:电话连接暂停30分钟,各城市举行本地演讲。演讲者大多对工程进步持积极态度,但也提出了警示:
    • 哈佛大学校长劳伦斯·洛厄尔赞扬电力是人类历史上最伟大的进步,但批评工程师未能预见个人从属于工厂体系。
    • 宾夕法尼亚大学教务长埃德加·史密斯提及一战对材料供应的限制,呼吁加强对美国自然资源的开发。
    • 斯坦福大学校长雷·威尔伯认为校园的不满、斗争和动荡是激发成长和创新的动力。
    • 其他演讲者讨论了远程输电对农村生活的影响,以及对化石燃料耗尽的担忧(而非环境影响)。
  4. 重新连接与问候:各城市重新接通电话,轮流致以问候并赞美工程成就,措辞充满激情与自豪感。
  5. 音乐插曲:各会场通过留声机播放本地特色的爱国歌曲(如《迪克西》、《杨基歌》、《星条旗》等)并通过电话传输。
  6. 主题演讲与决议:迈克尔·普平发表了关于“工程职业”的演讲。会议最终按照《罗伯特议事规则》通过了若干决议,并表彰了这次成功的工程壮举。

历史记录与疑问

会议被《AIEE会刊》详细记载,并被当地媒体誉为“世界历史上前所未有的壮举”。然而,后世学者对一些基本问题仍存疑问,例如会议的总成本由谁承担、听众使用的接收设备具体是什么型号、以及与会者的真实感受如何。文章指出,尽管这次实验性会议取得了成功,但AIEE此后似乎并未将其常规化,而是回归了常规的年度和地区会议模式。

31. Show HN: Open-source Kibana alternative for logs and traces in ClickHouse (github.com)

HyperDX:基于 ClickHouse 的开源日志与追踪分析平台

项目简介 HyperDX 是 ClickStack 的核心组件,定位为 Kibana 的开源替代品。它使工程师能够在任何 ClickHouse 集群上轻松搜索与可视化日志和追踪数据,帮助快速定位生产环境故障。

核心特性

  1. 统一分析:可在同一平台关联搜索日志、指标、会话回放和追踪数据。
  2. 灵活高效:模式无关,可直接在现有 ClickHouse 模式上工作;针对 ClickHouse 进行了快速搜索和可视化优化。
  3. 便捷查询:提供直观的全文搜索和属性搜索语法(如 level:err),无需编写 SQL;支持原生 JSON 字符串查询。
  4. 监控与分析:通过事件增量分析异常趋势;可轻松设置告警;无需复杂查询语言即可仪表板化高基数事件;支持从 HTTP 请求到数据库查询的全链路应用性能监控(APM)。
  5. 实时与兼容:支持实时尾随(Live Tail)日志与追踪;开箱即用支持 OpenTelemetry 标准。

部署方式

  • 可通过 Docker 快速启动一个集成了 ClickHouse、HyperDX、OpenTelemetry Collector 和 MongoDB 的全功能容器。
  • 也支持对接现有的 ClickHouse 实例,或部署到 ClickHouse Cloud(提供免费试用)。
  • 生产环境部署需参考官方文档,并确保开放相关端口(UI 8080, API 8000, OTel Collector 4318)。
  • 建议测试环境配置至少 4GB 内存和 2核 CPU。

数据采集 要将日志、指标等遥测数据发送至 HyperDX,需要对应用程序进行仪器化。项目提供了多种方式:

  • 专属 SDK:支持浏览器、Node.js、Python 等。
  • OpenTelemetry:兼容性广泛,支持 Kubernetes 以及 JavaScript、Python、Java、Go 等多种语言和平台。

项目动机 HyperDX 旨在帮助工程师轻松利用生产遥测数据交付可靠软件。它针对现有工具的三大痛点进行改进:

  • 成本高昂:现有工具在 TB 级数据常态化的背景下价格昂贵。
  • 使用复杂:需要专职 SRE 配置,且领域专家才能熟练使用。
  • 工具割裂:需在日志、会话回放、APM、异常监控等多个工具间跳转,手动拼凑线索。

其他信息

  • 贡献:欢迎通过提交 PR、报告问题、完善文档等方式参与开源贡献。
  • 许可:采用 MIT 许可证。
  • 使用数据:默认收集匿名使用数据以支持项目发展,可通过设置环境变量 USAGE_STATS_ENABLED=false 选择退出。
32. Voice acting in Space Quest V (github.com)

项目概述 该项目通过修改使《太空探索 V》支持完整语音配音。作者提供了安装说明、技术流程、已解决的代码问题以及未解决的 bug 列表。

安装说明

  1. 需要拥有《太空探索合集》中的《太空探索 V》原版游戏文件。
  2. 运行发布包中的可执行文件,并指向游戏文件夹。安装程序会移除可能导致问题的补丁文件。
  3. 下载约 500MB 的 resource.aud 文件(包含合成语音),并将其放入游戏文件夹。
  4. 注意事项:游戏必须同时开启文本和音频选项,因为分支对话需要文本输出。建议使用 DOSBox-X 或 DOSBox(0.74-2 或更早版本)运行。ScummVM 存在加载存档时文本框缺失的问题。

技术流程(Pipeline) 作者分享了为老旧游戏添加语音的一般流程:

  1. 编程:反编译并理解游戏代码,确定需要修改的位置以实现文本与语音同步。
  2. 数据集收集:质量优先,为角色寻找或创建匹配的语音数据集,考虑对低质量音频进行降噪的利弊。
  3. 微调:使用 Tortoise-TTS 和 RVC 等工具微调语音模型。
  4. 文本提取:从游戏中提取文本,并按说话者排序。
  5. 合成语音生成:使用 Tortoise-TTS 在 GPU 上生成语音(耗时较长),可尝试生成多样本。
  6. 质量控制:筛选并选择最佳音频样本,对效果不佳的语音行重新生成或修正文本。

已知问题(未解决) 游戏必须同时启用文本和音频。

  • “航行日志”介绍中的对话无法自动前进。
  • 物品栏中的对话无法自动前进。
  • Genetix 星球的分支对话缺少 Roger 的语音选择。
  • 未使用唇形同步功能。
  • 其他特定场景中存在缺失的语音、错误的说话者ID或图形显示问题(如 WD-40 的特写精灵未消失)。

主要代码修改与修复

  • 音频修复:更新了驱动和脚本文件以使用 Audio36 格式,并为众多类添加了 case 0 支持,修复了音频崩溃错误。
  • 添加缺失配音:为死亡房间信息、舰长日志、结局场景、物品栏、分支对话选择后的响应、太空学院测试结果信件以及特定特写场景添加了语音。
  • 信息传递器修复:修复了信息传递器消息覆盖其他窗口时导致的渲染错误;在对话期间动态降低音乐音量;借鉴其他游戏代码优化了鼠标状态恢复和重复调用检查。
  • 反编译/通用修复:修复了导致存档被删除、角色卡在特定动作、移动位置错误、图形显示错误等多个由反编译或代码逻辑引起的 bug。
  • 时间/性能修复:为小游戏添加了帧率限制,并将多处代码中的“周期”计时改为“滴答”计时,调整速度设置,以提高在现代高速 CPU 上的兼容性。

工作量估算

  • 语音文件生成、选择、剪辑和清理:约 100 小时。
  • 使用 SCI Companion 进行编程:约 30 小时。
  • 在 SCIProgramming.com 上交流:约 0.5 小时。