2024-10-01

32 篇热帖

2. Boris Vallejo and the pixel art of the demoscene (marincomics.com)

Boris Vallejo与demoscene像素艺术

Boris Vallejo是著名奇幻画家,其作品对奇幻书籍封面、电脑游戏包装盒艺术及demoscene产生了深远影响。几十年来,他的画作常被像素艺术家复制,引发诸多争议。作者重新发现了Vallejo的作品,探索了demoscene对其艺术的欣赏,并决定仅用四种颜色重新创作其一幅画作,同时录制了过程视频。

Vallejo对demoscene的影响

Vallejo的画作以理想化的战士、公主和奇幻生物为特色,风格兼具写实与想象力。在1980年代末至1990年代,demoscene艺术家常在Commodore Amiga、Atari ST和PC VGA平台模仿其风格。Demoscene作品中的超现实景观、史诗叙事和奇幻角色与Vallejo的主题高度契合。其影响力之大,甚至使他在Demozoo等demoscene数据库中拥有条目。

复制艺术作品的争议

在demoscene社区中,复制Vallejo等艺术家的作品(无论是扫描还是手绘像素化)一直存在争议。一些人认为这是学习技巧或致敬的方式,只要注明原作者即可接受;另一些人则严厉批评这种行为,认为缺乏原创性,尤其是当作品被当作自己的创作时。社区中出现了如“无复制”网站等资源,专门记录此类行为。Vallejo本人也使用模特照片作为绘画参考,但这并未消除争议。

作者的创作实验与反思

作者受demoscene色彩限制竞赛的启发,决定用仅四种颜色重新创作Vallejo 1998年的画作《Gillkarth's Odyssey》。他使用Procreate在iPad上完成了创作,并分享了过程视频。这次经历让他体会到有限色彩 palette 如何迫使艺术家聚焦于构图、形状和对比度,从而提升创造力。他最终完成的作品命名为《Wrath of the Vallerian》,在Demozoo上发布。

总结

Vallejo的艺术遗产在demoscene中依然显著,但关于复制与原创的争论持续存在。作者通过亲身实践,既表达了对Vallejo作品的欣赏,也探索了在技术限制下的艺术表达方式。文章呼吁在复制他人作品时应保持诚实,并从中学到技艺,同时认可真正的艺术性在于如何转化和重塑参考素材。

3. YC criticized for backing AI startup that simply cloned another AI startup (techcrunch.com)

YC旗下初创公司PearAI因涉嫌克隆开源项目并擅自修改许可证引发争议,事件涉及法律、开源伦理及投资方责任等多重问题。

事件起因

  • PearAI于上周六发布AI编程编辑器,但创始人Duke Pan公开承认其产品是直接克隆另一个开源项目VSCode和基于Apache许可证的AI编辑器Continue。
  • 关键问题在于PearAI最初将项目置于自创的闭源许可证(由ChatGPT生成)下,此举违反了开源社区的法律和伦理准则。

争议爆发

  • 发布帖在社交媒体上迅速引发大量批评,指出PearAI实质是“代码复制+品牌替换”,缺乏原创功能。
  • 平台X曾添加社区标注称PearAI故意误导用户以为产品是自主开发,后因不准确被移除。
  • 原项目方Continue发声,强调开源生态需建立在信任与尊重许可协议的基础上。

各方回应

  • 创始人Duke Pan:周一道歉并将许可证改回Apache,承认未清晰说明项目基于他人工作,但声称产品有差异化功能列表。
  • YC CEO Garry Tan:辩护称“开源Apache许可正是开源的优势”,但被批评者指出许可证是争议后才修改的。
  • 行业批评:博主及Hacker News用户质疑YC的尽职调查,认为此类项目反映YC的“衰退”,并质疑风投对AI项目的投资过于草率。

扩大影响

  • PearAI被指进一步放大争议:Pan炫耀辞去高薪工作,而YC已投资多个同类AI编辑器(Void、Melty)。
  • Tan以“更多选择是好事”回应,但未能平息对YC投资标准的质疑。
  • 事件反映出VC对AI赛道的追捧可能削弱对项目原创性与合规性的审查,YC计划扩大招生规模可能加剧此类风险。

核心问题

  • 开源项目的许可合规性、初创公司的透明度,以及投资机构的筛选机制成为讨论焦点。尽管PearAI已修正许可证,但其行为已损害开源社区的信任基础。
4. Gorhill pulls uBlock Origin Lite from Firefox store (www.neowin.net)

uBlock Origin Lite 从 Firefox 商店下架事件摘要

  • 事件核心:uBlock Origin Lite 扩展的开发者 Raymond Hill 已将其从 Firefox 附加组件商店下架,原因是不满该商店“荒谬且充满敌意”的审核流程。

  • 事件起因:2024年9月初,Mozilla 标记该扩展所有版本均违反其政策,指控其收集用户数据并包含“压缩、串联或其他机器生成的代码”。开发者反驳称,指控毫无依据,稍有 JavaScript 基础者即可看出问题所在。

  • 开发者决定:尽管 Mozilla 后来通过邮件承认错误并致歉,Raymond Hill 仍决定将扩展从商店撤回,并转为自托管分发。用户需从 GitHub 下载最新版本(该版本支持自动更新)。

  • 相关背景

    • uBlock Origin Lite 是基于 Manifest V3 的版本,特点是资源占用(如处理器和内存)更低、更高效。
    • 原始版 uBlock Origin for Firefox 仍在 Firefox 商店中可用且受支持。Mozilla 近期不会淘汰 Manifest V2 扩展,因此该版本在 Firefox 等支持 MV2 的浏览器上可持续使用。
    • 在 Chrome 浏览器中,原始版 uBlock Origin 曾因 Manifest V3 过渡而被标记为不受支持,开发者当时曾建议用户转向 Lite 版。
5. Show HN: qrframe – generate beautiful qr codes with javascript code (github.com)

qrframe:基于 JavaScript 的二维码生成与美化工具

qrframe 是一个基于代码的二维码生成器,灵感来源于 QRBTF 和 Anthony Fu 的 QR Toolkit,旨在通过 JavaScript 代码创建和自定义美观的二维码设计。

核心功能

  • 数据自定义:支持配置编码模式、版本、容错率和掩码图案。底层由作者开发的 Rust 库 fuqr(编译为 WASM)提供高性能支持。
  • 外观自定义:支持 SVG 和 PNG 格式输出。用户可以选择现有预设,或通过内置代码编辑器从零开始创建和修改设计。支持在代码中定义任意 UI 参数,并允许导入外部库和文件。
  • 无限制运行环境:所有自定义代码直接在浏览器的 Web Worker 中运行,没有沙盒、白名单或黑名单限制,仅设有 5 秒超时以防止无限循环。为保证性能、兼容性及调试便利,生成的 SVG 不进行安全清理(sanitize)。

预设开发与技术结构

创建一个自定义预设需要导出 paramsSchema 以及 renderSVGrenderCanvas 渲染函数。

1. paramsSchema (UI 参数定义)

用于定义传递给渲染函数的 UI 组件及其参数。支持的类型包括 numberbooleancolorselectfilearray。除 type 外,其他属性均为可选,但 select 类型必须包含非空的 options 数组,array 类型必须包含有效的 props 对象。

2. 渲染函数 (renderSVG / renderCanvas)

  • renderSVG:接收参数并返回 SVG 字符串。
  • renderCanvas:接收参数并直接操作 OffscreenCanvas 进行绘制。
  • 这两个函数均接收 params(包含 paramsSchema 中定义的 UI 输入值)和 qr(二维码数据对象)。

3. qr 数据结构

qr 对象包含最终生成的二维码矩阵信息:

  • 基础属性version(版本 1-40)、mask(掩码 0-7)、ecl(容错级别 0-3)和 mode(编码模式 0-2)。
  • matrix (Uint8Array):表示二维码的像素矩阵(大小为 (version * 4 + 17)^2)。矩阵中的每个字节(u8)使用位标志(bit flags)来标识模块的状态和类型,包括 ON(开启)、DATA(数据)、FINDER(定位图案)、ALIGNMENT(对齐图案)、TIMING(时序图案)、FORMAT(格式信息)、VERSION(版本信息)以及 MODIFIER(修饰符,用于定位和对齐中心等)。
6. Bots, so many bots (wakatime.com)

文章摘要:ProductHunt平台机器人泛滥问题分析

核心问题: ProductHunt平台已遭受严重的机器人(Bot)账号渗透,超过60%的注册用户为自动化机器人,导致评论、投票乃至产品排名严重失真。

问题发现与验证: 作者通过长期观察和实验发现,许多产品评论疑似由ChatGPT生成。为验证,他在产品描述中植入简单的LLM提示注入,结果几乎收到的所有评论均为自动化生成,证实了机器人泛滥的现象。

数据规模与机器人检测: 平台拥有超过100万注册用户、2500万条评论和2000万次投票。作者通过公开数据尝试检测机器人,方法包括:

  1. 分析行为模式:如评论时间是否呈规律性(箱状图 vs 平滑曲线)。
  2. 计算风险评分:基于账户活动时长、投票模式、与其他机器人的共同投票内容、评论文本特征(如高频使用“game-changer”一词、包含特殊字符、直接复制LinkedIn资料)等多维度指标。
  3. 聚类分析:尽管有一定效果,但因机器人账户常被弃用且数据规模限制,效果有限。 最终保守估计,机器人账号占比超过60%。

机器人活动趋势:

  • 账号注册:自2018年起,新增机器人用户数已超过真实用户。
  • 评论与投票:2022年底ChatGPT普及后,机器人评论和投票数量激增,并均已在2022年超越真实用户。
  • 影响排名:机器人会组成投票圈,付费投票以提升产品排名。数据显示,获得约15%的机器人投票是夺得每日排名第一的“安全线”;但机器人投票比例过高(如超60%)的产品反而难以获得第一。付费投票的产品质量通常一般,常位列前五而非第一。

对用户的价值影响:

  • 评论互动无意义:由于多数评论来自机器人,花时间回复评论已成浪费。
  • SEO价值为零:ProductHunt产品链接使用了nofollow属性或为JavaScript按钮,不传递SEO权重。
  • 剩余价值:平台仍可能存在部分真实用户。若通过机器人投票获得高排名进入新闻通讯,可能增加产品曝光。对于寻求投资的团队,排名第一的徽章可能对投资者有象征意义。

结论与建议: 作者认为在ProductHunt发布产品仍有一定价值,但建议仅花费极少时间准备,且绝对不要浪费时间回复评论。同时,他也指出由平台方利用内部数据能更准确地检测机器人。

7. Mozilla's lapse in judgement causes clash with uBlock Origin developer (www.ghacks.net)

Mozilla因审查失误与uBlock Origin开发者发生冲突

Mozilla最近向广受欢迎的内容拦截扩展uBlock Origin的开发者Raymond "gorhill" Hill发送邮件,称其Firefox附加组件uBlock Origin Lite存在违规行为。Mozilla指出该扩展未经用户同意收集数据、包含机器生成的代码,且缺少隐私政策,随后在Firefox附加组件商店中禁用了该扩展。

Hill在GitHub上逐一驳斥了这些指控:他指出uBlock Origin Lite并未收集任何数据,代码并非压缩或机器生成,且已明确提供隐私政策。由于认为审查过程“荒谬且充满敌意”,Hill表示不会对这些指控提出上诉。

值得注意的是,uBlock Origin Lite是兼容Manifest V3的内容拦截扩展,功能相比原版较弱。由于Google计划在Chrome中禁用Manifest V2,uBlock Origin Lite将成为Chromium浏览器的主要可用版本。而Firefox将继续支持Manifest V2,因此原版uBlock Origin扩展在Firefox上不受影响,仍正常可用。

事件在几天后出现转折:Mozilla联系Hill,承认“此前决定有误”,并恢复了该扩展。Mozilla对此“错误”致歉,建议Hill今后如有疑问可直接联系。

然而,Hill决定不将扩展重新上架至Mozilla商店,而是改为在GitHub仓库自行托管,用户可从发布页面直接下载。目前在Firefox附加组件商店中搜索uBlock Origin Lite已无法找到该扩展。

文章指出,审查流程中的错误常由自动化系统引起。虽然这类流程旨在拦截恶意扩展,但也时常误伤合法扩展。此次事件尤其反映出审查流程的不足——例如指控扩展“无隐私政策”显然与事实不符,暴露出审查人员或流程本身的问题。

Mozilla可能需要重新审视其审查流程,以避免类似失误再次发生。此次冲突是否会永久影响双方关系,仍有待观察。

8. ESO telescope captures the most detailed infrared map of the Milky Way (www.eso.org)

天文学家发布了有史以来最详细的银河系红外地图,包含超过15亿个天体,数据量达500太字节。该项目由欧洲南方天文台的VISTA望远镜完成,历时13年,是ESO望远镜有史以来规模最大的观测项目。

该地图由VISTA望远镜拍摄的20万张图像组成,覆盖了相当于8600个满月大小的天空区域,所含天体数量是2012年发布地图的10倍。VISTA的红外相机VIRCAM能够穿透银河系中弥漫的尘埃和气体,揭示隐藏区域的辐射,包括嵌入尘埃茧中的新生恒星、由数百万颗最古老恒星组成的球状星团,以及棕矮星和自由漂浮行星等低温天体。

观测从2010年开始,持续到2023年上半年,共计420个夜晚。通过多次观测同一片天空,研究团队不仅确定了这些天体的位置,还追踪了它们的运动和亮度变化。他们绘制了亮度周期性变化的恒星图,这些恒星可作为测量距离的宇宙标尺,从而首次获得银河系内部区域的精确三维视图。此外,还追踪了超高速恒星——这些恒星在与银河系中心的超大质量黑洞近距离接触后被高速抛射出来。

该地图包含VVV(银河系变量巡天)及其扩展项目VVVX的数据。这些巡天已催生了300多篇科学论文,随着观测完成,对数据的科学探索将持续数十年。未来,VISTA将升级为4MOST仪器,甚大望远镜将配备MOONS仪器,届时将获得数百万观测天体的光谱,有望带来无数新发现。

研究团队由来自全球多个机构的天文学家组成,相关论文已发表于《天文学与天体物理学》期刊。处理后的数据和天体目录可通过ESO科学门户访问。

9. Ask HN: Who is hiring? (October 2024)
10. BorgBackup 2.0 supports Rclone – over 70 cloud providers in addition to SSH (borgbackup.readthedocs.io)

BorgBackup 2.0 更新摘要

BorgBackup 2.0 是一个重大、不向后兼容的版本,主要目标是提升安全性、速度、并行性,并简化代码。现有 1.x 仓库无法直接使用,需通过 borg transfer 命令迁移数据。

主要升级变更

  1. 命令行语法变更

    • 必须使用 -r 参数或 BORG_REPO 环境变量指定仓库,移除了 scp 风格的路径。
    • 命令结构重构:仓库操作命令(如 initlist)和归档操作命令(如 createextract)被明确区分和重命名。例如,borg init 变为 borg repo-create
    • 归档标识:归档名称不再要求唯一。现在推荐使用相同名称标识一系列归档,以提高效率。单个归档通过其 ID(如 aid:d34db33f)标识。
    • 移除或重命名了多个选项(如 -P/--prefix-a/--match-archives 取代),并移除了一些已弃用的选项。
  2. 新增 Rclone 支持

    • 最重要的新特性之一是支持 rclone:// URL。
    • 此举集成了 Rclone 的能力,允许 Borg 2.0 直接备份到超过 70 个云存储提供商,包括 Amazon S3、Google Drive、Microsoft OneDrive、Dropbox、WebDAV 等,极大地扩展了存储后端。
  3. 其他重要新功能与改进

    • 并行操作:同一客户端可在同一仓库上执行并行操作。
    • 归档系列:同一名称的归档被识别为一个系列,便于管理和缓存重建。
    • 性能优化:改进了高延迟仓库(如云存储、SFTP)的操作性能。
    • 存储配额信息info 命令可显示存储配额使用情况。
    • 更灵活的归档选择:支持基于日期(--newer/--older)和更强大的模式匹配(--match-archives 支持精确匹配、通配符和正则表达式)。
    • 新增 rcompress 命令:支持对整个仓库进行重压缩。
    • 改进的退出码:可选更具体的现代退出码。

兼容性与注意事项

  • 迁移:必须先将 Borg 升级到 ≥1.2.6 以修复特定 CVE,然后才能使用 borg transfer 将归档从旧仓库迁移到新的 2.0 仓库。
  • 环境变量:平台配置目录处理有变更,部分系统下 XDG_*_HOME 可能不被支持。
  • 行为变更:一些操作的状态字符显示发生变化,--list--progress 选项在特定情况下不再允许同时使用。

总结

BorgBackup 2.0 是一个旨在现代化备份工具的突破性版本。它通过引入对 Rclone 的广泛支持,极大地提升了云存储集成的灵活性。同时,对核心架构、命令行接口和内部存储格式的重构,带来了性能、安全性和未来可扩展性的提升。用户在使用前需仔细阅读升级指南,因为许多现有脚本和配置需要进行相应的调整。

11. AI chipmaker Cerebras files for IPO (www.cnbc.com)

AI芯片制造商Cerebras提交IPO申请

公司与上市信息

  • Cerebras Systems于本周一提交首次公开募股(IPO)招股说明书,计划在纳斯达克交易所以股票代码**“CBRS”**上市。
  • 公司成立于2016年,总部位于美国加利福尼亚州桑尼维尔,首席执行官为Andrew Feldman(其曾在2012年以3.55亿美元将初创公司SeaMicro出售给AMD)。
  • 此次IPO由花旗集团和巴克莱主导,而非通常的顶级科技投资银行摩根士丹利和高盛。

核心业务与产品

  • Cerebras主要生产用于人工智能的芯片,并提供基于自有计算集群的云服务
  • 其旗舰产品WSE-3芯片在核心数量和内存方面超越英伟达(Nvidia)主流的H100芯片,且物理尺寸更大。
  • 芯片由**台积电(TSMC)**代工生产,公司提示供应链中断可能带来风险。

财务表现

  • 2024年上半年:营收1.364亿美元,净亏损6660万美元。
  • 2023年上半年:营收870万美元,净亏损7780万美元。
  • 2023年全年:营收7870万美元,净亏损1.272亿美元。
  • 2024年第二季度:营收6980万美元,净亏损5090万美元;上年同期营收570万美元,净亏损2620万美元。
  • 运营费用增长部分归因于支持收入扩张所需的人事成本增加。

市场竞争与客户集中度

  • 主要竞争对手:英伟达(Nvidia),以及AMD、英特尔、微软、谷歌,还有其他定制芯片开发商和私营公司。
  • AI芯片市场竞争激烈,亚马逊、谷歌和微软等云巨头也在研发自有AI芯片。
  • 客户高度集中:阿联酋AI公司Group 42(G42) 是核心客户,贡献了2023年公司83%的收入。G42承诺在2025年3月前向Cerebras采购总计14.3亿美元的产品。G42目前持有Cerebras不到5%的A类股,并拥有基于采购量的额外购股选择权。

投资者与估值

  • 主要投资者包括风险投资公司Foundation Capital(最大股东)、Benchmark、Eclipse Ventures,以及Alpha Wave、Coatue和Altimeter(各持股至少5%)。
  • 其他知名投资者包括OpenAI首席执行官Sam Altman和Sun Microsystems联合创始人Andy Bechtolsheim。
  • 个人股东中,仅CEO Andrew Feldman持股比例超过5%。
  • 公司在2021年的一轮融资中估值超过40亿美元

行业背景

  • 2024年科技IPO市场总体清淡,主要受高利率影响,投资者更青睐盈利资产。此前,Reddit和Rubrik等公司已完成上市。
  • 美联储自2020年以来首次降息,推动了以科技股为主的纳斯达克综合指数上涨。
  • Cerebras CEO在相关视频中声称,公司的推理服务速度比英伟达快20倍,且价格仅为一小部分。
15. Apple No Longer in Talks to Invest in ChatGPT Maker OpenAI (www.macrumors.com)

苹果公司已退出对OpenAI(ChatGPT开发商)的投资谈判。此前,该公司曾计划参与OpenAI预计筹集约65亿美元的融资轮,但近期原因不明地退出了谈判。该融资轮预计于本周结束。

一个月前,曾有报道称苹果考虑向OpenAI投资,当时OpenAI的估值可能超过1000亿美元,这反映了人工智能领域的激烈竞争。虽然苹果退出,但其他科技巨头仍在参与:微软(已投资130亿美元)预计在本轮中再投入约10亿美元,英伟达也在谈判中。

苹果退出的决定可能出乎意料,因该公司此前已宣布计划将ChatGPT集成到Siri和即将发布的iOS 18、iPadOS 18及macOS Sequoia中。据报,OpenAI内部动荡(如其向营利性结构转型)可能影响了苹果的决策。不过,苹果平台的ChatGPT集成计划仍预计在今年年底前进行,届时用户可免费使用,而ChatGPT Plus订阅者将能使用付费功能。

补充背景信息

  1. OpenAI后续动向:OpenAI已将ChatGPT的默认模型升级至GPT-5.5 Instant,在准确性、图像分析和STEM问题解答方面有所提升。同时,OpenAI正考虑因与苹果的“紧张关系”而对其采取法律行动,这与双方2024年将ChatGPT集成到Siri等服务的合作有关。
  2. 产品更新:OpenAI已将Codex编码代理引入ChatGPT移动应用,支持在移动设备上远程访问在Mac等设备上运行的Codex会话。
16. The Netherlands has returned some stolen artifacts to Indonesia (www.smithsonianmag.com)

荷兰向印度尼西亚归还288件殖民时期掠夺文物

荷兰政府已将288件在殖民时期从印度尼西亚掠夺的文物归还给其原属国。这些文物包括武器、钱币、珠宝和纺织品等。荷兰教育、文化和科学大臣埃波·布鲁因斯表示:“这些物品本就不该出现在这里。殖民时期存在掠夺和抢劫行为,以及其他非自愿的文化物品流失。归还它们是实现物质正义。”

2024年9月20日在阿姆斯特丹世界博物馆举行的仪式,是荷兰自2020年以来第二次向其前殖民地归还掠夺文物。此前,独立的殖民地收藏委员会发布报告建议荷兰采取归还行动。首次归还发生在2023年7月,荷兰政府将478件文物归还给了印度尼西亚和斯里兰卡。

此次归还的文物中包括四件印度教-佛教雕塑。其中一尊象头神(Ganesha)雕像于1843年由一名殖民官员下令从东爪哇运往荷兰。另外三件描绘拜拉瓦(Bhairava)、南迪(Nandi)和梵天(Brahma)的雕像,则是在19世纪中叶取自东爪哇的辛加萨里(Singasari)寺庙遗址。

然而,大部分归还的文物源于1906年荷兰在南巴厘岛发动的战争。当时,荷兰军队袭击了巴东(Badung)和塔巴南(Tabanan)王国。据记载,约有1000名巴厘人在冲突中丧生,而荷兰方面仅有四人阵亡。一周后,荷兰军队进攻塔巴南王宫并逮捕了国王,国王与王储在当夜自杀。

殖民地收藏委员会在其咨询报告中将这些物品分为几类:“官方掠夺品”,如被废黜的巴厘国王的财物;被没收的钱币和武器;以及一名荷兰艺术家个人收藏中与1906年冲突相关的物品(通过购买或其他方式获得)。印尼政府已于去年9月正式请求归还这些具有重要文化意义的物品,统称为“巴东普普坦收藏”。

委员会目前正在为来自尼日利亚、斯里兰卡、印度和印度尼西亚的其他归还请求准备建议。尽管有批评者担心较贫困的国家可能无法妥善保管归还的文物,但荷兰国家世界文化博物馆总馆长玛丽克·范·邦默尔对此回应道:“窃贼无权告诉物主该如何处置自己的财产。”

17. Ask HN: Should you reply STOP to unwanted texts?
18. Essential node in global semiconductor supply chain hit by Hurricane Helene (www.npr.org)

摘要:

位于美国北卡罗来纳州斯普鲁斯派恩镇(人口2194人)遭受飓风“海伦妮”重创,超过2英尺的降雨导致该镇被淹,道路、商店、电力及供水系统被严重破坏,社区一度与外界隔绝。此次灾害的影响可能远超本地,因为该镇是全球半导体与太阳能电池板关键原材料——高纯度石英的主要且近乎唯一的来源。

高纯度石英用于制造半导体硅片生产过程中必需的石英坩埚等设备,因其能耐受极高温度并保持绝对纯净。专家指出,硅片制造过程中对纯度要求极高,杂质原子的存在可能导致生产失败。虽然俄罗斯和巴西也供应高品质石英,但斯普鲁斯派恩的储量和质量均居世界首位,且目前尚无可行的替代来源。

飓风导致当地两大石英供应商(Quartz Corporation和Sibelco)自9月26日起停止运营,且恢复时间未知。此外,主要运输石英的CSX铁路线因沿河洪水而严重受损,即便矿山完好,产品运输也面临挑战。

行业分析认为,若供应中断仅持续短期,芯片制造商尚有库存可缓冲;但若中断持续数周以上,将严重冲击半导体光伏产业的生产。太阳能电池板主要生产国中国也高度依赖该地区的石英进口。此次事件凸显了全球供应链对单一区域特定原材料的脆弱性,尽管行业长期存在担忧,但寻找替代来源的努力迄今未有实质性进展。

此次自然灾害再次引发了对关键材料供应安全的关注,美国和中国正在全球范围内竞相确保半导体和绿色技术所需原材料的获取,但在高纯度石英领域,北卡罗来纳州的地位目前仍难以取代。

19. Peer Calls: WebRTC peer to peer calls for everyone (github.com)

Peer Calls v4 摘要

项目概述
Peer Calls 是一个开源的 WebRTC 点对点通话项目,旨在为所有人提供便捷的实时音视频通话服务。最新版本 v4 的核心用 Golang 完全重写,并引入了可选的选择性转发单元(SFU)模式以优化带宽使用。

核心更新与功能

  1. 架构重写:后端由 Node.js 迁移至 Go,提升了性能和稳定性。
  2. SFU 支持:通过环境变量 NETWORK_TYPE=sfu 启用,服务器作为媒体中转节点,显著降低用户端的上传带宽消耗。此功能基于 pion/webrtc 库实现。
  3. 用户体验改进
    • 支持在通话中动态切换音视频设备。
    • 优化工具栏布局,支持点击收起。
    • 多视频采用全尺寸网格显示,可独立最小化。
    • 可禁用视频裁剪。
    • 改进文件发送功能,支持传输大于 64/256KB 的文件。
    • 改进桌面共享、设备列表显示及邀请链接复制功能。
  4. 问题修复:包括工具栏图标在 iOS 12 的显示、视频自动播放、不支持浏览器的警告提示等。

SFU 待办事项
SFU 功能仍在完善中,计划支持:动态流增删、RTCP 包(PLI、REMB)处理、抖动缓冲区、多节点集群、被动 ICE TCP 候选以及端到端加密。

技术栈与要求

  • 后端:Go 1.19.5+,使用 pion/webrtc、chi、websocket 等库。
  • 前端:Node.js 18.13+,基于 React、Redux、TypeScript。
  • 部署:支持预编译二进制文件(Linux、macOS、Windows)、Docker 镜像(ghcr.io/peer-calls/peer-calls)及 Kubernetes 部署。

安装与配置

  • 运行方式
    1. Dockerdocker run -p 3000:3000 ghcr.io/peer-calls/peer-calls:latest
    2. 源码构建git clone 后执行 npm install,开发运行 npm start,生产构建执行 npm run buildnpm run build:go:linux
  • 配置:主要通过 YAML 配置文件或环境变量进行。关键配置项包括:
    • NETWORK_TYPE:选择 mesh(P2P 网状网络)或 sfu(选择性转发)。
    • PEERCALLS_STORE_TYPE:会话存储类型,支持 memoryredis(用于多实例共享)。
    • PEERCALLS_ICE_SERVER_*:配置 ICE/TURN 服务器。
    • PEERCALLS_TLS_*:启用 TLS。
    • PEERCALLS_NETWORK_SFU_*:配置 SFU 的协议、端口范围、接口等。
  • 访问:默认监听 0.0.0.0:3000。从外部网络访问设备媒体通常需要启用 TLS。

高级网络配置

  • ICE TCP:支持被动 TCP 候选,可帮助 UDP 受限的用户通过 TCP 连接 SFU,减少对 TURN 服务器的依赖。需在 PEERCALLS_NETWORK_SFU_PROTOCOLS 中添加 tcp4,tcp6
  • TURN 服务器:当直接连接失败时可配置,文章提供了使用 coturn 进行配置的示例。
  • 日志与监控:可通过环境变量 PEERCALLS_LOG 和浏览器端 localStorage 调试日志。支持 Prometheus 监控,需设置访问令牌。

浏览器支持
支持 Firefox、Chrome(包括移动版)、Safari(iOS 11+)。不支持 Microsoft Edge(因其不支持 DataChannels)。调试时可使用 about:webrtc(Firefox)或 chrome://webrtc-internals

许可与支持
项目采用 Apache 2.0 许可证,由 rondomoon 赞助。

20. Sometimes the product innovation is the distribution (interconnected.org)

分销即创新:通过渠道拓展触达客户

文章核心观点是,产品创新未必局限于产品本身的技术或功能革新,创新性的分销策略同样能开辟市场、触达全新客群,甚至成为企业成功的关键因素。

1. 案例一:Moleskine笔记本借用图书分销渠道

  • 关键策略:Moleskine笔记本虽非书籍,但因其尺寸与书籍相近,获得了国际标准书号(ISBN)。
  • 分销创新:利用ISBN,Moleskine得以进入图书批发商的分销系统。这使得它能够与书籍一同被仓储、订购,并送达书店销售。
  • 成效:此策略使Moleskine能够无缝对接书店现有的贸易账户、信用体系、订购系统和物流网络,极大降低了书店的采购门槛和麻烦,从而在早期迅速普及。文中举例说明,一个通过自动售货机售书的微型书店,正是因为图书批发商渠道和ISBN机制,才引入并成功销售了Moleskine。
  • 类似案例:文章提到“Psychobox”(一种装有错觉玩具和小册子的盒子)也采用了相同的ISBN策略,使其能够进入图书货架销售。

2. 案例二:音乐专辑以USB形式在体育用品店销售

  • 背景:在CD向MP3过渡的时期,数字音乐盗版猖獗。
  • 分销创新:一家大型音乐出版商(可能是EMI)将新专辑的数字文件预装在挂绳USB记忆棒中。
  • 渠道选择:选择在主流体育生活方式连锁店(如JD Sports)进行销售。
  • 成效:此举将产品放置在了目标客户(年轻人)日常购物的必经之处,同时利用了USB存储设备当时作为实用工具的需求,将数字音乐产品变得便捷、可见且具实用价值,是一种聪明的渠道借用。

3. 核心思维转换 文章指出,人们思考产品创新时通常关注“客户需求如何变化”或“技术如何变化”,并以此调整产品。但本文提倡另一种思路:

  • 从分销渠道出发:思考“我们的客户聚集在哪里?”,“能否找到新颖的分销方式,让产品触达这些地方?”。
  • 甚至先于产品定义:可以先探索哪些市场已有成熟高效的分销渠道和合作伙伴,然后思考“如何利用(或‘劫持’)这些渠道来分发自己的产品?”。

4. 对设计师的启示与作者提议 文章观察到,许多设计师或独立工作室拥有优秀的创意产品,但在将其商业化时面临障碍,主要原因往往是对“推向市场”的过程感到陌生或困惑。

  • 观点:有时只需对市场方向或分销策略进行微调,产品就会变得更具可行性和吸引力。
  • 提议:作者(尤其面向伦敦和英国的设计工作室)开放交流,愿意分享关于产品商业化和分销策略的知识,为设计工作室提供咨询和支持。
21. Show HN: Facad – A colorful directory listing tool for the command line (github.com)

Facad:一个现代化的命令行目录列表工具

概述

Facad 是一个专为命令行设计的、现代化的、彩色的目录列表工具。它旨在通过融合功能性与简洁性,改善文件管理体验,同时满足新手和高级用户的需求。

核心功能

  • 直观的文件类型展示:通过视觉方式区分不同文件类型。
  • 排序输出:结果排序,且目录始终优先显示。
  • 四列布局:提供快速浏览和分析目录内容的视图。
  • 全面支持:兼容符号链接和可执行文件。
  • 按扩展名排序:支持根据文件扩展名进行排序。
  • Unicode 感知:具备良好的 Unicode 格式支持。

技术特点与安装

  • 无依赖:使用纯 C 语言编写,无需任何外部依赖。
  • 跨平台支持
    • macOS:可通过 Homebrew 安装。
    • Arch Linux:可使用 AUR 脚本安装。
    • 从源码构建:支持通过 Git 克隆仓库,并使用 Meson 和 Ninja 进行编译安装。

使用方法

  • facad:运行默认的网格视图文件列表。
  • facad -h--help:显示帮助信息。
  • facad -v--version:显示版本信息。
  • facad -l--long:以长格式输出详细信息。
  • facad -a--analytics:输出目录分析信息。

项目信息

  • 开源:项目欢迎贡献,遵循标准的 Fork -> Branch -> Pull Request 流程。
  • 作者:Sergey Veneckiy。
  • 许可证:基于 MIT 许可证分发。
23. Generate pip requirements.txt file based on imports of any project (github.com)

文章总结

本文介绍了pipreqs工具,其核心功能是根据项目源代码中的import语句,自动生成一个requirements.txt文件。

安装方式

  • 标准安装:直接运行 pip install pipreqs
  • 不支持Jupyter Notebook的简化安装:如无需该功能,可执行以下两条命令进行安装:
    pip install --no-deps pipreqs
    pip install yarg==0.1.9 docopt==0.6.2
    

基本使用

  • 命令格式pipreqs [选项] [<路径>]
  • 路径参数:指定要扫描的项目目录,默认为当前工作目录。

主要选项

  • --use-local:仅使用本地包信息,不查询PyPI服务器。
  • --pypi-server <url>:使用自定义的PyPI服务器。
  • --proxy <url>:使用代理(也可通过环境变量HTTP_PROXY/HTTPS_PROXY设置)。
  • --debug:打印调试信息。
  • --ignore <dirs>...:忽略指定的额外目录(逗号分隔)。
  • --no-follow-links:不跟踪项目中的符号链接。
  • --ignore-errors:扫描文件时忽略错误。
  • --encoding <charset>:指定打开文件的编码。
  • --savepath <file>:将需求列表保存至指定文件。
  • --print:将需求列表输出到标准输出。
  • --force:覆盖已存在的requirements.txt文件。
  • --diff <file>:比较现有requirements.txt中的模块与项目实际导入的差异。
  • --clean <file>:清理requirements.txt,移除项目中未导入的模块。
  • --mode <scheme>:启用动态版本控制方案:
    • compat:生成如 Flask~=1.1.2 的兼容版本约束。
    • gt:生成如 Flask>=1.1.2 的大于等于版本约束。
    • no-pin:仅生成包名,如 Flask,不固定版本。
  • --scan-notebooks:扫描Jupyter Notebook文件中的导入。

使用示例

执行 pipreqs /home/project/location 成功后,将在指定目录下生成requirements.txt文件,内容示例为:

wheel==0.23.0
Yarg==0.1.9
docopt==0.6.2

pip freeze 的优势对比

  • pip freeze 会导出当前Python环境中所有已安装的包,包含许多并非当前项目直接使用的依赖。
  • pipreqs仅扫描项目代码,只生成项目实际导入的依赖列表,更为精准和轻量,特别适合为新项目初始化依赖文件,或确保生成的依赖文件不包含无关包。
24. Pear AI founder: We made two big mistakes (twitter.com)

发生了一个错误,但建议不要担心,可以再次尝试。问题可能由隐私相关扩展引起,这些扩展可能导致在 x.com 上出现故障,因此请禁用这些扩展后重新操作。

25. Dockworkers at ports from Maine to Texas go on strike (apnews.com)

美国东海岸码头工人罢工事件摘要

罢工基本情况

  • 从缅因州到德克萨斯州的36个港口码头工人于周二凌晨开始罢工,这是国际码头工人协会(ILA)自1977年以来的首次罢工。
  • 罢工直接影响约45,000名工会成员,争议焦点为薪资涨幅自动化限制
  • 资方(美国海事联盟)与工会谈判中,工会最初要求6年内加薪77%,资方最终提议加薪50%并承诺延续原有自动化限制,但被工会拒绝。

双方核心立场

  • 工会诉求:要求大幅加薪以弥补通货膨胀及过去多年微薄涨幅,并坚持全面禁止自动化以保护工作岗位。工会领导层表示将坚持罢工直至达成公平协议。
  • 资方回应:提出加薪50%、提高退休金贡献并加强医保,但坚持保留一定自动化条款。双方自六月以来未进行正式谈判,目前分歧仍存。

潜在经济影响

  • 短期影响:零售业已提前囤货,暂未显现明显冲击,但罢工若持续数周将严重影响供应链。
  • 具体风险
    • 易腐进口品(如香蕉,占全国供应量75%)将迅速短缺。
    • 出口受阻可能波及西海岸港口,铁路运力无法完全替代东部港口停运缺口。
    • 摩根大通估计,东海岸及墨西哥湾港口关闭可能每天造成38亿至450亿美元经济损失。
  • 长期后果:供应链延误可能延续至2025年,导致假日季商品交付延迟、价格上涨。

政治与行政反应

  • 总统拜登明确表示**不计划援引《塔夫脱-哈特利法》**干预罢工,但已指示白宫官员督促双方谈判。
  • 罢工发生于总统大选前数周,若引发商品短缺可能影响选情。
  • 政府强调谈判需平衡航运公司近年利润增长与工会工人的贡献。
26. Ask HN: Who wants to be hired? (October 2024)
28. Evolving GitHub Issues (github.blog)

GitHub Issues 功能演进

GitHub Issues 自 2009 年推出以来,一直是全球顶尖软件团队的主要协作工具。如今,GitHub 对 Issues 和 Projects 进行了一次重大升级,新增了多项备受期待的功能,包括子任务、问题类型和高级搜索,旨在帮助用户更轻松地分解任务、可视化进度、分类并精准查找问题。这些新功能现已进入公开测试阶段。

核心新功能

  1. 子任务:允许在问题间建立父子层级关系,便于分解和组织工作。用户可以从任何问题创建子任务,并利用嵌套结构跟踪进度和剩余工作量。子任务的进度也可在项目中被追踪。
  2. 问题类型:提供了一种在组织所有仓库中统一使用的一致分类方式来管理问题。这有助于用户快速了解错误积压、高层级计划进展以及项目工作的构成。
  3. 高级搜索:在仓库的问题页面中,用户现在可以使用 ANDOR 关键字和括号来构建复杂的嵌套搜索,从而更精确地筛选和定位所需的问题。

界面与体验优化

  • 更新后的 Issues UI:基于对前端的更新,界面设计旨在保持快速和熟悉感,未引入新的UI模式。改进包括:
    • 问题索引页面的新过滤栏支持自动补全和语法高亮。
    • 新增“继续创建”选项,便于连续快速创建多个问题。
    • 问题表单和模板现在按文件名字母顺序排序,易于自定义顺序。
    • 新增“复制链接”按钮,方便分享问题URL。
    • 在长问题中,“加载更多”现在会加载150条事件,而非之前的50条。

项目容量提升

  • GitHub Projects 项目容量增加:此前仅限私测的项目容量提升(从1,200项增至50,000项)现已扩大测试范围。自私测以来,已增加了对“slice by”、泳道和GraphQL API的支持,修复了主要的错误报告并优化了性能。项目管理员在项目接近旧容量限制时,会收到横幅通知。此更新按项目逐步推行,用户可在符合条件的项目上点击“加入候补名单”按钮参与。

参与测试与反馈

所有上述新功能现已进入公开测试阶段。用户可通过注册获得访问权限,并提交使用反馈。

29. Determinism in League of Legends: Implementation (2017) (technology.riotgames.com)

本文详细介绍了《英雄联盟》游戏服务器实现确定性的技术过程与核心决策。确定性指在固定输入下,过程始终产生相同输出。实现它使Riot能够开发确定性灾难恢复工具,并提高了代码库的健壮性。

实现过程耗时约一年,核心步骤包括:

  1. 定义与验证目标:目标定为“游戏玩法确定性”,即仅确保影响玩家与游戏关键交互的状态确定,而非100%的内存状态一致。
  2. 识别与控制输入:将输入分为可控与不可控。不可控输入(如玩家操作、随机数)通过服务器网络录制系统进行记录与回放。回放时需在低层网络之上建立适配器来模拟“伪造客户端”。
  3. 统一时钟系统:将服务器中6个不同的时钟/计时API统一为一个统一时钟,这是项目最大的技术障碍之一。最终采用了可变帧增量时间,并通过SNR记录每帧时间。
  4. 处理关键输入源
    • 服务器启动配置:录制并重写启动代码以支持回放。
    • 随机数生成器:统一为自研的基于XOR-SHIFT的PRNG,并使用全局唯一游戏ID作为种子。
  5. 解决技术挑战
    • 未初始化变量:推动采用C++11内联成员初始化,并利用工具监控和修复。
    • 异步与多线程:服务器主循环本身是单线程设计,且预加载数据避免了I/O竞争,从而避免了主要的多线程非确定性问题。
    • 内存地址与指针比较:接受内存地址本身的非确定性(包括ASLR),但指针比较可能导致的迭代顺序分歧则主要通过在不同操作系统间回放来测试和发现。
    • 隔离非确定性系统:对网络层等非确定性系统,通过适配器将其与确定性游戏逻辑隔离。

最终,Riot成功交付了确定性服务器,并由此获得了改进的开发工作流、强大的回放与测试工具,以及面向未来的技术基础。

31. Product Hunt isn't dying, it's becoming gentrified (launchpointzero.com)
  • 核心论点:文章认为Product Hunt并未消亡,而是经历了一种“中产化”过程,其社区生态和运作方式发生了根本性改变。
  • 过往与现状:Product Hunt最初是一个酷炫的小社区,独立开发者和小团队在此发布副业或小本项目,以期获得关注甚至收入。但随着平台规模、流量和可见度增长,其商业价值被挖掘,吸引了资本雄厚的玩家。
  • 中产化的比喻:作者将其比作一家开在平价街区的时髦咖啡馆。社区成员的聚集提升了该地点的吸引力,最终引来了拥有更多资本的竞争者,推高了“租金”,使原社区成员难以获得关注,甚至被“挤出”。
  • 具体变化表现
    • 风投支持的公司和资本雄厚的团队利用资金优势,在Product Hunt上进行推广,确保其产品发布能进入前五名。
    • 平台出现了付费服务,专门承诺帮助产品成为当日发布第一名。
    • 一些广受欢迎的核心成员离开(如Jason Levin事件),公司也进行了大幅裁员。
  • 对独立开发者的影响:这些变化使得“副业开发者”、“独立创业者”和“自力更生的小团队”在平台上获得关注和收入变得比以往困难得多。
  • 作者的建议与展望
    • 如果想要寻找Product Hunt过去那样的生态,开发者可能需要另寻他处,但大多数替代平台缺乏Product Hunt曾拥有的社区和信誉。
    • 创建一个“新Product Hunt”并非易事,不能仅仅是复制一个产品提交和发布网站。关键是要构建促进交流的社区,并需要防范可能出现的刷票等作弊行为。作者希望有人能尝试,但也承认挑战巨大。
32. Comparing our Rust-based indexing and querying pipeline to Langchain (bosun.ai)