2024-12-28

33 篇热帖

1. They have not been trained for this (www.ccc.de)

文章摘要:

波兰列车制造商Newag在37C3大会上被三名黑客揭露,其列车软件被设计为当长时间停放在竞争对手维修厂或疑似未经官方维修时,会自动进入“休眠”状态,且仅能由Newag技术人员解除。此举被指意图垄断维修服务。

Newag对此回应强硬,对黑客提起刑事和民事诉讼,试图压制相关研究。诉讼至今已花费黑客约3万欧元。

混沌计算机俱乐部(CCC)支持黑客并发起募捐,用于覆盖其法律费用。所有捐款转入CCC账户,参考信息为“Lokomotive”。若筹款超过所需金额或诉讼费用退还,多余资金将用于CCC法定目标。

截至2025年1月8日,CCC已收到529笔转账,共计31,088.89欧元,超出最初3万欧元的目标。相关续篇演讲已于38C3大会举行,并提供线上回放。

2. Scale Model of Boeing 777-300ER, Made from Manila Folders (www.lucaiaconistewart.com)

波音777-300ER马尼拉文件夹模型项目

项目起源与背景

该项目始于高中建筑课程,作者在使用马尼拉文件夹制作建筑模型时,逐渐发现了纸张材料的多用性,并决定挑战用非常规形状制作飞机模型。项目于2008年5月启动,历经多年多次修订,最终发展成为一个高度精细、逼真的波音777-300ER飞机模型。最初的草图为手工绘制,后期为追求更高的精度和细节,开始使用Adobe Illustrator软件设计部件并直接打印到文件夹上。

核心制作流程

制作过程主要分为三个阶段:

  1. 研究阶段:尽可能多地收集参考资料,包括网络照片、视频以及技术图纸。通过研究这些材料,理解飞机特定部分的固有形状和功能。
  2. 设计阶段:主要工作是将三维形状分解为可打印和组装的二维切片。使用Adobe Illustrator为所有部件创建二维设计图。过程通常从确定部件的大致形状和尺寸开始,然后逐步添加更多细节和功能性。在设计“冻结”后,会将其分解为单独的部件,并排版用于打印。对于复杂或不确定的部件,会先制作小型测试段以验证设计。
  3. 打印与组装阶段:此阶段耗时巨大。将文件夹裁切至适合打印机尺寸,直接将设计图打印在上面。随后用Xacto刀切割出各个部件,分区域组装,并使用Tacky胶水粘合。复杂的部件(如包含活动功能和成千上万个小部件的机翼)通常由许多更小的子部分单独组装后再组合而成。

使用工具

项目主要使用的工具包括:Xacto刀、切割垫、直尺、角尺以及用于精确涂抹胶水的牙签。

项目展示

该项目通过专门的网页展示了飞机不同部分的详细制作信息,并附有丰富的照片和视频资料。页面也列出了获得的相关媒体报道链接,并提供了关注项目更新的渠道。

3. Where can you go in Europe by train in 8h? (www.chronotrains.com)

本文是一个Cloudflare安全验证页面,标题为"Where can you go in Europe by train in 8h?",但实际内容并非旅行信息,而是网站访问时的自动化挑战机制。页面主要功能是进行用户验证,要求启用JavaScript和cookies才能继续访问目标内容。

目的:该页面用于防止机器人或恶意软件自动访问网站,通过Cloudflare的托管挑战(managed challenge)机制验证用户是否为人类,确保网站安全。

结构

  • HTML头部:包含标准元数据,如字符集(UTF-8)、视口设置(viewport)、robots指令(noindex, nofollow)以及内容安全策略(content-security-policy),限制资源加载来源(如脚本仅允许来自挑战域名)。
  • 样式部分:使用内联CSS定义页面布局,设置主内容居中,并优化移动设备显示。
  • 主体内容:包含一个noscript元素,显示错误信息"Enable JavaScript and cookies to continue",提示用户需要启用相关功能。
  • 脚本部分:执行Cloudflare挑战脚本,通过一系列配置参数(如cFPWv、cH、cN、cRay等)初始化验证流程。脚本动态创建并加载外部资源(来自/cdn-cgi/challenge-platform/),并使用历史API(history.replaceState)管理URL状态,以便在验证完成后重定向用户。

关键功能

  • 安全验证:利用Cloudflare平台进行自动化挑战,可能涉及计算或交互式验证,以区分人类用户和机器人。
  • 资源限制:内容安全策略严格限制了可加载的资源类型和来源,增强页面安全性。
  • 用户体验:页面设计简洁,只在必要时显示提示,并尝试在验证后无缝恢复访问。

此页面不包含旅行相关信息,而是技术性的安全中间件,用于保护后端内容。实际旅行指南内容可能被此验证层阻挡,需通过启用浏览器功能才能访问。

4. Cable-cutting tanker seized by Finland 'was loaded with spying equipment' (www.lloydslist.com)

摘要

芬兰当局扣押了一艘与俄罗斯相关的油轮。该油轮此前被怀疑参与了海底电缆的破坏活动,而在被扣押后,调查人员发现其上装载了间谍设备。这一发现进一步加剧了该事件与地缘政治紧张局势的关联。

5. Plasticlist Report – Data on plastic chemicals in Bay Area foods (www.plasticlist.org)

PlasticList 报告摘要:旧金山湾区食品中的塑料化学物质数据

报告发布信息:发布于2024年12月27日,最后更新于2024年12月31日。

一、 项目概述

  • 起源与目标:源于对内分泌干扰物(EDCs)公共健康影响的关注,旨在精确检测湾区居民日常食用的食品中塑料化学物质的含量。
  • 规模与成本:团队4人,历时6个月,测试了近300种食品产品,成本约50万美元。
  • 样本与测试:收集了来自312种食品的775份样本,由一家经ISO/IEC 17025认证的实验室进行测试,共检测18种化学物质。最终测试了296种食品的705份样本。

二、 核心发现

  1. 普遍检出:在86% 的测试食品中检测到至少一种塑料化学物质。
  2. 检出范围
    • 在所有测试的婴儿食品、产前补充剂、母乳、酸奶和冰淇淋中均检出。
    • 在Starbucks、Gerber、Chobani、Whole Foods等多个知名品牌产品中检出。
    • 即使是高端、有机食品(除O Organics鸡蛋外)也大多含有塑料化学物质。
  3. 超标情况
    • 22种产品的样本超过了欧洲食品安全局(EFSA)设定的**双酚A(BPA)**每日摄入限值(基于70公斤体重),超标幅度从450%到32,571%不等。
    • 2个瓶装水品牌的样本超过了美国食品药品监督管理局(FDA)对**邻苯二甲酸二(2-乙基己基)酯(DEHP)**的限值(分别超标217%和283%),但这些品牌的其他样本未超标。
  4. 化学物质分布
    • 邻苯二甲酸酯邻苯二甲酸酯替代品在73%的产品中检出。
    • 双酚类在22%的产品中检出。
    • DEHP(原邻苯二甲酸酯)和DEHT(替代品)检出率最高,约70%;DBP检出率50%。

三、 关键议题探讨

  1. 安全限值的可靠性

    • 报告指出,当前由EPA、EFSA等机构设定的安全限值存在不一致、过时的问题。例如,BPA的EFSA限值在去年被大幅降低20,000倍,但EPA的限值自1988年以来未更新。
    • 监管存在“补丁式”问题,如DIBP在玩具中被禁,但在食品中无安全限值。
    • 许多半衰期基于几十年前的旧研究和NOAEL方法,未能纳入低剂量效应、非单调剂量反应和累积效应等新科学认知。
    • 结论:用现代科学重新计算,安全限值可能会更低、更一致,但可能仍高于人们的实际摄入量。
  2. 对婴儿的潜在风险

    • 发现所有测试的婴儿食品、配方奶和母乳中均含有塑料化学物质(如DEHP、DBP)。
    • 引用研究指出,产前暴露于某些邻苯二甲酸酯可能与男性生殖器发育异常(如肛殖距缩短)和儿童智商降低6-7分相关。
    • 这些效应在典型的人群暴露水平下观察到,具有公共健康意义。
  3. 加工与包装的影响

    • 加工程度:加工较少的食品(如水、咖啡、牛奶、农产品)平均检出水平(16,201纳克/份)显著低于高度加工食品(如汉堡、复杂饮料,82,782纳克/份)。
    • 外卖容器:热食在塑料外卖容器中存放45分钟后,塑料化学物质总水平升高34%(其中替代品升高40%,原邻苯二甲酸酯升高15%)。
    • 农场 vs 商店:直接来自农场的生牛奶和牛肉,其邻苯二甲酸酯和双酚类水平通常低于商店产品,但替代品水平可能更高。
  4. 特定场景测试

    • 瓶装水 vs 自来水:两者化学物质水平差异不大。玻璃瓶与塑料瓶装水水平也相似。
    • 水过滤器:Brita过滤后的水中偶尔检出DEHT,但无法确定是滤除还是引入。Berkey过滤未显示问题。
    • 热水暴露:将Fiji水瓶置于炎热车内1小时后,化学物质水平未升高,与预期相反。
    • 热敏收据:含有高浓度的**双酚S(BPS)**及其他化学物质,可迁移到水中,且浓度极高。

四、 方法论说明与局限

  • 重要免责声明:报告明确指出,这些是初步的原始测试结果快照,仅代表特定时间点、小批量样本,不应据此得出高置信度结论或制定政策建议。不同测试方法可能产生不同结果,且化学物质的存在不一定意味着安全问题。
  • 样品变异性:购买两份相同产品,化学物质水平平均相差59%;来自同一批次的三份样品平均相差33%。
  • 数据公开:所有结果均已公开,并附有详细的方法论说明,供他人复制和验证。

五、 总结性观点

  • 团队立场:基于现有证据,认为塑料化学物质对婴儿构成值得关注的风险,值得进一步研究。对于非妊娠成人,证据尚不充分,未显著改变团队自身的饮食习惯。
  • 未来方向:呼吁进行更多研究以复制结果、调查污染源、改进安全限值评估方法。
6. I automated my job application process (blog.daviddodda.com)

提供的文章内容仅为“Vercel Security Checkpoint | hkg1::1780034532-FsB0cnI69NCxXqOjYGPUcIkZ3wwV3Ugc”,这是一个网站(Vercel)的安全验证页面信息及会话标识符,并未包含文章《I automated my job application process》的实际内容。

因此,无法基于给定内容生成准确的摘要。

7. EmacsConf 2024 Notes (sachachua.com)

EmacsConf 2024 备忘录总结

本文是对 EmacsConf 2024 在线会议组织工作的全面回顾,涵盖了会议数据、技术架构、流程管理及经验总结。

一、会议概况与数据

  • 规模:共举办 31场 演讲,总时长 10.7小时;进行了 21场 网络问答(Q&A),总时长 7.8小时
  • 参与:会议分两天(周六、周日),采用双轨道(gen/dev)和单轨道模式。观众峰值在周六的 dev 轨道达到 226人(主流) + 79人(低分辨率流)。
  • 成本:全年总费用约 198.48美元(含税),主要用于云服务器(Linode)托管和测试。

二、技术基础设施与运行

  1. 服务器配置
    • 用于网络会议的 meet 服务器配置较高(16GB/8核),CPU 峰值使用率达 409%。
    • 媒体流、前端、直播等服务器根据负载进行了差异化配置。
  2. 流媒体与直播
    • 480p 低分辨率备用流运行稳定。
    • 成功使用 OBS 直接向 YouTube 直播,并通过脚本设置倒计时屏幕,展示随机有趣的包信息。
    • 60fps 视频可能导致流媒体服务器掉帧,建议明年降采样至 30fps。
  3. 网络会议(BigBlueButton)
    • 升级至 BBB 3.0,并部署在专用的虚拟私有服务器上。支持智能布局,便于共享屏幕时查看摄像头。
    • 峰值同时在线用户数达 107人,最大单场会议人数 25人
    • 设置过程中遇到一些稳定性问题,有待明年进一步测试或评估其他方案(如 Galene)。
  4. 自动化与工具
    • 调度与发布:大量使用 Emacs Lisp 脚本和 cron 实现演讲视频的自动发布、时间表管理和字幕处理。
    • 沟通:使用邮件合并工具(emacsconf-mail.el)高效处理与演讲者、志愿者的通信。后台协调使用 Mumble
    • 问答收集:使用 Etherpad 收集来自 IRC 的问题,并编写了 emacsconf-erc-copy 函数简化复制流程。

三、内容与流程管理

  1. 提案与日程
    • 征稿期(CFP)到截止日为 82 天,截止日到视频提交目标日为 49 天。今年再次实行了早期接受提案。
    • 日程安排主要考虑演讲者的时间限制,并为周日安排了“开放麦克风”环节以应对临时取消。
  2. 视频与字幕
    • 强烈鼓励演讲者提前录制视频,以减轻压力并便于志愿者添加字幕。
    • 字幕生成主要使用 WhisperX,其语音活动检测功能显著减少了静音期间的幻觉字幕,效果优于去年的 Whisper。
    • 音频标准化仍需手动处理;计划明年尝试混合音频为单声道。
  3. 主持与互动
    • 通过提前录制好的演讲者介绍视频降低了主持难度。
    • 主持人(Leo Vivier, Corwin Brust)灵活地在不同直播间切换,并支持多种互动风格。

四、挑战与改进方向

  • 时间与文档:组织者个人准备时间减少,凸显了详尽文档和自动化流程的价值。许多临时性笔记和任务有待整理成标准流程。
  • 技术细节:包括音频标准化、服务器资源估算、MPV 播放器升级(v0.38 修复了色彩问题)、时间本地化显示等,均被记录为明年改进项。
  • 沟通扩展:提议未来可更多利用博客、社交媒体,并提前通知相关播客,以扩大影响力。

五、致谢与总结

会议的成功举办离不开众多贡献者,包括演讲者、志愿者(负责签到、主持、字幕、质量检查等)、基础设施支持者(提供服务器)以及自由软件基金会(FSF)。 组织者认为 EmacsConf 是一次愉快而成功的线上聚会,参与者反馈积极,会议体验“舒适”且“令人愉快”。展望未来,组织者希望继续优化流程,使其更加顺畅和包容不同时区的参与者。

8. Ask HN: Are you unable to find employment?
11. TSMC's Arizona Plant to Start Making Advanced Chips (spectrum.ieee.org)

台积电亚利桑那工厂将启动先进芯片生产

台积电位于美国亚利桑那州凤凰城的工厂将于2025年开始大规模生产4纳米工艺的先进芯片。这标志着美国本土先进芯片制造能力的落地,也是对2022年《芯片与科学法案》能否稳定美国及盟友半导体供应链的一次考验。

2024年10月下旬,台积电宣布该工厂的芯片良率比台湾工厂高出4%,这被视为早期效率的积极信号。目前第一座工厂具备4纳米制程能力,可用于生产英伟达最先进的GPU。第二座工厂计划于2028年投产,将提供2或3纳米工艺。未来,台积电还计划在美国建设第三座采用更先进技术的工厂。

台积电预计将从《芯片与科学法案》获得66亿美元资金,用于建设第一座亚利桑那工厂。然而,半导体制造回流美国不仅源于政府补贴。台积电生产全球90%的先进芯片,苹果、英伟达、谷歌等美国公司严重依赖其供应。新冠疫情初期的芯片短缺以及中国大陆对台日益强硬的态势,促使客户和国际政策制定者寻求降低风险。大型客户如苹果一直推动台积电在台湾以外建厂以分散风险。

分析师指出,在台湾以外设厂对客户和台湾均有益处。台湾的“硅盾”因台积电的先进制造优势而发挥作用,使美国等国家有理由支持台湾。但若供应链过度集中,台湾反而可能成为地缘政治目标。台积电的地理多元化(已在日本设厂,在德国建厂)将有助于降低这种风险。

亚利桑那工厂的建设也面临挑战。曾有报道称,赴台培训的美国员工对工作条件与培训不满,而台湾员工则认为美国同事傲慢且缺乏半导体行业所需的工作纪律。台积电内部决策常被描述为“自上而下、军事化管理”,而硅谷的“快速行动”文化与半导体制造严格、精细的要求存在冲突。不过分析认为,随着更多工厂运营,公司已逐渐克服初期的文化磨合问题,但未来仍面临美国工程师和技术人员短缺的考验。

与此同时,三星和英特尔也在《芯片与科学法案》支持下计划在美国建设先进工厂,但都遇到困难。三星因客户需求不足而将投产时间推迟至2026年。英特尔虽为该法案的重要游说者,但其技术已落后且难以获得足够客户,目前正利用预期获得的85亿美元资金在多个州建设或升级设施。

截至文章发布,特朗普政府对《芯片与科学法案》实施可能的调整尚不明确。台积电亚利桑那工厂的成功与否,将成为检验该法案能否切实刺激国内制造业,以及台积电国际化扩张能力的重要试金石。

12. Show HN: I made a web app to bring children's drawings to life (doodledreams.cc)

Doodle Dreams 网页应用摘要

应用名称:Doodle Dreams

核心功能:通过人工智能(AI)技术,将儿童的绘画转化为生动、神奇的动画视频。用户可上传任意绘画作品,应用会生成动画并保留绘画中的所有创意细节。

技术实现:这是一个基于Web的应用,采用现代前端技术构建,包括JavaScript模块和CSS样式表。应用支持渐进式Web应用(PWA)特性,如添加到主屏幕、离线访问和优化移动端体验,通过meta标签和清单文件(manifest.json)实现。

关键特点:旨在增强儿童绘画的互动性和娱乐性,通过AI驱动动画生成,让静态绘画变得动态化。应用界面简洁,专注于上传和动画生成流程。

13. Spotify Shuts Down ‘Unwrapped’ Artist Royalty Calculator with Legal Threats (www.digitalmusicnews.com)

Spotify近日关闭了名为“Spotify Unwrapped”的艺术家版税计算器网站。该网站原是一个讽刺性工具,用于展示Spotify向艺术家支付的流媒体版税与公司高管薪酬之间的巨大差距。该网站称,其关闭是由于收到了Spotify法律团队的威胁。

该计算器背后的公式为:艺术家的Spotify Wrapped年度总流媒体播放量乘以0.003美元,即可估算Spotify支付的版税总额。网站在被移除后,仍保留了此公式供艺术家和乐迷参考,并引导人们前往“音乐家与联合工人联盟”网站继续关注相关议题。

与此形成鲜明对比的是,Spotify的股票今年大幅上涨,公司市值接近1000亿美元。公司高管和内部人员在此期间大规模抛售股票套现。根据美国证券交易委员会的文件,仅2024年至今,Spotify内部人士的股票出售总额就高达12.5亿美元。其中,首席执行官丹尼尔·埃克出售了约3.5亿美元股票,联合创始人马丁·洛伦松出售了约5.5亿美元股票。

Spotify的股价上涨得益于公司此前采取的严厉成本削减措施,包括2023年裁员25%,并在多个市场提高订阅价格。

14. Parents of OpenAI Whistleblower Don't Believe He Died by Suicide, Order Autopsy (sfist.com)

文章摘要:

前OpenAI研究员苏希尔·巴拉吉于11月26日被发现死于其旧金山寓所,法医初步认定为自杀,警方表示无他杀证据。然而,其父母对此结论存疑,认为儿子近期精神状况良好,无自杀迹象。

巴拉吉此前曾向《纽约时报》公开举报,批评OpenAI在训练ChatGPT时使用受版权保护的材料,并指出此模式不可持续。他于今年夏季从OpenAI离职,并计划成立专注于机器学习的非营利组织。死亡前数日,他刚被《纽约时报》列为一起诉讼案件的关键证人。

其母普尔尼玛·拉玛劳表示,最后一次通话(11月22日)中巴拉吉情绪正常,刚与朋友庆祝完26岁生日,对未来充满热情。父母已聘请律师要求彻底调查此事,并已委托进行第二次独立尸检。

(注:文中附有自杀危机干预热线信息。)

16. PCIe trouble with 4TB Crucial T500 NVMe SSD for >1 power cycle on MSI PRO X670-P (forum.level1techs.com)
  • 问题现象:用户在使用MSI PRO X670-P WIFI主板搭配4TB Crucial T500 NVMe SSD时,遇到一个异常故障。该SSD在系统中仅能正常工作一次开机循环。无论重启还是按复位键均正常,但只要完全关机,SSD便无法被检测到,除非将其物理拔下并重新插入,之后又可正常工作一次。
  • 排查与发现
    1. 排除了CPU和BIOS版本问题(更换CPU和尝试多个BIOS版本无效)。
    2. 通过测量发现,根本原因在于关机后通过HDMI接口(如连接显示器或KVM)存在残余电压(幽灵电压),导致主板在断电状态下仍被施加约1.9V电压,可能影响了SSD控制器的复位电路。
    3. 断开HDMI连接线可立即消除此电压,解决该问题。使用DisplayPort接口则无此问题。
    4. 此问题在较新的MSI X870-P WIFI主板上未复现。
  • 其他用户反馈与解决方案
    • 类似问题:其他用户也报告了Crucial T500 SSD(2TB版本)在Asrock B550和Lenovo ThinkStation P520等不同主板上出现类似冷启动或休眠后不识别的问题。
    • 尝试的解决方案
      • 多次重启或反复插拔电源线。
      • 使用独立显卡的视频输出(如DisplayPort)而非主板集显的HDMI接口
      • 将T500 SSD安装在PCIe转M.2适配卡上使用。
      • 更换为其他型号的SSD。
    • 推测原因:问题可能源于Crucial T500 SSD与特定主板(或BIOS)在电源管理或PCIe初始化时序上的兼容性缺陷,而通过HDMI接口传入的残余电压可能触发或加剧了此问题。
17. Ada's dependent types, and its types as a whole (nytpu.com)

Ada的依赖类型及其整体类型系统

Ada依赖类型概述

Ada语言在其类型系统中意外地实现了依赖类型的特性,即类型可以依赖于具体的值。例如,结构中的数组字段长度可以依赖于同一结构中的另一个字段。这种设计并非源于类型理论的形式化追求,而是Ada为实现特定目标(如安全性、灵活性)而自然产生的结果。

设计哲学与动机

Ada的设计哲学强调在必要时才使用动态分配(因其缺乏类似Rust的完全安全借用检查器),以维护栈的优越性(作用域安全、词法释放)。为了解决函数无法安全返回栈分配变量的问题,Ada引入了“二次栈”机制:函数可在该栈上分配编译时未知大小的空间并向上返回,避免了动态分配。允许使用二次栈而非动态分配(从而避免在对象内部封装未知长度对象时需要指针)是Ada依赖类型的一个关键动机。

类型系统核心特性

Ada的类型系统注重建模和强制类型意图,允许编译器将用户意图映射到机器类型。关键特性包括:

  • 派生类型与子类型:可定义完全新的数值类型(如type Social_Security_Number is range 0 .. 999_99_9999;),或通过派生/子类型实现类型转换。
  • 数组与边界灵活性:数组索引可使用任意整数类型和任意边界(不限于0或1)。通过<>(box)可定义边界不确定的数组类型,其具体实例的边界可在实例化时确定。
  • 记录判别式:记录(结构)可使用判别式(discriminants),其字段类型可依赖于这些判别式值。例如:
    type My_Record (Top : My_Integer) is record
        Field : My_Array(My_Integer'First .. Top);
    end record;
    
    实例化时指定判别式值(如Rec : My_Record(-5);),使Field长度依赖于运行时值。
  • 类型谓词:Ada 2012引入类型谓词,可在编译时(静态谓词)或运行时(动态谓词)强制约束。例如:
    type My_Record (Top, Bottom : My_Integer) is record
        Field : My_Array(Bottom .. Top);
    end record
        with Dynamic_Predicate => Bottom <= Top;
    
    这增强了依赖类型的表达能力,确保边界满足条件。

应用与扩展

依赖类型不仅用于数组长度,还可用于:

  • 嵌套记录,其中内层记录的判别式依赖于外层判别式。
  • 变体记录(标记联合),标记可与判别式声明于同一位置。
  • 预定义条件,如偶数类型(type Even is new Integer with Dynamic_Predicate => Even mod 2 = 0;)。

与学术语言的对比

Ada的设计与学术型语言(如函数式编程语言、定理证明器)形成对比。后者注重理论纯粹性和表达力,而Ada(及其正式验证子集SPARK)更关注工程目标:嵌入式系统的正确性、效率、副作用处理。SPARK虽借用函数式理论进行正确性验证,但其设计面向实际嵌入式开发需求。Ada的类型系统常在解决实际问题时无意间触及类型理论概念,但其核心仍是面向工程实用的“需求驱动”设计。

结论

Ada的依赖类型是其类型系统自然演进的产物,旨在实现灵活性、安全性和静态约束,而非追求形式化理论。其设计体现了一种“商业/工程导向”哲学,类似于COBOL,专注于满足具体需求而非学术创新。

18. Spotify is full of AI music (www.fastcompany.com)

Spotify平台AI生成音乐泛滥现象概述

根据标题《Spotify is full of AI music》可以明确,本文的核心主题是Spotify音乐流媒体平台上存在大量由人工智能生成的音乐内容。尽管提供的完整内容仅有技术性提示(“Please enable JS and disable any ad blocker”),但结合标题,文章的主要观点与行业观察指向以下关键信息:

  1. 现象描述:Spotify曲库中AI生成的音乐(AI Music)数量众多,已成为一个显著的现象。这些音乐可能由各种AI工具创作,模仿人类音乐人的风格或生成全新的曲目。

  2. 平台生态:此类AI音乐的广泛存在,对Spotify的生态系统、音乐人和听众都产生了影响。这引发了关于平台内容管理、算法推荐、艺术家收入以及音乐真实性等方面的讨论。

  3. 核心问题:文章标题本身暗示了一个矛盾或关注点,即一个旨在为人类艺术家提供舞台的主流平台,目前却被大量非人类创作的内容所充斥。

总结:文章主要探讨了人工智能生成的音乐在Spotify平台上的大量存在这一现状,并暗示了其可能对音乐产业、平台生态及用户体验带来的复杂影响。

19. VW breach exposes location of 800k electric vehicles (cyberinsider.com)

The request was rejected because it was considered high risk

20. Learning Solver Design: Automating Factorio Balancers (gianlucaventurini.com)

本文探讨了使用声明式编程和优化求解器自动设计视频游戏《Factorio》中吞吐量无限传输带平衡器的实践。该问题具有NP复杂性,手动设计仅适用于小规模,而文中方法成功实现了大规模(如16x16)平衡器的自动化生成。

核心问题与定义

目标是在《Factorio》游戏中,为多条平行传输带设计一个吞吐量无限的平衡器。这意味着需要一个满足两个条件的布局:所有输入都能连接到所有输出;总输入流量能在输出端保持,且每个输入流均匀分布到所有输出。这比仅保证连接的“吞吐量受限”平衡器更复杂,是文章求解的核心。

求解方法与模型演进

作者采用了两种主要的求解器范式,并逐步优化模型以提升可扩展性。

  1. 初始模型:混合整数规划 (MIP)

    • 使用SCIP求解器和Google OR-tools。
    • 将流量建模为连续浮点变量,组件(传输带、地下带、混合器)及其方向建模为二进制变量。
    • 结果:模型存在严重的数值稳定性问题,浮点变量的等式约束导致误差累积,甚至无法求解3x3平衡器。
  2. 主要模型:CP-SAT 求解器

    • CP-SAT是谷歌的满足性求解器,不能处理浮点数,因此需要将流量离散化为整数。
    • 采用整数变量后,数值问题解决,能较快求解6x6平衡器。但对于8x8及更大规模,由于搜索空间巨大和内存消耗过高,直接求解困难。
    • 为验证方案正确性,作者构建了测试和调试工具:包括控制台可视化(使用Unicode字符)、简单用例测试、游戏内验证,以及一种通过检查已知解违反了哪些约束来定位模型错误的调试技巧。

关键优化技巧

为了求解16x16平衡器,作者实施了多项关键优化:

  1. 问题分解与预计算 (Banes 网络)

    • 观察到平衡器通常具有分层混合结构(类似Banes网络),因此将问题分解为两步: a. 预计算:确定混合器之间的连接模式(使用预先计算好的Banes网络结构)。 b. 布局优化:求解器只需决定这些预定义混合器组的具体放置位置,并用传输带连接。
    • 这种分解显著降低了问题复杂度,是突破规模限制的关键。
  2. 减少二进制变量(内存/CPU 权衡)

    • 原始模型为每个组件方向都创建独立变量,导致变量数庞大。
    • 优化后,将组件的“存在”与其“方向”解耦,使用单独的变量表示方向,并通过约束仅在组件存在时激活方向约束。
    • 此方法将布尔变量数量减少约50%,大幅降低内存消耗,使16x16问题的求解在内存上变得可行(以更复杂的约束和更多的CPU时间为代价)。
  3. 对称性破缺与搜索引导

    • 通过添加启发式约束来打破对称性,缩小搜索空间。例如,强制混合器仅出现在网格的首尾行,并在特定位置放置已知的传输带组件。
    • 为地下带流量提供零值提示,暗示求解器优先考虑不使用地下带的方案,加速收敛。
  4. 目标函数的引入

    • 初始仅寻求可行解,可能导致生成在游戏内因相邻传输带无法转弯而产生瓶颈的冗余设计。
    • 引入目标函数,对使用的组件数量进行惩罚(混合器权重更高)。这不仅引导求解器找到更简洁、无游戏内问题的方案,而且意外地加速了求解(16x16的求解时间从约55分钟降至30分钟),因为目标为求解器提供了更有效的搜索方向。

结果与总结

  • 性能对比:文中提供了一个时间表,清晰地展示了从MIP模型到应用Banes网络分解和内存优化后CP-SAT模型的性能飞跃。最终在配备M4芯片的MacBook Pro上,求解16x16平衡器需约30分钟。
  • 结论:文章系统地展示了如何针对一个具有实际背景的组合优化问题,通过选择合适的求解器、进行问题分解、优化模型变量表示、引入启发式约束和目标函数等一系列技术,将求解规模从手算级别扩展到游戏中实用的最大规模(16x16)。整个过程体现了建模技巧与求解器能力的结合,以及在不同约束间进行权衡的艺术。
21. Machine-Assisted Proof [pdf] (www.ams.org)

网站访问被安全服务阻止

该内容描述了当用户尝试访问某个网站时,被安全服务(如 Cloudflare)阻止的情况。网站使用此服务来保护自身免受在线攻击,而用户的行为触发了安全解决方案的拦截。

触发阻止的可能操作

阻止可能由多种操作引起,包括:

  • 提交特定的词语或短语。
  • 执行 SQL 命令。
  • 发送格式错误的数据。

解决方法

用户可以通过电子邮件联系网站所有者,以报告被阻止的情况。在邮件中,应包括触发阻止时的具体操作详情,以及页面底部显示的 Cloudflare Ray ID,以便所有者调查和解决问题。

关键细节

  • 内容的核心目的是告知用户访问受阻的原因并提供解决步骤。
  • 它强调了网站安全措施的必要性,以及用户与网站所有者沟通的重要性。
  • 摘要基于提供的错误消息,未涉及其他未提及的信息。
22. PolyDye: Full color printer mod for Marlin 3D printers (github.com)

PolyDye:为Marlin 3D打印机添加全彩打印功能的修改版

项目概述
PolyDye是一个为基于Marlin固件的3D打印机设计的修改版,通过集成喷墨打印技术实现全彩打印功能。它通过在白色耗材层之间应用墨水层来着色模型,将颜色能力添加到现有3D打印机中。该项目使用ESP32-S3微控制器进行精确颜色控制,并与Marlin固件同步。

软件状态与免责声明

  • 软件目前处于测试阶段,仓库内容不完整,预计会有频繁更新和实验性功能。
  • 项目按“原样”提供,无任何明示或暗示的保证。作者不对使用该项目导致的任何损害负责。

更新日志摘要

  • v1.15(2025-04-10)

    • 修复:对齐错误最小化,减少了发生频率。
    • 更改:移除了YOhY热按钮;反转了XY对齐按钮的方向(上按钮移动墨水到床后部,下按钮移动到前部)。
    • 已知问题:每次打印前需电源循环;打印过程中可能随机冻结。
    • 注释:仅适用于Marlin固件;Klipper版本正在开发中。
  • v1.14(2025-03-30)

    • 添加:改进了在高不透明耗材上的颜色性能(如Creality Hyper白色和CR-PLA白色);新增“自动应用”按钮以简化偏移应用;增强了细节打印的清晰度。
    • 更改:喷嘴发射更可靠;简化了XY对齐流程(第二方块自动缩放,仅需定位)。
    • 修复:纠正了低多边形方块几何体中的颜色条带舍入伪影。
    • 移除:废弃了YohY对齐系统;用户需手动将YohY值设为184000。
    • 已知问题:电源循环和打印冻结问题持续存在。
    • 注释:仅适用于Marlin固件;Klipper版本即将发布。

已知问题与注意事项

  • 每次打印前和停止未完成打印后需电源循环打印机,否则可能继续发送G代码导致损坏。
  • 打印过程中可能随机冻结,需监控打印过程,避免无人值守。
  • 当前版本仅适用于Marlin固件;Klipper版本正在开发中,预计很快发布。

功能特点

  • 为任何Marlin兼容的3D打印机添加全彩色能力。
  • 墨水应用与白色耗材层自动同步。
  • 集成ESP32-S3实现精确颜色控制。

资源与致谢

  • 快速链接:提供装配说明、校准指南和硬件要求的链接。
  • 致谢:感谢Jeroen Domburg(提供喷墨墨盒基础)、Adafruit(ESP32-S3研究)和Bianca Mariani(支持与协助)的贡献。

总结:PolyDye项目旨在通过喷墨集成扩展Marlin 3D打印机的颜色功能,目前处于测试阶段,持续更新中。用户需注意已知问题和版本限制。

23. So you want to write Java in Neovim (ptrtojoel.dev)

在Neovim中进行Java开发的配置指南

本文详细介绍了如何在Neovim中设置Java开发环境,使其成为一个高效的工作空间。主要内容包括语言服务器配置、调试和测试设置。

语言服务器(LSP)

  • JDTLS是Neovim中唯一的Java LSP选项,由Eclipse提供,功能全面。
  • 插件选择
    • nvim-java:适合开箱即用、喜欢一体化设置的用户,提供预配置的调试和测试环境,但灵活性较低。
    • nvim-jdtls:推荐大多数用户使用,提供对JDTLS的完整配置控制。需要通过Mason安装JDTLS。
  • 重要配置:有时需要提供引用JAR(如Lombok),并将其放置在JDTLS安装路径中。

调试

  • 使用nvim-dapnvim-dap-ui插件实现Neovim内的调试。
  • 需要通过Mason安装java-debug-adapter,或在JDTLS配置中手动引用其JAR。
  • 调试体验可能不如专用Java IDE,但功能完整。

测试

  • 测试功能同样基于nvim-jdtls实现。
  • 需要通过Mason安装java-test,或在配置中手动引用其JAR。

配置示例

文章提供了一个完整的Lua配置参考,包括:

  • JDTLS配置:自动检测项目根目录(支持多种构建文件)、设置JVM参数、集成Lombok、配置代码补全和代码透镜(CodeLens)。
  • 调试器配置:集成nvim-dapnvim-dap-ui,设置快捷键(如<F5>继续执行、<Leader>b切换断点)。
  • 键位映射:预置了组织导入、提取变量/常量/方法等常用操作的快捷键。

总结

对于主要使用Neovim的开发者,通过合理配置JDTLS及相关插件,可以在Neovim中获得顺畅的Java开发体验,包括代码智能提示、调试和测试功能。文中提供的配置可作为快速启动的模板。

24. Show HN: Minimal, self-hosted exercise tracker (github.com)

Show HN:极简、自托管的锻炼追踪器

这是一个极简的健身追踪解决方案,核心是一个单一的HTML文件,利用浏览器本地存储来记录锻炼数据。其设计目标是通过极致的简单性,减少所有使用障碍,让用户能够轻松开始每日锻炼并长期坚持。

主要特点

  • 只关注当下:界面仅显示今天的训练内容和上次训练使用的重量,不提供任何历史记录、趋势图表或报告功能。
  • 无配置界面:为了保持简单,程序没有设置界面。用户需要直接编辑HTML源文件来定义自己的锻炼项目。系统只记录上次的重量,用于设定本次的重量。
  • 内置计时器:包含一个简单的计时器,用于跟踪组间休息时间。可通过替换内嵌的base64编码WAV数据来更改提示音。
  • 即时自动保存:没有单独的保存或撤销按钮。数据在用户向重量栏输入时即自动保存。
  • 数据管理:数据删除需通过浏览器开发者工具(F12)手动清除本地存储键。无数据同步功能,所有数据均绑定在最初使用的浏览器和设备上。

兼容性与部署

  • 该工具兼容任何现代浏览器,并能良好地适配桌面和移动端显示。
  • 部署方式灵活:可直接从本地文件系统运行HTML文件,也可将其部署到自托管服务器上。作者还提供了使用Githack服务通过项目永久链接进行访问的示例(Githack会缓存文件,确保版本稳定)。

相关讨论与衍生

  • 该项目曾在Hacker News首页引起讨论。
  • 网络上存在相关的日语介绍文章,以及一个(可能由AI生成的)配套YouTube播客。
  • 存在一个衍生版本(由@chase-west开发),该版本将CSS和音频数据从主HTML文件中分离出来,实现了更清晰的代码结构。
27. Netflix tells writers to have characters "announce what they're doing" (www.worldofreel.com)

Netflix向编剧提出创作要求,指导其通过角色台词直接说明行为和剧情背景,以确保观众在分心或同时处理其他事务时仍能跟进故事。这一做法已引起部分编剧的反馈。

核心指导原则:Netflix高管要求编剧在剧本中让角色主动“宣布自己正在做什么”(announce what they're doing),通过直接陈述对话来铺设背景信息,而非依赖视觉隐含的叙事。

目的:适应所谓“休闲观看”(casual viewing)场景,即观众可能同时进行其他活动,注意力不完全集中。Netflix甚至将“休闲观看”作为内容开发的一个微类型,专门用于适合非专注观看的作品。

具体案例:以电影《爱尔兰许愿》(Irish Wish)为例,角色在对话中直接说明关键情节:“明天我要嫁给保罗·肯尼迪”“之后我要去玻利维亚拍摄濒危树蜥”。这类直白表述旨在让观众无需仔细观看也能理解剧情。

业界反应:部分编剧对此提出质疑,认为该做法违背了“展示而非讲述”(show, don't tell)的传统编剧原则。报道指出,Netflix过去曾推出《罗马》《爱尔兰人》等注重叙事深度的作品,而如今这种要求被视为对传统创作理念的挑战。

其他相关策略:此前有报道称Netflix还要求编剧在影片前五分钟内植入足够戏剧性内容,以降低观众中途关闭的风险。

这一创作导向反映了流媒体平台为适配用户观看习惯而对内容生产规则进行的调整。

28. How to Create HTML/ZIP/PNG Polyglot Files (gildas-lormeau.github.io)

如何创建 HTML/ZIP/PNG 多用途文件

引言

SingleFile 等网页归档工具常使用数据 URI 存储网页资源,但对于大资源效率低下。通过结合 ZIP 格式的灵活结构与 HTML,并进一步封装到 PNG 文件中,可以创建更优雅的解决方案。

ZIP 格式的强大功能

ZIP 格式提供组织化的结构来存储多个文件,基于文件条目和中央目录。中央目录充当目录表,包含每个文件条目的元数据(如文件名、大小、校验和和偏移量)。ZIP 的灵活性体现在:通过设置第一个文件条目的偏移量大于 0,可以在 ZIP 内容前添加数据;通过 ZIP 注释(最多 64KB)可以在后附加数据。这使其非常适合创建多用途文件。

创建 HTML/ZIP 多用途文件

基于 ZIP 的灵活性,可以创建一个在浏览器中工作的自解压归档文件。网页及其资源存储在 ZIP 文件中,ZIP 数据嵌入 HTML 注释中。自解压页面的结构如下:

<!doctype html>
<html>
  <head>
    <meta charset=utf-8>
    <title>Please wait...</title>
    <script> Content of lib/zip.min.js </script>
  </head>
  <body>
    <p>Please wait...</p>
    <!-- [ZIP data] -->
    <script> Content of assets/main.js </script>
  </body>
</html>

启动页面使用 fetch("") 读取 ZIP 数据,并通过 JavaScript 库提取内容以替换自身。但当从文件系统打开时(除 Firefox 外),由于同源策略限制,直接使用 fetch("") 会失败。

从 DOM 读取 ZIP 数据以克服限制

为解决文件系统限制,可以直接从 DOM 读取 ZIP 数据。此方法需要处理字符编码问题:

  • DOM 文本内容解码为 UTF-16 而非 windows-1252。
  • NULL 字符(U+0000)被解码为替换字符(U+FFFD)。
  • 回车符(\r)和回车换行符(\r\n)被解码为换行符(\n)。 前两个问题可通过关联表转换为 windows-1252 解决。对于第三个问题,在启动页面中添加 JSON 脚本标签作为“巩固数据”,跟踪回车符和回车换行符的偏移量,以便准确重建原始内容。启动页面编码改为 windows-1252,结构如下:
<!doctype html>
<html>
  <head>
    <meta charset=windows-1252>
    <title>Please wait...</title>
    <script> Content of lib/zip.min.js </script>
  </head>
  <body>
    <p>Please wait...</p>
    <!-- [ZIP data] -->
    <script type=application/json>
    [consolidation data]
    </script>
    <script> Content of assets/main.js </script>
  </body>
</html>

引入 PNG 格式

PNG 格式由签名和块组成,每个块包含长度、类型标识符(如 IHDR、IDAT、IEND、tEXt)、数据内容和 CRC32 校验和。最小 PNG 结构包括:

  • PNG 签名(8 字节)
  • IHDR 块(13 字节)
  • 一个或多个 IDAT 块
  • IEND 块(12 字节)

最终形式:HTML/ZIP/PNG 多用途文件

将 HTML、ZIP 和 PNG 结合到一个文件中,利用 HTML 的容错能力。最终结构作为 PNG 块表示如下:

[PNG 签名]
[IHDR 块]
[tEXt 块: 包含 HTML 开头部分]
[IDAT 块(s): 包含 HTML 中间部分(如 ZIP 数据注释)]
[tEXt 块: 包含 HTML 剩余部分]
[IEND 块]

此结构引入新挑战:

  • PNG 签名和块(如 IHDR、IEND)会短暂显示为文本节点,需在页面解析后立即移除。
  • 显示页面在怪异模式下渲染,需使用 document.write() 等方法解析显示页面。

通过图像重用优化

优化措施包括:移除主图像(如 RennesJS 徽标)并重用页面(作为 PNG 文件)替换显示页面中的图像,从而减少文件大小。

结果文件

提供演示文件 demo.png.zip.html 供下载和查看。注意:macOS 上的“归档实用工具”存在解压缩 bug,可使用 unzip 绕过。

29. Penrose Mazes (2020) (justinpombrio.net)

这篇文章介绍了Penrose迷宫,一种在非周期性彭罗斯拼图上构建的迷宫。

核心概念与特点

  • 基础结构:与传统在规则网格(如方形、三角形)上构建的迷宫不同,Penrose迷宫建立在彭罗斯拼图之上。这种拼图具有非周期性,即图案永不重复。
  • 视觉特征:由此生成的迷宫外观独特,内部充满圆形和星形图案,墙壁由十种不同角度的线条构成。
  • 体验:由于其不规则的结构,置身其中极易迷路。

构建与展示

  • 生成方式:迷宫本身是随机的,但其基础拼图通过一种确定性算法生成。
  • 解法展示:作者通过为迷宫图像着色,使解题路径变得清晰可见。

代码与资源

  • 实现技术:项目源码使用 PythonPygame 编写。
  • 代码说明:作者指出代码并不优雅,且迷宫生成算法的效率极低
  • 附录资源:文章末尾提供了包含特写、巨幅图等不同尺寸的彩色迷宫图片链接。
30. How to Cure Acid Reflux with Simple Exercise: An Anecdotal Study (pmc.ncbi.nlm.nih.gov)

本文介绍了一种通过运动训练来强化食管下括约肌、以治疗胃食管反流的个人案例报告。

背景:胃食管反流通常由食管下括约肌无力或松弛引起。作者因长期受反流症状困扰,设想能否通过某种方式强化此括约肌。

方法:作者设计了一种抗阻训练运动。具体操作为:跪在平台上(例如高约6.5英寸),弯腰将头部置于手上、低于胃部,形成一个斜坡。在此姿势下正常吞咽食物,利用重力使食管下括约肌需要额外工作将食物向上推入胃中。作者在每日早餐时进行此练习。

过程与效果

  1. 观察期:持续练习约68天后,作者发现弯腰时反流症状改善,但夜间仍需使用楔形枕。
  2. 验证期:持续练习数月后,作者在克利夫兰诊所进行了24小时pH和测压检查,结果完全正常。
  3. 结果:作者停用了楔形枕,反流症状彻底消失。即使停止该运动两年后,症状也未复发。

讨论与结论

  • 此案例为“通过运动强化食管下括约肌”这一概念提供了初步证明。
  • 作者认为,该运动可能通过消除病因而非仅治疗症状,为反流问题提供潜在的永久性解决方案。
  • 文章指出,运动中许多细节(如平台高度、频率、食物性状等)有待系统研究以优化标准化方案,并需注意其禁忌症。
  • 此方法风险低、成本小,但开始时应谨慎以避免不适。

注意:文章强调,其内容基于个人经验和独立研究,仅供参考和教育目的,不能替代专业医疗建议。

32. Evolution journal editors resign en masse to protest Elsevier changes (retractionwatch.com)

《人类进化杂志》编委会成员几乎全部辞职,以抗议出版商爱思唯尔的一系列举措。辞职声明指出,爱思唯尔的行为与期刊精神根本对立,并破坏了期刊成功38年所依赖的质量与诚信基础。

编辑们指控爱思唯尔逐渐侵蚀期刊成功所需的关键基础设施,同时破坏了长期指导期刊的核心原则与实践。具体问题包括:

  1. 削弱编辑支持:出版商取消了对文字编辑和特刊编辑的支持,这被解读为要求编辑不再关注语言、语法、可读性、一致性或术语与格式的准确性。出版商还经常在排版过程中引入原稿不存在的错误。
  2. AI排版引发混乱:2023年秋季,爱思唯尔未经告知或咨询便在排版中启用人工智能,导致所有专有名词(如地质年代、地名、属种名等)失去大写格式,属和种的斜体也被取消。这些由AI引入的修改逆转了已经由编辑妥善格式化的接受稿件,为期刊带来极大困扰,问题花费六个月才通过编辑的不懈努力得以解决。AI排版至今仍在使用,且经常改变提交稿件的意思和格式,要求作者和编辑在校对阶段投入大量精力进行监督。
  3. 单方面控制编委会:爱思唯尔通过要求所有编辑每年签署新合同,“单方面完全掌控”了编委会的科学结构与组成,导致副编辑人数下降。此外,出版商表示将不再支持自1986年以来一直是该刊标志的“共同主编”模式。当编辑们强烈反对时,爱思唯尔提出,若要维持双主编模式,则将主编薪酬减半。
  4. 高昂的文章处理费:该刊3990美元的文章处理费对许多作者而言难以承受,且高达其他同类学科爱思唯尔期刊费用的两倍。

此次集体辞职是自2023年初以来记录在案的第20起类似事件。

33. Show HN: Kando – A cross-platform pie menu for your desktop (kando.menu)

Kando 概要

Kando 是一款免费、开源的跨平台桌面饼状菜单工具,旨在彻底改变用户与电脑的交互方式,提升工作效率。它主要具有以下特点:

  • 多输入方式支持:支持鼠标、触控笔、触摸屏以及游戏手柄等多种输入设备,适应不同用户的使用习惯。
  • 高效快速的操作:用户能在极短时间内选择常用工具和动作。其手势识别技术使得访问多层子菜单也变得轻松。
  • 精准易用的设计:整个屏幕均可作为点击区域,无需精确瞄准微小按钮,大致方向操作即可,降低了操作门槛。
  • 科学化效率理念:设计基于科学原则,旨在最小化用户思维与动作之间的距离,优化工作流程。
  • 高度可定制性:支持自定义菜单主题、图标集乃至声音主题,满足个性化需求。
  • 智能上下文菜单:能根据不同应用程序或窗口自动切换显示对应的专业菜单。
  • 持续更新与扩展:最新版本引入了基于键盘的选项选择功能,并提供了强大的IPC(进程间通信)接口,便于第三方工具和插件集成。
  • 游戏化学习体验:通过成就系统等元素,让用户在肌肉记忆形成过程中获得乐趣和激励。
  • 开源与社区驱动:Kando 完全免费且开源,是一个由社区支持的项目。用户可以通过购买咖啡等方式支持其开发,并可加入 Discord 社区与开发者及其他用户交流想法和反馈。

用户可以从官网下载对应平台的版本,并参照安装指南开始使用,以提升桌面操作体验。