2024-07-05

29 篇热帖

1. Put the DVD logo in the corner (2023) (eieio.games)

《Put the DVD logo in the corner》开发总结

游戏概述

《Put the DVD logo in the corner》是一款基于童年玩笑(让DVD图标完美停在屏幕角落)的微型街机动作游戏。该游戏使用 PICO-8 引擎开发,耗时4天完成。游戏流程极短(约45秒),包含作者手动逐像素绘制的“粒子效果”,并曾获《纽约时报》Newsletter 推荐。

PICO-8 引擎体验

PICO-8 是一款模仿80年代主机限制的“幻想主机”,对图形、声音、代码大小和处理器速度有严格约束。这种限制激发了创造力,并赋予游戏独特的复古风格(知名代表作如原版《Celeste》)。

  • 内置工具评估:精灵编辑器便捷但略逊于专业工具 Aseprite;音效和音乐编辑器在熟悉后较为直观;但内置代码编辑器的体验较差。
  • 工作流优化:为改善代码编辑体验,作者引入了 VSCode 的 pico8-ls 扩展以获取语法高亮和 API 参考,并将代码写在外部文件(code.pb)中,通过 include 引入主文件。此举有效避免了外部编辑器与 PICO-8 内置精灵/音乐数据文件的冲突。

开发反思

  • 克制设计冲动:PICO-8 的极简特性促使作者放弃了增加复杂机制(如收集代币、升级系统或敌人)的念头。引擎的简单性让作者觉得发布一款微型、纯粹的游戏是顺理成章的,保持了完美的游戏规模。
  • 主题的核心价值:与作者以往重机制轻主题的作品不同,本作核心机制极其简单(让方块落入矩形角落),但凭借“DVD图标”这一鲜明且具共鸣的主题,极大地提升了向他人介绍游戏时的趣味性。这使作者深刻认识到优秀主题在游戏设计中的关键作用。

后续计划

作者计划未来继续制作小型街机风格游戏,并再次使用 PICO-8 引擎。此外,作者也在探索非传统的开发方式,例如利用 OpenSearch 规范在 Firefox 浏览器地址栏中直接运行游戏(2024年更新:已成功实现在地址栏运行 Wordle)。

2. I have no constructor, and I must initialize (consteval.ca)

C++初始化机制深度解析

核心概念

本文探讨了C++中构造函数和初始化的复杂规则,重点分析了默认初始化值初始化的行为差异,以及聚合类型非聚合类型的不同处理方式。

初始化类型对比

1. 默认初始化 (T t;)

  • 类类型:调用默认构造函数
  • 数组类型:对每个元素进行默认初始化
  • 其他类型:不执行任何操作,可能包含未初始化值

2. 值初始化 (T t{};)

  • 非聚合类类型
    • 若无默认构造函数或存在用户提供的默认构造函数 → 执行默认初始化
    • 否则 → 先零初始化,再默认初始化
  • 聚合类型:执行聚合初始化
  • 数组类型:对每个元素进行值初始化
  • 其他类型:零初始化

构造函数规则

编译器提供的默认构造函数

  • 隐式声明:当用户未声明任何构造函数时,编译器隐式声明
  • 显式默认化T() = default;
  • 隐式定义:当构造函数隐式声明或显式默认化且未被删除时,编译器提供定义(等价于T() {}

用户提供的构造函数

  • 在类外定义的默认构造函数被视为用户提供的,即使使用= default
  • 这影响值初始化行为:存在用户提供的默认构造函数时,仅执行默认初始化(不进行零初始化)

删除的默认构造函数

以下情况编译器将隐式声明的默认构造函数定义为删除:

  • 类有不可默认初始化的成员(如const成员无默认成员初始化器)
  • 存在不可默认构造或析构的基类/成员
  • 存在非静态引用成员

聚合类型的特殊性

聚合定义

  • 数组或满足以下条件的类:
    • 无用户声明的构造函数
    • 无私有/受保护的非静态数据成员
    • 无私有/受保护的基类
    • 无虚函数/虚基类

聚合初始化

  • T{args...} 使用花括号初始化列表按顺序初始化每个元素
  • T(args...) 使用圆括号初始化列表,允许窄化转换

示例:

struct A { const int x; };
A a{}; // 有效:聚合初始化,x被值初始化为0
A b{4}; // 有效:x被初始化为4

花括号初始化 vs 圆括号初始化

花括号初始化 (T t{...})

  • 执行列表初始化
  • 对聚合类型执行聚合初始化
  • 不允许窄化转换
  • 元素从左到右顺序求值

圆括号初始化 (T t(...))

  • 执行直接非列表初始化
  • 允许窄化转换
  • 元素求值顺序未指定
  • 存在悬垂引用风险(如临时对象绑定到引用)

拷贝省略规则

当初始化器是T类型的纯右值时:

  • T q(T{}); 可以进行拷贝省略(C++17起强制)
  • T q{T{}}; 技术上未定义省略规则,但主流编译器仍执行省略

关键结论

  1. 初始化规则复杂:涉及默认初始化、值初始化、聚合初始化等多种机制
  2. 构造函数提供方式影响行为:用户提供的构造函数改变值初始化语义
  3. 聚合类型特殊:可绕过构造函数直接初始化成员
  4. 初始化语法差异:花括号和圆括号初始化有不同行为约束
  5. 最佳实践:显式编写构造函数以避免依赖复杂的隐式初始化规则

文章最终强调:理解这些规则虽然必要,但实践中应通过显式定义构造函数来控制初始化行为,避免依赖编译器的隐式规则带来的复杂性和潜在问题。

3. Insights from over 10,000 comments on "Ask HN: Who Is Hiring" using GPT-4o (tamerc.com)

10,000+条Hacker News招聘评论分析:使用GPT-4o洞察就业市场

研究目的与方法

作者出于个人求职需求,希望更客观地了解当前就业市场,选择了Hacker News的“Ask HN: Who Is Hiring”月度招聘帖作为数据源。通过以下步骤进行了系统性分析:

  1. 数据收集:使用Selenium和HN API获取了2022年5月至2024年7月期间共10,891条顶级招聘评论。
  2. 数据结构化:利用GPT-4oLangChain框架,设计了包含comment_idlocationremotejob_typesalary_range等字段的HNJobPosting模型,对每条评论进行分类。LangChain的llm.batch方法实现了并行处理。
  3. 数据分析:将结构化数据存入SQLite数据库,使用SQL进行查询和可视化分析。

主要发现

  • 远程工作趋势:疫情期间约80%的职位明确支持远程办公。尽管后疫情时代该比例有所下降,但降幅低于预期。
  • 签证担保情况:过去两年提供工作签证担保的职位比例相对稳定,但获得此类机会仍然具有挑战性。
  • 经验要求:市场对有8年以上经验的高级工程师需求显著。
  • 地区分布:美国职位高度集中于硅谷和纽约,其他地区机会相对较少。
  • 技术栈需求
    • 数据库PostgreSQL的使用率远超其他数据库。
    • JavaScript框架React占据绝对主导地位。
  • 薪资分布:通过分析揭示了不同职位和地区的薪资区间。

关键经验教训

作者总结了使用LLM进行结构化数据提取时的最佳实践:

  1. 字段描述需精确:例如,将模糊的location字段拆分为明确的citycountry,并指定格式(如国家使用ISO代码)。
  2. 分类应预定义:描述中应直接列出所有可能的类别,而非仅举例。
  3. 集合数据需定义分隔符:描述中应明确指明列表数据的分隔符(如逗号),以便后续解析。

成本与效率

  • 处理成本:处理10,000多条评论共花费约54美元,主要来自GPT-4o的API调用。
  • 开发效率:从编写代码到完成数据处理(不含可视化)约耗时90分钟,得益于GitHub Copilot等工具辅助。

未来构想

作者提出,基于已完成的数据结构化工作,可构建一个迷你SaaS服务,让用户描述理想职位,系统自动与每月更新的招聘帖进行匹配推荐。

技术实现亮点

  • 使用three.js构建了交互式气泡图来展示JavaScript框架的需求情况,支持缩放、移动和点击查看具体数值。
  • 通过分析线程ID的数值差异,可视化展示了Hacker News的月度活动量变化趋势。
4. Show HN: I’ve made a cheaper SEO research tool (withtelescope.com)

Telescope SEO 工具概述

Telescope 是一款综合性的 SEO 研究工具,旨在通过集成多种功能来替代分散的 SEO 软件,帮助用户更高效地制定和优化 SEO 策略。其主要功能包括:

关键词研究

  • 提供包含超过 50 亿关键词的数据库,帮助用户发现潜在客户搜索的关键词。
  • 获取任何关键词的全面实时概览,包括 SERP 结果、关键词难度、搜索量估算等数据。
  • 支持关键词聚类与保存,便于用户构建 SEO 策略,并在后续优化内容和提升排名时使用。

竞争对手分析

  • 获取任何网站的全面概览,包括其关键词、反向链接等信息,帮助理解竞争对手的 SEO 策略。
  • 允许添加竞争对手并长期跟踪其 SEO 表现变化。
  • 识别用户与竞争对手在反向链接和关键词方面的差异,发现优化机会。

监控与优化

  • 排名追踪器:在一个平台上跟踪网站在不同市场和关键词下的排名位置。
  • 网站审计:定期运行全面审计,发现并修复技术性 SEO 问题。
  • 内部链接工具:发现网站内部的链接优化机会,以改善用户体验和 SEO 效果。

该工具的核心优势在于整合多项 SEO 功能于一体,提供高质量数据,支持从关键词发现到竞争对手分析、再到持续监控与优化的全流程管理。

5. Ente Auth: open-source Authy alternative for 2FA (ente.io)

Ente Auth:开源的双因素认证(2FA)身份验证器

项目简介 Ente Auth 是一款免费且完全开源的双因素认证(2FA)应用,旨在作为 Authy 的替代方案,帮助用户安全地管理和保护账户。

核心安全与同步机制

  • 端到端加密备份:提供云端备份功能以防止令牌丢失,其加密机制已通过外部安全审计。
  • 跨平台同步:全面支持移动端、桌面端和 Web 端,验证码在所有设备间进行端到端加密同步。

关键功能特性

  • 高效查看:支持预览下一个验证码(Next code)以节省时间;内置搜索功能,免去滚动查找的繁琐。
  • 分类与组织:通过专属图标轻松识别令牌;支持使用标签(Tag)进行分类管理,并可将常用服务置顶(Pin)。
  • 信息扩展:允许为验证码添加笔记(Notes),记录相关重要信息。
  • 安全共享:支持在团队内部安全地共享验证码。
  • 离线模式:支持无需注册账户或开启备份的离线使用模式。

令牌管理与数据自由

  • 灵活的导入方式:支持通过扫描二维码、手动输入 2FA 密钥,或从其他 2FA 应用批量导入令牌。
  • 无平台锁定:支持数据的自由导入与导出,确保用户不被单一平台绑定(No lock-ins)。

开源属性 Ente Auth 坚持完全开源与免费,赋予用户对其数据的完全控制权与透明度。

6. SCIM: Ncurses based, Vim-like spreadsheet (github.com)

sc-im (Spreadsheet Calculator Improvised) 项目摘要

项目简介

sc-im 是一款基于 ncurses、采用 Vim 风格操作的终端电子表格计算器。该项目基于早期的 sc 程序开发,当前版本为 v0.8.5,由单人独立维护并寻求社区支持。

核心功能

  • Vim 风格操作:支持 Vim 快捷键进行单元格移动(h/j/k/l)、内容编辑、区域选择、复制粘贴及撤销/重做。
  • 数据处理:支持 65,536 行和 702 列(行可扩展至 1,048,576 行),提供行排序、过滤、分类汇总和单元格位移功能。
  • 文件读写:支持 CSV、TAB、XLSX 和 ODS 格式导入,以及 CSV、TAB、XLSX 和 Markdown 格式导出。
  • 界面与格式:支持 RGB 直接调色(含运行时修改)、单元格文本格式化(加粗/斜体/下划线),并全面支持多国语言宽字符(含中文、日文等)。
  • 扩展与脚本:支持与 GNUPlot 交互绘图;内置 Lua 脚本支持,允许使用触发器、C 动态链接模块及自定义外部函数;可作为非交互式计算器运行。
  • 其他特性:支持快捷键映射、自动备份和系统剪贴板。

安装与依赖

  • 必需依赖:ncurses(建议支持宽字符)、bison 或 yacc、gcc、make、pkg-config 和 which。
  • 可选依赖:剪贴板工具(tmux/xclip/pbpaste)、gnuplot、XLSX/ODS 读写库(libxlsxreader/xlsxwriter/libxml-2.0/libzip)以及 lua。
  • 构建步骤:编辑 src/Makefile 适配系统需求,运行 make 编译,特权用户可执行 make install 进行系统级安装。支持 macOS (Homebrew) 和 Ubuntu 等主流系统。

配置与社区支持

  • 个性化配置:通过 ~/.config/sc-im/scimrc 文件设置自动计算、数字格式等运行参数。
  • 问题反馈:通过 GitHub Issues 报告 Bug,通过 GitHub Discussions 进行技术提问或功能请求。
  • 项目维护:作为缺乏赞助的单人项目,开发者呼吁社区通过点亮 GitHub Star、分享使用截图、提供反馈或经由 Patreon/PayPal 捐赠来支持项目的持续开发。相关生态还包含 vim-scimark 等 Vim 插件。
7. Space Age release date (factorio.com)

《异星工厂:太空时代》发布日期与内容摘要

发布日期与价格

  • 计划于 2024年10月21日 发布。
  • 定价为 35.00美元,与当前基础游戏价格相同。
  • 现已可在Steam上添加愿望单。

扩展包核心内容 《太空时代》延续了玩家发射火箭进入太空后的旅程,包含以下主要内容:

  1. 太空平台:作为行星间运输的基础设施,玩家可建造能防御小行星、加工资源并运输货物的飞行工厂。
  2. 四颗新行星
    • Vulcanus:火山星球,可开采钨、利用熔岩生产金属,并研究高级冶金技术。
    • Fulgora:荒芜星球,需防范雷暴并利用其电力,回收高科技废料并解锁磁力科技。
    • Gleba:沼泽星球,可进行农业种植与生物化学加工,处理产品以防腐烂。
  3. 高架铁路:引入铁轨坡道与支撑结构,允许铁路跨越障碍物与海洋,实现多层立交。
  4. 品质系统:所有物品、设备和机器拥有从“普通”到“传奇”五个品质等级,通过品质模块制造,品质越高加成越大。
  5. 更多内容:包括每个新行星的专属配乐、新敌人与防御机制,以及一颗谜团重重的第五颗行星。

Factorio 2.0 免费更新

  • 《太空时代》发布时将同步推出 Factorio 2.0版本,所有用户可免费升级。
  • 2.0版本包含大量改进,例如:
    • 更智能的物流机器人。
    • 新型铁路系统。
    • 远程查看功能。
    • 电路网络与信号系统优化。
    • 列车控制改进。
    • 全新流体系统。
    • Nauvis星球地形生成器的彻底翻新等。

后续关注

  • 可通过每周开发博客或订阅通讯获取最新消息。
8. Ask HN: Is there any software you only made for your own use but nobody else?
10. I was at AMD in the mid-late 2000s helping design CPU/APU/GPUs (twitter.com)

错误消息摘要

内容描述了一个网站错误,提示用户采取行动以解决问题:

  • 错误状态:在访问x.com时出现了一些问题。
  • 可能原因:隐私相关扩展可能导致网站功能异常。
  • 解决建议:建议用户禁用这些隐私扩展,然后重试访问。
  • 语气:消息以安抚性语言开头("don’t fret"),鼓励用户再次尝试。

该内容是一个通用技术错误提示,旨在帮助用户诊断和解决网站访问问题。

11. Advantages of incompetent management (yosefk.com)

无能管理的优势

高效管理的理论缺陷

文章通过一个预算案例揭示了高效管理的核心矛盾:在资源有限的零和博弈中,追求效率、主动优化往往损害个人或团队利益。一位副总裁自愿削减预算后,该额度永久固化,反而导致后续需要更多资源时面临更大阻力。这表明,在组织内节省资源的行为(如优化代码、缩减预算)通常无法获得相应回报,反而会降低未来工作的灵活性。

资源管理中的逆向激励

  • CPU/内存等资源:在管理严格的系统中,节省的资源会被重新分配给他人,导致自身后续需求无法满足。这促使员工倾向于避免优化,甚至在建立基准前过度消耗资源以争取更高额度。
  • 代码膨胀与蔓延:高效管理通过绩效评估迫使员工持续产出,但当目标不明确时,员工会创造非必要项目以显示价值。这导致系统复杂度指数增长,产生大量相互依赖的冗余代码,进一步阻碍优化和错误修复。

Bug修复的困境

  • 激励错位:将修复错误设为目标会导致员工先制造错误再修复以获取奖励。与性能优化不同,错误的影响难以量化,且修复他人错误的成本高于修复性能问题。
  • 正确性难以制度化:除关键错误外,其他修复被视为对目标资源的占用,员工倾向于慢速处理或规避。大型捆绑产品(如Microsoft Teams)虽可容忍非关键错误,但修复它们对企业有利,高效组织却难以推动此类工作。

无能管理的意外优势

  1. 自然优化:在目标模糊、管理松散的环境中,员工会自发修复性能问题或错误,因为无人监控资源预算,优化行为本身带来满足感且无惩罚。
  2. 系统简洁性:缺乏严格目标时,员工可能“无所事事”,但这避免了冗余项目的创造,保持系统更简洁,增强了敏捷性和可维护性。
  3. 文化因素:员工常将公司视为部落,自发倾向为集体利益工作,即使缺乏正式激励。

高效管理与“货物崇拜”管理的对比

  • 高效管理:通过严格目标设定、资源监控和绩效评估驱动工作,可能导致反向激励和系统膨胀。
  • 货物崇拜管理:模仿高效管理的表面形式(如复杂任务跟踪系统),但实际阻碍自发工作,同时继承了高效管理的缺点而无其优势。
  • 真正的无能管理:管理者近乎“无所作为”,依赖员工自发性,可能更利于系统健康。

无能管理的局限性

无能管理的主要缺陷是无法设定和实现关键目标,可能威胁组织生存。它仅在基本生存需求已被满足的情况下可行。面对外部危机时,无能管理可能被迫“转换模式”,但这通常难以成功,且一旦成功,组织文化往往永久改变。

结论与个人启示

  • 核心悖论:高效管理通过目标实现效率,但任何无法转化为目标的事物(如自发优化、错误预防)会被系统性地忽视或惩罚。
  • 对个人的建议:改变组织环境极其困难,但个人可寻找合适的生态位(如专注于优化或调试的工作),在无能管理下可能更易实现有意义的技术工作。
  • 现实观察:真正结合两者优势的案例罕见,且多难以持续。文章最终对“总存在最佳管理方式”的乐观观点提出质疑,认为组织的有效性与“良好”并不必然等同。
12. LivePortrait: A fast, controllable portrait animation model (github.com)

LivePortrait 项目概述

LivePortrait 是一个高效、可控的人像动画模型,能够将静态肖像图像或视频根据驱动视频生成动画。项目由快手科技、中国科学技术大学和复旦大学的研究者共同开发。

核心功能与特点

  • 快速可控:通过“缝合”和“重定向控制”技术实现高效动画生成。
  • 广泛适用:支持人类、猫和狗等多种肖像。
  • 多种输入:源可以是图像或视频,驱动可以是视频或运动模板文件(.pkl)。
  • 平台采纳:已被快手、抖音、剪映、微信视频号等主要视频平台及众多初创公司采用。

技术实现与安装

  • 环境:基于 PyTorch,支持 Linux、Windows(NVIDIA GPU)和 macOS(Apple Silicon,仅人类模式)。
  • 安装:需克隆代码库、创建 conda 环境、安装依赖(包括特定 CUDA 版本的 PyTorch 和 X-Pose 依赖用于动物模式),并下载预训练权重(通过 HuggingFace、Google Drive 或百度云)。

使用方法

  1. 命令行推理
    • 人类模式:运行 inference.py,通过 -s(源)和 -d(驱动)参数指定输入。
    • 动物模式:需先编译 MultiScaleDeformableAttention 算子,然后运行 inference_animals.py
    • 驱动视频建议:建议裁剪为 1:1 比例,聚焦头部,最小化肩部运动,且第一帧为中性表情正脸。可使用 --flag_crop_driving_video 自动裁剪。
    • 运动模板:支持生成和使用 .pkl 运动模板文件,以加速推理并保护隐私。
  2. Gradio 界面:提供 app.py(人类)和 app_animals.py(动物)启动图形界面,体验更佳。支持 --flag_do_torch_compile 加速选项(不支持 Windows/macOS)。

性能与社区

  • 提供了 speed.py 脚本用于评估推理速度。
  • 拥有活跃的社区,贡献了众多集成项目(如 ComfyUI 节点、WebUI 扩展、TensorRT 加速版本)、HuggingFace Spaces 演示和视频教程。

伦理考虑

  • 项目团队指出,人像动画技术存在被滥用制造深度伪造的社会风险,强调需遵循伦理准则并负责任地使用。当前生成结果含有可视瑕疵,可能有助于检测。
  • 团队声明对项目生成结果的使用不承担任何法律责任。
14. Bone tissue reparation using coral and marine sponges (web.stanford.edu)

骨组织修复:利用珊瑚与海洋海绵的仿生新法

传统骨移植的挑战

传统骨组织修复主要依赖骨移植,即从他处获取骨质并移植至损伤部位。然而,这种方法面临骨骼来源稀缺的难题,难以获取足够数量的骨材料进行修复。

仿生学的突破:珊瑚与海洋海绵支架

基于仿生学原理,研究者开发了利用珊瑚海洋海绵作为支架的新方法,为骨组织再生提供框架。这些天然材料具备显著优势:

  • 生物相容性:易于与现有骨骼结合。
  • 结构相似性:其孔隙结构与成分(主要为碳酸钙)与天然骨骼高度相似,为骨细胞生长提供了理想的物理和化学环境。

修复过程详解

  1. 支架制备:将珊瑚或海洋海绵加工成与待修复骨缺损区域精确匹配的形状
  2. 细胞准备:同时准备骨髓基质细胞干细胞
  3. 手术植入:将预制的支架与准备好的细胞一同植入骨损伤部位。
  4. 组织再生与融合
    • 随着时间推移,现有骨组织会沿着支架向外生长并覆盖它。
    • 或者,植入的干细胞在支架表面直接分化为骨细胞
  5. 完全整合:最终,珊瑚或海绵支架会完全融入新形成的骨结构中,修复区域在功能与结构上与原生骨无异。

相较于传统植入物的关键优势

传统植入物(如陶瓷或金属合金)虽然坚固,但会引发 “应力遮挡” 效应:即强度远高于骨骼的植入物承担了大部分负荷,导致骨骼因缺乏力学刺激而萎缩甚至坏死。而珊瑚与海洋海绵支架的强度与骨骼相近,仅作为生长框架,有效避免了应力遮挡问题,有利于骨骼的自然愈合与重塑。

结论

利用珊瑚与海洋海绵作为支架的骨组织修复技术,是仿生学领域取得的一项重大突破。它解决了传统骨移植的材料来源问题,并克服了传统植入物的应力遮挡缺陷,为骨外科手术提供了革命性的新选择。

15. The Snapdragon X Elite's Adreno iGPU (chipsandcheese.com)

高通Snapdragon X Elite的Adreno X1核显评测总结

架构与规格

  • Adreno X1是Adreno 7xx架构的扩展版本,用于Snapdragon X Elite笔记本平台。内部驱动识别为Adreno 741,暗示其基于并放大自手机芯片Adreno 730。
  • 计算单元:由着色处理器(SP)构成,每个SP包含两个微着色处理器纹理处理器(uSPTP),结构类似AMD RDNA的WGP或NVIDIA的SM。每个调度分区拥有64位宽的FP32执行单元,可双倍速率执行FP16操作。
  • 波浪大小:使用宽大的64或128线程波浪(Wave),这增加了对寄存器文件容量的压力。
  • 寄存器文件:每个uSPTP拥有192KB寄存器文件,相比Adreno 730增加50%,但考虑到宽波浪,其占用率仍可能受限。
  • 频率:测试SKU频率为1.25 GHz,高端SKU可达1.5 GHz,显著高于Adreno 730的900 MHz。
  • 显存:搭配128位LPDDR5X内存控制器。

性能表现

  • 计算吞吐量:在基本的FP32运算上,Adreno X1与Intel Meteor Lake(Xe-LPG)性能接近,但落后于AMD Phoenix(RDNA 3)。得益于双倍FP16速率,其FP16性能具有竞争力。FP64不支持。整数运算表现参差不齐,INT32基础加法表现不佳,但复杂运算尚可;INT64性能则普遍较差。
  • 光线追踪:硬件支持,但仅限于Vulkan API。在3DMark Solar Bay测试中性能合格,但落后于竞争对手。评测认为,在当前移动核显性能下,光线追踪效果均不可实用。
  • 游戏实测:在《赛博朋克2077》低画质测试中:
    • 1080p:平均24 FPS,低于Meteor Lake和Phoenix(均超30 FPS)。
    • 720p:平均帧率突破30 FPS,流畅度提升。
    • 电池供电:性能无下降,优于Meteor Lake(性能有显著下跌)。
  • 计算基准:在流体动力学模拟FluidX3D中表现不佳,即使经过优化也远逊于Intel老款核显。需使用特定编译标志才能运行。

内存与缓存子系统

  • 缓存层次:拥有独特的四级缓存设计:私有2KB纹理缓存(L1)、新增的128KB中间层集群缓存、共享L2缓存及6MB系统级缓存(SLC)。
  • 缓存带宽与延迟:L1纹理缓存带宽低于最新竞品;集群缓存延迟合理但带宽不佳。整体缓存子系统表现弱于AMD和Intel的方案。
  • 内存带宽:得益于LPDDR5X,实测DRAM带宽略高于Meteor Lake。
  • GMEM:拥有高达3MB的GMEM。作为Adreno传统分块渲染的片上存储,在非分块渲染(如计算着色器)中可灵活复用为本地内存或颜色/深度缓存。作为本地内存使用时,延迟表现尚可,但带宽低于预期,可能受限于每个SP的加载/存储子系统吞吐量。

软件与驱动

  • 驱动状态:是当前主要短板。存在兼容性问题(如《文明5》渲染错误、部分游戏无法启动),且驱动更新流程繁琐(需手动提取安装,无自动安装程序)。更新后可能导致更多游戏无法运行。
  • API支持:支持DirectX 12,但不支持DirectX 12 Ultimate,限制了部分高级游戏特性的使用。

结论与展望

Adreno X1标志着高通正式进军笔记本核显市场,并实现了相对于前代产品的巨大性能进步。其计算吞吐量具备竞争力内存带宽领先,且GMEM的灵活复用是独特优势

然而,与成熟的竞品相比,其缓存子系统性能不足寄存器文件容量受限于宽波浪设计软件和驱动极其不成熟,且在某些特定计算负载上表现不佳。高通在PC图形领域的经验积累远不如AMD和Intel,短期内驱动和软件兼容性是亟待解决的关键问题。长远来看,Adreno架构需要持续演进,以应对来自AMD和Intel的激烈竞争。成功与否将影响笔记本GPU市场的竞争格局。

16. Japan introduces enormous humanoid robot to maintain train lines (www.theguardian.com)

日本西日本铁路公司本月开始投入使用一台大型人形机器人,用于铁路维护作业。该机器人外形独特,拥有巨大的手臂和类似《机器人总动员》中瓦力的小型头部,安装在可在轨道上行驶的卡车平台上。

主要功能与特点:

  • 远程操控:操作员在卡车驾驶舱内通过摄像头以机器人视角进行观察,并远程操控其强力手臂和手掌。
  • 作业能力:垂直作业高度可达12米,手臂可搭载多种工具,能承载重达40公斤的物体,可用于绘画、修剪树枝及使用电锯等任务。
  • 主要用途:目前主要用于修剪铁路沿线的树枝、油漆支撑列车上方电缆的金属框架。

应用背景与意义: 该技术旨在应对日本老龄化社会带来的劳动力短缺问题,同时减少工人高空作业或触电等事故风险。公司总裁Kazuaki Hasegawa表示,未来希望将此类机器应用于各类基础设施维护,并视其为解决劳动力短缺的可行案例。

17. Mechanical computer relies on kirigami cubes, not electronics (news.ncsu.edu)

这种机械计算机由聚合物立方体通过剪纸(kirigami)原理切割折叠而成,无需电子元件即可存储、读取和擦除数据。每个功能单元由64个相互连接的立方体组成,立方体可通过物理按压或磁场驱动上下移动,其不同状态可表示二进制数据(向上为1,向下为0),甚至理论上可支持五种以上状态以实现更复杂的计算。

立方体之间通过弹性胶带连接:拉伸结构时胶带伸展,允许编辑数据;松开后胶带收缩,锁定数据。该系统还具有可逆特性,可控制数据是否允许编辑。

研究人员指出,该系统在二进制框架下信息密度较高,例如9个功能单元组成的元结构可产生超过36万种配置。此外,它可能应用于三维机械加密、解密以及三维触觉信息显示系统。

该研究由北卡罗来纳州立大学团队发表于《科学进展》期刊,并得到美国国家科学基金会资助。

19. Gravitational wave researchers cast new light on Antikythera mechanism mystery (www.gla.ac.uk)

格拉斯哥大学研究人员利用引力波分析技术,解开了世界上最古老模拟计算机安提基特拉机械的一个谜团。该机械于1901年从爱琴海沉船中发现,可追溯至公元前2世纪,能通过复杂齿轮系统预测月食、计算行星位置。

2020年X射线图像揭示了机械日历环上规则分布的孔洞,但环体残缺导致原始孔数不明。此前研究估计孔数在347至367之间。

研究团队应用了两种统计分析方法:

  1. 贝叶斯分析:基于现存孔洞位置与环片段数据计算概率。
  2. 马尔可夫链蒙特卡洛与嵌套抽样:借鉴LIGO引力波探测器分析宇宙时空涟漪的技术。

结果表明,日历环最可能有354个孔,对应希腊农历年,其概率比365个孔(埃及历)或360个孔(此前假设)高数百倍。此外,孔洞定位精度极高,平均径向偏差仅0.028毫米。

该研究证实了该部件用于追踪希腊农历年,同时展现了古希腊工匠的卓越技艺。研究者将现代宇宙学技术应用于近两千年前的古代仪器,为理解其构造与功能提供了新视角。

20. Ask HN: Who Wants a Penpal?
21. The War on Estonian Forests (2022) (daveon.design)

核心主旨

本文揭示了爱沙尼亚丰富的森林资源正面临大规模商业砍伐的危机。尽管爱沙尼亚人对自然有着深厚的文化联系,且该国以高科技发展自豪,但在经济利益和出口需求的驱动下,政府监管缺失与体制内的利益冲突导致珍贵的森林生态系统遭到严重破坏。

自然与文化的深厚联系

爱沙尼亚森林覆盖率近60%,空气质量极佳且生物多样性丰富。当地人对自然有深厚的精神依赖,保留了前基督教时期的“大地信仰”,常将古老树木视为朝圣地。森林也是民众日常休闲、采摘野生浆果和蘑菇的重要场所,承载着深厚的家庭记忆与情感联系。

砍伐现状与经济驱动

包括Lehetu村周边及Lahemaa国家公园在内的许多古老、高生态价值的森林正被彻底砍伐。其主要驱动力是生物质能源出口:大量木材被制成颗粒,主要出口至荷兰和丹麦用于冬季供暖。这反映了西欧高收入国家与爱沙尼亚之间的经济不平衡与资源剥削。此外,尽管爱沙尼亚在IT领域处于欧洲领先地位,但在自然保护观念上却相对滞后。

政府管理缺陷与利益冲突

爱沙尼亚政府在森林管理上存在严重的系统性问题:

  • 体制利益冲突:国家森林管理中心(RMK)同时负责森林保护与商业砍伐。
  • 监管失效与暗箱操作:环保法律被削弱,允许在国家公园内进行商业采伐;RMK与木材公司之间存在提供额外利益的“秘密合同”。
  • 行政不作为:环保官员试图在鸟类筑巢期暂停砍伐却因行业施压被迫离职;环境委员会对违规砍伐事件的调查敷衍了事。欧盟已因爱沙尼亚在保护区砍伐森林启动法律程序。

环保运动的困境

对比澳大利亚塔斯马尼亚州成熟的环保抗争历史,爱沙尼亚的民间环保组织(如“拯救爱沙尼亚森林”)才刚起步。尽管活动家面临人身威胁及社会对示威的传统抵触,公众环保意识正逐渐觉醒。然而,由于国家面积较小,若维持当前的砍伐速度,民间抗议可能在取得实质成果前就面临无林可保的绝境。

23. Moving to a RTOS on the RP2040 (blog.brixit.nl)

文章标题:在RP2040上使用RTOS

作者正在开展多个基于微控制器的小项目,其中许多使用Raspberry Pi Pico开发板,因其开发体验良好、SDK优秀、硬件便宜且调试工具(gdb/openocd)与各种IDE集成方便。

作者当前的一个项目是为视频设备制作硬件控制器,主要控制两台PTZ摄像机、一台固定摄像机和视频切换设备。现有控制器价格昂贵(€650)但体验不佳,且针对安防摄像头优化。控制器通过RS-485总线与摄像机连接。此外,作者还希望实现基本的ATEM视频切换器控制功能,而Blackmagic Design的官方控制面板非常昂贵。

经过设计,作者确定最小化方案需要9个按钮、一个操纵杆和一个用户界面显示屏。硬件设计经过多次迭代,目前PCB已集成9个RGB按钮、廉价操纵杆、TP8485E芯片(用于RS-485通信)和Wiznet W5500模块(用于以太网通信)。

初始软件基于pico-sdk的cmake项目,利用Pico的双核:第二核心处理Wiznet模块,第一核心处理用户界面I/O。虽然实现了DHCP客户端,但系统复杂性增加,需要同时处理多项任务:平滑绘制UI、通过RS-485发送VISCA命令、响应按钮事件、维护网络栈和多连接。

网络功能需求包括:符合标准的DHCP支持(跟踪租约时间)、mDNS工作(自动发现ATEM设备IP并广播控制面板存在)。ATEM协议实现也较复杂,涉及大数据接收和低超时断连机制。

因此,作者决定转向RTOS。

FreeRTOS

作者首先尝试FreeRTOS,它已集成在pico-sdk中。FreeRTOS提供调度器和任务间通信机制。代码示例展示了任务创建和使用队列进行IPC。作者创建了多个任务:按钮任务、LED任务、主任务、网络任务、DHCP任务、mDNS任务、ATEM任务和VISCA任务。但遇到问题:printf导致程序挂起,调试困难;FreeRTOS不提供硬件抽象,代码难以重用。作者尝试重新组织代码但因无串口输出而放弃,转而探索其他选项。

Apache NuttX

NuttX使微控制器看起来像Unix系统,提供shell和文件系统抽象(如/dev/i2c0)。它基于menuconfig/Kconfig构建,类似Linux开发,有硬件驱动系统。作者配置了RP2040的I2C和引脚复用。但初期I2C总线未工作,后发现是配置错误(作者计划未来详细更新)。其他问题包括:需要处理文件系统路径、无需shell但系统包含shell、仓库状态不一致导致配置脚本失败。作者认为类Unix方式对微控制器不必要。

Zephyr

Zephyr使用Python工具设置项目,但首次运行需下载约5GB的git仓库(包含所有芯片的HAL库),并修改用户级cmake设置。作者避免安装Zephyr SDK,通过设置交叉编译环境变量使用现有工具链。但遇到问题:Raspberry Pi Pico未直接支持,只有同SoC的其他板支持;Blinky示例因缺少LED定义无法构建;遵循自定义板指南创建板定义后仍未能成功构建。

结论

作者最终选择继续使用FreeRTOS,因为它是唯一能简单集成到现有开发环境中的RTOS。其他RTOS(NuttX和Zephyr)在配置复杂性、资源占用或工具链依赖方面存在问题。作者将尝试用替代printf实现解决FreeRTOS的调试问题,并继续推进项目开发。

24. The Software Crisis (wryl.tech)

软件危机:起源、现状与反思

危机的提出

1968年,首届NATO软件工程会议正式提出“软件危机”这一术语,旨在梳理和规范当时自动计算设备的编程实践。会议背景正值计算机硬件复杂度与速度快速增长,但相应的软件组织方法却未能跟上,导致软件复杂性难以管理。1972年,Edsger Dijkstra在图灵奖演讲中明确指出:硬件复杂度的提升与软件组织方法的缺失是危机的核心原因。

当前的“舒适”假象

如今,“软件危机”一词已较少被提及,行业普遍认为已通过新语言和组织方法“基本解决”了问题。然而,这种“舒适感”更像是一种无奈的接受而非真正的突破。我们习惯于通过心理模型和抽象层来简化对复杂系统的理解,但这些模型往往无法真实反映底层现实,一旦失效便可能引发灾难。

抽象的陷阱与商业化加速

早期的解决方案普遍遵循“抽象化”模式——通过隐藏细节来换取可控性,但往往以性能和可控权为代价。随着个人计算商业化,硬件迭代加速,抽象层不断叠加,导致软件构建陷入“眼不见为净”的模式。开发者与用户逐渐远离底层机器的真实能力,软件构建成本攀升,手动文档消失,个性化开发门槛大幅提高。商业化进一步推动了软件行业的快速迭代和资本影响,使得独立开发者难以生存,用户对软件的控制权被极大削弱。

深层问题:脱离责任与人类活动属性

软件构建作为一项人类活动,其责任常被疏离。开发者往往在数十年后才真正理解所造工具的潜力,却在当时受技术热情、同行压力或商业需求影响,不断依赖抽象来回避根本问题。这种模式不仅影响专业人士,也剥夺了普通用户对软件的控制权,仅能使用作者预设的功能。

出路:约束抽象、缩小语义鸿沟

解决危机并非回归受限平台,而是需限制抽象层的数目,并确保层间信息传递的完整性。目标是缩小语义鸿沟,使所有人都能跨越硬件与软件之间的理解障碍。编程模型、用户界面和基础硬件设计应追求浅层化可组合性,赋予用户更多自主权。依赖庞大、单体的抽象结构难以持久,因其无法灵活重构。

曙光初现

当前已出现反思软件危机的文化运动,如Handmade网络社区、永久计算以及复古计算爱好者群体。这些反文化迹象表明行业正逐步意识到危机的深度。改变是可能的,而如何实现改变,将成为后续探讨的主题。

25. “Technical” Skills (sashalaundy.com)

核心论点

作者强烈反对将人类简单划分为“技术型”与“非技术型”,认为这种二分法忽视了各个领域中普遍存在的、高度专业化的“技术性”技能,并导致对许多工作的价值贬低。

主要论据与例证

  1. 对“技术性”技能的重新定义

    • 作者认为,“技术性”技能本质上是用于产出工作成果的技能。每个专业领域——无论是编程、营销、销售、管理、设计,还是缝纫——都存在其特定的、可拆解、可学习、可磨练的“技术性”技能。
  2. 案例:被忽视的技术细节

    • 电影《徒手攀岩》:朋友指出该电影展示了攀岩者在“技术细节”上的准备,如心理准备、饮食、手指定位等。这揭示了最终作品背后常被隐藏的、严谨的准备工作。
    • 篮球运动员斯蒂芬·库里:他从一名不错的射手成长为历史最佳,其背后具体的训练策略、心理调整等技术细节,正是促成这种突破的关键,而这些细节通常不为外界所知。
  3. 软件行业的误导性术语

    • 在软件行业,“技术”一词被狭隘地等同于编程或软件工程技能。这导致其他领域的专业技能(如营销、销售、管理)被标记为“非技术”,从而被低估其复杂性和价值。
  4. 其他领域的“技术性”技能

    • 市场营销:涉及产品故事构建、客户洞察、渠道策略和效果评估等具体技能。
    • 销售:涉及客户筛选、沟通话术、应对推诿等具体技能。
    • 管理:涉及化解冲突、帮助员工突破瓶颈、进行建设性反馈等具体技能。
    • 日常技能(如“善于交谈”):同样可分解为准备、提问、让对方感到被倾听等可练习的子技能。
    • 缝纫:文章详细列举了其高度技术性的一面,包括选择版型、面料、立体剪裁、机器操作调试、裁剪缝制顺序等,强调其复杂程度常被“仅为手工艺”的刻板印象所掩盖。

忽视技术性技能的后果

  1. 生活变得贫乏:无法欣赏工作成果背后的精湛技艺,错失了深度审美的乐趣。
  2. 阻碍学习与成长:若认为某些能力是天生的(如“善于交际”),就不会有意识地去学习和提升。
  3. 强化不公正的权力动态
    • 通过使用“软技能”等模糊术语,或将某些工作描述为“自然擅长”,会系统地贬低那些未被社会充分认可的技术性工作(如家务、行政支持),并允许人们以“不擅长”为由逃避责任。
    • “创客运动” vs. 缝纫:前者突出了电子、机械等“技术”标签,而缝纫(同样技术性很强)却常被归类为“工艺”,这种区隔是人为的,反映了价值判断而非技能本身的复杂性。

结论与呼吁

  • 作者指出,将技能划分为“技术”与“非技术”不仅是语义问题,更是价值判断。淡化某些领域的技术性,就是淡化其价值。
  • 最后,作者邀请读者共同思考,用更精确的术语(如“软件技能”、“人际技能”、“领导技能”)来替代宽泛的“技术技能”或“他/她不是技术型的”这类表述,以促进更公平、更细致的沟通。
26. NexDock turns your smartphone into a laptop (nexdock.com)

NexPhone 智能手机介绍

NexPhone 是一款新推出的智能手机,设计具备多功能操作系统能力,可运行 Android,按需启动 Linux (Debian),并支持 双启动 Windows 11。这款设备通过支持多种操作系统,增强了智能手机的灵活性和适用性,旨在为用户提供类似笔记本电脑的多功能体验。

29. Harvester pulls 1.5 gallons of drinking water from arid air per day (newatlas.com)

标题:MIT开发新型装置,每日可从干燥空气中提取1.5加仑饮用水

麻省理工学院(MIT)研发了一种新型空气取水装置,能够从干旱空气中提取足量的饮用水。该装置采用一系列垂直排列的铜制散热片结构,散热片间相距2毫米,表面覆有专门用于吸水的沸石材料,以最大化与空气接触的表面积。

工作原理:

  1. 吸水阶段:散热片在空气中吸附水分,约一小时后达到饱和。
  2. 释水阶段:加热铜片至184°C(363°F),将吸附的水释放并收集为饮用水。
  3. 循环运行:若每天循环24次,在相对湿度30%(属干旱标准)的环境下,每升沸石涂层材料每天可产出约1.3升水。换算下来,每公斤吸附材料每日可产出高达5.8升(约1.5加仑)淡水,足以满足数人的日常饮水需求。

技术优势:

  • 高产水量:相较于部分同类设备每公斤材料仅能产出100毫升水,该装置产水量显著提升。
  • 全天候工作:区别于一些仅在夜间吸水、清晨释水的装置,该系统可实现昼夜连续运行。
  • 适应低湿度:在30%的低湿度条件下仍能保持高效工作,优于某些仅在高湿度(如70%)环境下表现良好的设计。

潜在挑战与解决方案: 该装置的主要能耗在于释水阶段所需的加热过程。研究团队指出,设备可以接入建筑、车辆等系统产生的废热或余热来驱动,从而降低能耗。

相关研究已发表于《ACS能源快报》期刊。