2024-11-10

24 篇热帖

1. OpenCoder: Open Cookbook for Top-Tier Code Large Language Models (opencoder-llm.github.io)

OpenCoder概述
OpenCoder是一个开放且可复现的代码大型语言模型(LLM)家族,旨在匹配顶级代码LLM的性能。它提供了完整的开源资源,包括最终模型权重、可复现的训练数据、数据处理管道、实验消融结果和训练协议,以支持开放科学研究。

核心组件与性能

  • 模型家族:包含1.5B和8B参数的基础模型和聊天模型,支持英语和中文。
  • 训练数据:使用2.5万亿标记进行训练,其中90%为原始代码数据,10%为代码相关网络数据,确保高性能。
  • 评估基准:在多个代码LLM评估基准上达到顶级性能。

开放资源与可复现性
OpenCoder不仅提供模型权重和推理代码,还公开了以下关键资源:

  • 可复现训练数据:包含RefineCode语料库,这是一个高质量、可复现的代码预训练数据集,涵盖607种编程语言的960亿标记。
  • 数据处理管道:完整的端到端数据处理流程,确保透明性和可复现性。
  • 实验消融研究:提供详细的消融实验结果,帮助理解代码LLM的设计选择和训练策略。
  • 其他资源:大规模SFT数据集、中间检查点和高效评估管道。

研究意义
通过开放这些资源,OpenCoder旨在赋能研究人员和开发者,推动代码人工智能领域的创新和发展。它为构建和优化代码LLM提供了一个透明的基础框架。

贡献者与引用
该研究由多个机构的研究人员合作完成,包括墨尔本大学、复旦大学等。引用格式已提供,便于学术使用。

2. Audio Decomposition – open-source seperation of music to constituent instruments (matthew-bird.com)

音频分解项目摘要

项目概述

这是一个开源音频源分离项目,旨在将音乐作品分解为各个独立的乐器声部,最终目标是辅助生成乐谱。项目起源于作者个人将音乐转为乐谱的需求,以及缺乏开源、简单的音频分离算法的现状。

核心方法

傅里叶变换分析

  • 每0.1秒对音频进行一次傅里叶变换(生成频谱图)
  • 使用预先存储的乐器傅里叶变换模板进行匹配
  • 通过求解矩阵方程(基于均方误差成本函数的偏导数)来确定每种乐器在该时间窗口内的贡献幅度

包络线分析

  1. 包络提取:将声波分段取最大值,生成声音包络的上界,并通过迭代细化确保准确性
  2. 包络分段:将包络划分为三个阶段:
    • 起音:音符起始的噪声阶段
    • 持续:音符保持阶段
    • 释音:音符停止阶段
  3. 包络分类:区分静态衰减(如钢琴)和动态变化(如小提琴)的乐器,并判断是否存在释音阶段(AS或ASR类型)

综合匹配流程

  • 对目标频率进行带通滤波
  • 使用互相关分析匹配乐器的起音和释音特征,确定音符起止点
  • 计算滤波后音频与乐器波形的均方误差作为成本指标
  • 最终幅度 = 傅里叶分析幅度 × 1/包络匹配成本

数据来源

所有乐器数据均来自爱荷华大学电子音乐工作室乐器数据库

显示方式

  • 使用matplotlib的散点图以"-"形标记显示生成的乐谱
  • 原始音频重建方案因效率问题被弃用
  • imshow方案因处理稀疏数据的效率低下而被弃用

项目效果

项目运行时间合理,能够有效辅助乐谱制作,尤其有助于确定音高与和弦构成。演示视频展示了实际应用效果。

项目地址GitHub仓库

3. Grim Fandango (www.filfre.net)

《冥界狂想曲》开发与评析

开发背景与灵感

游戏设计师蒂姆·谢弗在完成《极速天龙》后,于1995年夏天构思了《冥界狂想曲》。灵感源自墨西哥亡灵节的纸浆骷髅民俗艺术,结合阿兹特克神话中灵魂在冥界行走四年的传说,构建了“冥界旅行代理人”的核心设定。故事融合黑色电影元素(如《唐人街》《卡萨布兰卡》),主角曼努埃拉·“曼尼”·卡拉维拉是一名死神旅行社员工,负责运送灵魂。反派赫克托·莱曼则涉及盗窃“旅行票据”的阴谋。

技术革新与引擎开发

  • 转向3D的动机:既为实现电影化镜头语言(如多角度特写),也因像素艺术成本攀升。3D建模能更快生成图像,降低单位成本,且契合PlayStation的3D硬件优势。
  • GrimE引擎诞生:程序员布雷特·莫格列夫斯基认为旧引擎SCUMM无法支持3D,因此全新开发GrimE。该引擎混合预渲染场景与实时渲染角色,并采用Lua脚本语言控制游戏逻辑,后来Lua成为业界常用语言。
  • 开发挑战:GrimE开发耗时近3年,成本约300万美元(是前作的2.5倍)。预渲染与实时渲染的切换导致开发困难,且引擎性能要求过高,未能移植至PlayStation。

艺术与叙事成就

  • 视觉风格:结合1930年代装饰艺术、墨西哥民俗艺术和1940年代黑帮电影元素,角色以骷髅形象呈现,回避了当时3D技术渲染皮肤的难题。
  • 故事深度:曼尼的角色成长弧完整,与梅什的爱情线成熟复杂。冥界设定巧妙——灵魂恐惧“重生”为植物,赋予死亡独特隐喻。
  • 配乐与配音:融合墨西哥流浪乐队与爵士乐的配乐营造独特氛围;配音演员托尼·普拉纳等精准诠释角色性格。

游戏设计缺陷

  • 解谜问题:谜题设计晦涩,缺乏明确目标提示,与角色驱动型叙事节奏冲突。部分谜题依赖冗长试错,过程重复繁琐。
  • 操控体验:采用类手柄的“坦克式”控制,角色移动笨拙;交互热点靠观察角色头部转向发现,易被忽略;物品管理需逐件切换,效率低下。
  • 开发流程弊端:长期加班(每日16-18小时)与低薪(关键程序员年薪约3万美元)导致成品未经充分测试,谜题反馈机制不足。

重制版改进与市场反响

  • 2015年重制版:增加鼠标点击界面选项,大幅改善操控体验,证明原版可能包含此功能但未启用。
  • 媒体与市场:发售初期获媒体高度评价,被视为冒险游戏复兴代表;实际销量估计在25万至50万份之间,未达爆款但基本回本。因开发成本过高,LucasArts此后仅开发了《猴岛小英雄》系列续作。

总结

《冥界狂想曲》在艺术与叙事上成就卓越,但游戏性受技术限制与设计缺陷拖累。它体现了90年代末冒险游戏在3D转型中的探索与代价,成为一部风格突出而交互体验存争议的作品。

4. IronCalc – Open-Source Spreadsheet Engine (www.ironcalc.com)

IronCalc – 开源电子表格引擎

概述

IronCalc 是一个开源的电子表格引擎和生态系统,旨在为项目集成、自定义和共享提供灵活、可控的解决方案。

主要特性

  • 开源许可:采用 MIT/Apache 2.0 双许可证,允许自由集成、定制和分享。
  • 自托管部署:可在自有服务器或基础设施上部署,完全控制环境、安全性和数据。
  • 未来保障:获得欧盟委员会和 NLnet 基金会支持,确保长期发展。
  • 轻量高效:使用 Rust 构建,依赖少,运行速度快。引擎可作为 WebAssembly 在浏览器中运行,实现高速计算而不影响系统性能。

应用场景

  • 多用途引擎:既可作为独立电子表格,也可作为可嵌入产品使用。
  • 灵活部署:支持在自有基础设施上部署、集成到现有技术栈,或本地运行用于开发和测试。提供了 Docker 命令示例以便快速启动。

与其他产品的区别

  • 完全开源(MIT/Apache 2.0)。
  • 使用 Rust 构建,注重性能和可靠性。
  • 设计为可嵌入产品(如 SaaS、仪表板、博客)。
  • 可在浏览器中运行,无需账户或额外依赖。

当前功能状态

  • 已可用,支持数百个函数、.xlsx 文件导入/导出、样式格式化等。
  • 持续开发中,尚未完全实现的功能包括:图表、实时协作(多用户同时编辑)、条件格式化(即将推出)。更多细节可参考项目路线图。

其他特性

  • 可嵌入性:设计用于嵌入其他应用和工作流,支持通过语言绑定(如 Rust、JavaScript、Python)集成。
  • 文件兼容性:支持导入和导出 .xlsx 文件,保留公式和数据。
  • 存储方式:在 Web 应用中,电子表格通常存储在本地(如浏览器存储),除非在集成中额外构建服务器端或云存储。
  • 服务器端使用:核心引擎可在 Rust 中运行,并支持从 Python、Rust 或 JavaScript 等语言在服务器环境中使用。

社区与发展

  • 在 GitHub 上公开开发,欢迎贡献。
  • 社区支持渠道包括邮件和 Discord,用于反馈、问题报告或提交拉取请求。
  • 详细的贡献指南可在项目中找到。

总结

IronCalc 是一个高性能、可自托管且可嵌入的开源电子表格引擎,致力于提供灵活、安全的解决方案,适用于多种应用场景,并处于持续发展之中。

5. When machine learning tells the wrong story (jackcook.com)

文章总结

本文作者回顾了他在MIT本科期间参与的一项硬件安全研究项目,该项目的核心发现与经验教训具有广泛启示。

研究背景与起源 作者在MIT修读一门硬件安全课程时,在导师Mengjia Yan的建议下,尝试复现一项已发表的“网站指纹”攻击。该攻击利用CPU缓存作为侧信道,通过机器学习模型来识别用户浏览器中其他标签页打开的网站。

意外发现与深入探究 在复现过程中,作者开发了一种更简单但效果更好的“计数式”攻击方法。该方法不直接操作缓存,而是通过持续执行计数操作来收集信号。实验表明,这种新方法在识别网站时准确率甚至高于原缓存攻击。

关键发现 为解释新方法的有效性,研究团队进行了系统性的实验验证:

  1. 他们排除了CPU频率缩放、CPU核心争用等已知侧信道。
  2. 最终,通过使用eBPF工具分析系统行为,他们证明该攻击主要利用的是系统中断(硬件与操作系统通信的底层机制)泄露的信息。网站加载时触发的中断会打断攻击者的计数进程,从而产生可识别的信号。

核心教训

  1. 机器学习模型的局限性:模型能高效发现数据中的模式并实现高预测准确率,但这仅能证明“信号”的存在,无法解释信号的来源。在本案例中,原攻击论文将其归因于CPU缓存争用,但实际主要信号源是系统中断。
  2. 错误归因的风险:对攻击原理的误解会导致设计出无效的防御措施。例如,针对缓存争用设计的防御(添加缓存噪声)效果有限,而针对中断设计的防御(生成中断噪声)则能显著降低两种攻击的准确率。

研究影响与未来方向 这项研究首次揭示了系统中断作为一种安全侧信道的可能性,并强调了在应用机器学习进行硬件安全分析时必须进行严谨的因果推断。该成果获得了学术界的认可。此外,这段研究经历也深刻影响了作者,促使他决定继续深造并投身学术研究。

文中还提出了若干未来研究方向,包括:重新思考中断机制的设计、深入理解网站活动与中断之间的关系、以及探索更强大的浏览器端防御方案。

6. The brain summons deep sleep for healing from life-threatening injury (www.nature.com)

研究发现:大脑在危及生命的创伤后召唤深度睡眠以促进愈合

核心发现

  • 研究概述:一项新研究(发表于2024年10月30日)发现,心脏病发作后,免疫细胞会涌向大脑并刺激睡眠神经元,引发深度睡眠,从而帮助恢复。
  • 关键机制:这种深度睡眠通过减轻心脏炎症来促进愈合,研究基于小鼠和人类数据。
  • 来源:研究发表于《自然》期刊(Nature 635, 18 (2024)),作者为Mariana Lenharo。

详细机制

  • 免疫反应:心脏病发作触发免疫细胞移动至大脑。
  • 神经刺激:免疫细胞激活睡眠神经元,导致深度睡眠状态。
  • 恢复作用:深度睡眠减少心脏炎症,支持身体从创伤中恢复。

研究范围与背景

  • 研究方法:结合小鼠实验和人类数据验证。
  • 相关领域:涉及心血管生物学、免疫学、大脑和神经科学。
  • 意义:为理解危及生命事件后的大脑-身体恢复机制提供新见解。

相关信息

  • 引用:DOI: https://doi.org/10.1038/d41586-024-03491-2
  • 作者:Mariana Lenharo,纽约市《自然》新闻记者。
  • 关联主题:研究连接到睡眠、免疫和心血管健康,如相关文章所述(例如睡眠剥夺、炎症与心脏病)。
7. Marine pilot loses command after ejecting from F-35B that kept flying (www.marinecorpstimes.com)

事件概述

2023年9月17日,美国海军陆战队一架F-35B“闪电II”战斗机在南卡罗来纳州查尔斯顿联合基地附近因严重故障,飞行员弹射逃生。飞机随后在自动驾驶模式下继续飞行了64海里后坠毁。事后,海军陆战队司令埃里克·史密斯上将下令解除了该飞行员——查尔斯·“特雷”·德尔·皮佐上校对海军陆战队测试与评估第1中队(VMX-1)的指挥职务。

事件经过

飞行员德尔·皮佐当时正驾驶F-35B在大雨中练习着陆。在转换为短距起飞/垂直降落模式时,其头盔显示器和全景显示器多次闪烁并失效,同时与塔台和僚机的通信中断。在约1900英尺的高度,他判断飞机已失控,根据飞行手册建议,决定弹射逃生。弹射后,飞机在自动驾驶下继续飞行约11分钟,爬升至9300英尺后坠毁于偏远森林地区,造成飞机全损,但未造成地面人员伤亡。德尔·皮佐则安全降落在居民区后院。

调查与认定

海军陆战队事故调查报告指出:

  • 飞行员操作:德尔·皮佐在整个飞行过程中遵守了操作程序,其失职指控被免除。飞机的电气故障也与维护不当无关。
  • 核心矛盾:尽管飞行员遵循了手册程序,但调查最终认定此次事故源于飞行员错误。结论是德尔·皮佐“错误地诊断了(失控飞行)紧急情况,并从一架可飞行的飞机上弹射”。
  • 手册问题:调查报告批评F-35B飞行手册对“失控飞行”的定义“过于宽泛”,从而导致了此次事故。

后续处理

  • 解职决定:尽管调查报告在1月已完成,但德尔·皮佐于6月才正式接任VMX-1中队指挥官。在9月详细审阅报告后,海军陆战队司令史密斯上将认为VMX-1任务特殊,对其指挥能力失去信心,于10月2日下令解除了他的指挥职务。
  • 飞行员状态:一个现场飞行表现委员会认为其弹射决定是合理的。德尔·皮佐在完成所有建议后,于2024年6月恢复了全面飞行状态,并已被提供后续任务选择。
  • 部队安全警示:此事件是当时海军陆战队六周内发生的第三起A级航空事故。事件发生后,海军陆战队曾下令所有航空部队暂停行动两天,进行安全整顿。

飞行员背景

德尔·皮佐,49岁,是一名经验丰富的战斗飞行员,累计飞行时间超过2800小时,其中F-35B飞行时间为32小时。其职业生涯亮点包括:

  • 2015年至2017年,指挥“黑桃A”中队(VMA-231),驾驶AV-8B“鹞”式战斗机参与打击“伊斯兰国”的行动。
  • 曾担任F-35联合项目办公室海军陆战队服务副官及海军陆战队航空兵战术空战部门主管。
  • 2022年8月被选为VMX-1中队指挥官,该中队负责评估海军陆战队的飞机并开发作战战术,是一个极具声望的职位。
8. You too can write a book (parentheticallyspeaking.org)

文章摘要:《You too can write a book》

核心目的:本文旨在鼓励学者(尤其是使用自编讲义的学者)撰写并出版教材,并论证其可行性与价值。

1. 你具备写书的能力

  • 起点低:如果你不依赖现有教材,必然会花费大量时间整理思路并生成“讲义”。
  • 差距小:从“讲义”到“书”的转化远比想象中容易。
  • 规模可控:基于学生单次课前阅读量(约6页)的假设,一门30次课的课程所产生的讲义累计约200页,这已是一本书的体量。因此,写书是教学工作的自然延伸。

2. 你应当写书的理由

  • 传递独特视角:你的书是他人“下载”你大脑中独特世界观和知识体系的途径。
  • 扩大影响力与招生:书的传播可能影响其他学校的学生,为你带来具备共同思维基础的优秀博士申请者。
  • 提升领域教材质量:当前某些领域(如编程语言)存在大量内容陈旧、质量低劣的教材。撰写优质教材是用好书驱逐坏书、革新领域教学方式的有效手段。
  • 个人经验:作者自身在获得终身教职前撰写了本科教材,这并未阻碍其职业发展,反而带来了长期收益。

3. 写书的实操建议(关键机制)

  • 拒绝商业出版商:他们可能限制作品的开放获取,违背扩大影响力和替代劣质教材的初衷。
  • 免费在线发布:尤其应为资源匮乏地区的学生提供免费获取途径。
  • 提供平价纸质书:通过按需印刷服务提供低价纸质版本。
  • 聚焦影响力而非出版商合同:在STEM领域,终身教职评审更看重实际影响力而非商业出版合同。
  • 维护版本稳定:每年发布一个新版本,避免频繁更新影响使用者引用。提供旧版本永久链接,尽管可能暴露过往错误。
  • 建立反馈渠道:方便读者提交勘误与建议(视书为软件)。
  • 提供多格式文件:尽可能同时提供PDF和HTML格式,避免因工具选择而延误写作。
  • 接受经济回报有限:不要以盈利为主要目的,可将免费PDF与付费可选PDF(作为“打赏”)结合。精神回报(传播思想、革新领域)远高于金钱。

总结:作者以亲身经历和实用建议鼓励学者,将日常教学产生的讲义发展为免费在线出版的教材,以此传播专业知识、提升领域教学水平,并认为这一行动的意义远大于经济收益。

9. Hackers use ZIP file concatenation to evade detection (www.bleepingcomputer.com)

Cloudflare 错误页面显示,网站所有者已禁止您的 IP 地址所在的自治系统编号(ASN)访问该网站。该访问限制导致出现错误代码 1005。页面提供了相关错误的详细信息链接,并提及由 Cloudflare 提供性能与安全保障。

10. Show HN: Jaws – a JavaScript to WASM ahead-of-time compiler (github.com)

Jawsm(发音类似“awesome”)是一个用 Rust 编写的 JavaScript 到 WebAssembly 预编译器。它与 porffor 类似,能生成无需解释器即可执行的独立 WASM 二进制文件,但采用了不同的实现方法。该项目目前为实验性质,尚不适用于生产环境,许多语言特性和内置类型缺失或不完整,最终目标是支持 100% 的 JavaScript 语言特性。

项目动机
作者在开发名为 Crows 的压测工具时启动了该项目。该工具原本仅支持 Rust 编译为 WASM 的代码,但作者认为用 JavaScript 等解释性语言编写小型测试更便捷。当前在 WASM 上运行脚本语言需要嵌入解释器(导致二进制体积和内存占用增大)或使用语言变体(如 TinyGo、AssemblyScript)。作者认为,借助现代 WASM 提案,无需编译解释器即可实现完整的 JavaScript 功能。

当前实现状态
项目约通过 25% 的 test262 测试套件。已实现的关键特性包括:作用域/闭包、try/catch、async/await、生成器。其他已支持的功能包括:变量声明(var/let/const)、循环结构(do..while、while、for、for..in、for..of)、switch 语句、字符串和数字操作、布尔逻辑、数组及多数数组方法、对象字面量、new 关键字、async/await、部分 Promise API、生成器函数、基本的 BigInt 支持等。

主要缺失功能
大部分内置类型及其方法、正则表达式、BigInt 算术等尚未实现。

运行环境要求
由于依赖较新的 WASM 提案(如 WASM GC、异常处理),生成的二进制文件目前可移植性有限。主要使用 V8(通过 Chromium 或 Node.js)配合 WASIp2 的 JavaScript polyfill 运行。最终目标是在支持相关 WASM 提案的任何运行时(如 Wasmtime)上运行。

使用方法
克隆仓库后,通过 execute.sh 脚本运行:./execute.sh --cargo-run path/to/script.js。该过程会生成 WAT 文件、编译为二进制并通过 Node.js 执行。需要 Rust Cargo、较新版本的 wasm-tools 及 Node.js v23.0.0 或更高版本。

未来计划
接下来将致力于实现:基本的正则表达式支持(字面量和基础函数)、BigInt 字面量及基础支持、更好的自动类型转换(如等值检查和运算符使用)、更多基础内置函数(数组、字符串等)。

工作原理
项目将 JavaScript 语法转换为 WASM 指令,利用 WASM GC、异常处理和尾调用优化等提案。通过 Rust 代码和一组类型/函数将 JavaScript 语义映射为 WASM,并使用 tarnik 宏基于类 Rust 语法生成 WASM 指令。例如,通过模拟作用域链来处理闭包,其中变量存储在作用域对象中,函数执行时携带其定义时的作用域引用。

其他信息
项目在 GitHub Sponsors 上获得资助,采用 Apache 2.0 许可证。

11. Show HN: Visprex – Open-source, in-browser data visualisation tool for CSV files (docs.visprex.com)

Visprex:开源的浏览器端 CSV 数据可视化工具

核心定义
Visprex 是一款轻量级数据可视化工具,旨在帮助用户快速建立数据直觉,加速统计建模与分析流程。它完全在浏览器中运行,无需安装或配置。

主要特点

  • 高效快捷:支持在数秒内可视化数据,无需依赖复杂语法,便于快速探索数据集。
  • 隐私安全:所有数据处理均在用户浏览器本地完成,数据不会上传至任何服务器,且不集成追踪或分析软件。
  • 开源免费:代码完全开源(GitHub:github.com/visprex/visprex),可免费在 visprex.com 使用。

适用人群

  • 学生:适合统计建模初学者,无需配置本地环境或编写可视化脚本,降低入门门槛。
  • 数据分析师:支持快速检查表格数据,无需担心隐私或敏感信息泄露,因数据始终保留在本地。

快速使用
用户可通过简单步骤加载 CSV 数据集并启动可视化,操作界面直观,无需额外说明。

12. Physical Intelligence's first generalist policy AI can finally do your laundry (www.physicalintelligence.company)

Physical Intelligence公司发布了首个通用机器人基础模型π0,标志着向人工物理智能迈出第一步。该模型旨在克服当前机器人技术的局限性——即高度专业化且难以适应复杂现实环境——通过构建能够理解语言指令、控制多种机器人并执行广泛物理任务的通用策略。

核心创新与架构:

  • π0是一个视觉-语言-动作(VLA)模型,基于互联网规模的视觉-语言预训练,继承了对图像和文本的语义理解能力。
  • 为处理高频电机控制需求(高达50Hz),模型采用流匹配(一种扩散模型变体)输出连续动作指令,突破了传统语言模型仅能输出离散符号的限制。
  • 训练数据混合了开源机器人数据集(如Open X-Embodiment)与公司自有的大规模多样化数据集,涵盖8种不同机器人执行的灵巧任务,包括折叠衣物、清理桌面、组装箱子等,旨在让模型获得对物理交互的通用理解。

技术路线与能力:

  • 模型可通过直接提示执行分布内任务,或通过微调专精于复杂场景。微调过程类似于大语言模型的后训练,利用高质量数据优化特定任务性能。
  • π0展现了跨平台泛化能力,能控制形态各异的机器人,并在任务中表现出自适应策略(如清理桌面时主动叠放餐具、抖落垃圾等)。
  • 模型在复杂任务中表现出鲁棒性与适应性,例如在折叠缠结衣物时能应对外部干预并进行恢复。

性能评估:

  • 与学术界现有模型(如OpenVLA、Octo)相比,π0在多个高难度任务(如从烘干机取衣并折叠、多物品分类清理)中显著领先。
  • 完整版π0(基于30亿参数VLM微调)相比小规模变体(无VLM预训练)性能提升超过一倍,证明了互联网规模预训练的关键作用。

意义与展望: π0代表了机器人基础模型的重要进展,展示了通过大规模多样化数据与新型架构融合实现通用物理智能的可行性。公司认为,这仅是起点,未来需在长期推理、自主学习、鲁棒性与安全性方面持续突破,并呼吁社区合作以推动技术落地与硬件适配。

13. How we built the Black Friday Cyber Monday 2023 globe (shopify.engineering)

Shopify 2023年黑五网络星期一(BFCM)全球可视化构建解析

本文详细介绍了Shopify为2023年BFCM活动构建的实时3D全球订单可视化地球仪的技术实现、性能优化与视觉设计。

核心视觉元素与实现

1. 订单弧线

  • 概念:每条弧线代表一笔实时订单,连接商家与买家位置。
  • 技术实现
    • 使用四个控制点(P0, P1, P2, P3)定义的贝塞尔曲线,通过调整P1和P2可控制弧线高度。
    • 通过三角形条带网格渲染弧线,利用切线与相机方向的叉积在顶点着色器中实现始终面向观众的效果。
    • 使用UV坐标(v值从0到1)和年龄(age)值,通过噪声函数实现渐变消失的动画效果。
  • 性能优化
    • 初期方案为每条弧线独立网格,每帧需多次绘制调用,影响性能。
    • 采用实例化(Instancing) 技术:所有弧线共享同一基础几何体和材质,通过单次绘制调用渲染。
    • 贝塞尔曲线计算移至GPU,实例属性(控制点、开始时间)存储于交错缓冲区,在顶点着色器中计算位置。
    • 优化后,可单次绘制调用渲染数万条弧线,基准测试在M1笔记本上可渲染百万条。

2. 城市光点

  • 使用实例化粒子(gl.POINTS)渲染,始终面向相机,在地平线处呈现更好辉光效果。

3. 烟花效果

  • 用于庆祝商家首单。
  • 使用二十面体几何体生成烟花爆炸形状,在顶点着色器中模拟重力下落与扩散。
  • 结合延迟因子(delayFactor)和噪声函数实现爆炸渐消效果。
  • 包含发射拖尾(launch trail)与爆炸拖尾(burst trail),通过几何属性区分动画。
  • 同样通过实例化技术,单次绘制调用渲染所有烟花,各实例独立控制开始时间。

4. 相机动画

  • 支持搜索城市,相机平滑移动至目标位置。
  • 使用球面插值(spherical interpolation)控制相机路径,结合lookAt函数朝向城市。
  • 解决相机移动至悉尼等地区时上下颠倒的问题:每帧根据球面坐标(phi, theta)更新相机的up向量。

5. 动画别针与飞机

  • 动画别针:使用react-spring实现弹出动画,通过缓动函数提升视觉质感。
  • 飞机
    • 轨道飞机:跟随两个随机城市间的轨道运动,通过父对象旋转实现环绕。
    • 全部实例化渲染:在着色器中使用三角函数模拟轨道运动,更新currentTime uniform实现动画。
    • “Shopify专属飞机”:在6个轨道间插值,通过正弦波模拟摇摆与转向倾斜。

6. 循环弧线

  • 为订单添加太空翻转的趣味动画。
  • 未使用贝塞尔曲线,而是采用关键帧与三次埃尔米特样条(cubic Hermite splines) 实现更精细的控制。
  • 为克服WebGL最大步长限制(255字节),精简实例属性至17个浮点数,其余在着色器中计算。

全局材质与视觉效果

1. 球体材质

  • 风格:追求手绘风格,灵感来自Risograph印刷。
  • 噪声实现
    • 初期尝试3D psrdnoise(无接缝、无拉伸),但计算开销大。
    • 改用2D psrdnoise,配合自定义UV布局(六个圆形平面)消除拉伸与畸变,通过多层流噪声消除接缝。
  • 材质优化
    • 简化Three.js标准PBR着色器,移除非必要部分,将大部分计算移至顶点着色器,性能显著提升。

2. 星空背景

  • 使用2D psrdnoise生成星星,通过幂函数(pow)过滤保留亮部,结合强度因子产生辉光。

总结

2023年BFCM全球可视化通过实例化技术实现了高性能渲染,将弧线、烟花、飞机等元素的绘制调用优化至单次。结合GPU着色器计算自定义噪声函数(psrdnoise)和关键帧动画,在保证视觉效果的同时,兼顾了移动端性能。整体项目展现了在复杂交互场景下,如何通过技术优化实现既美观又流畅的实时3D可视化。

15. Typesetting Engines: A Programmer's Perspective (blog.ppresume.com)

排版引擎纵谈:程序员的视角

本文从程序员角度评估了几种排版引擎,以确定PPResume简历生成器的默认引擎。评估标准基于其对Knuth-Plass断行算法的支持、CJK排版能力分页功能以及即时预览体验。

核心评估标准

  1. Knuth-Plass断行算法:这是黄金标准的断行算法,通过动态规划最小化文本行尾的参差不齐,从而产生视觉上更平衡、美观的段落。
  2. CJK排版复杂性
    • 字符集巨大:CJK字符集远大于拉丁文字。
    • 文化差异:标点符号用法、间距规则在中文、日文、韩文中各有不同。
    • 字体配对:需要智能切换CJK和拉丁字体以保持视觉一致性。
  3. 分页:生成可打印或数字显示的分页文档。
  4. 即时预览:提升用户体验。

排版引擎评估

HTML & CSS

  • 本质:并非专用排版引擎,是Web内容结构与样式技术。
  • 断行:未实现Knuth-Plass算法,标准CSS选项无法达到同等效果。
  • CJK:浏览器支持,但遵循最佳排版实践需额外努力和库。
  • 分页:非为分页文档设计,可通过JavaScript模拟。
  • 即时预览:若仅在客户端处理则支持。
  • 结论:通用性强,但缺乏专业排版引擎的精细控制和一致性。

LaTeX

  • 本质:基于TeX的文档准备系统,学术和高精度排版的黄金标准。
  • 断行:实现了Knuth-Plass算法。
  • CJK:通过XeTeX/LuaTeX引擎和xeCJK、CTeX等包,提供成熟的CJK支持。
  • 分页:原生设计支持,功能强大。
  • 即时预览:默认无,但通过WebAssembly在浏览器中运行是可能的(存在实验性项目)。
  • 结论:在排版质量、CJK支持和分页方面表现卓越,是生产就绪的解决方案。PPResume的市场竞争对手较少。

LaTeX.js

  • 本质:将LaTeX转换为HTML5的JavaScript库,旨在浏览器中运行。
  • 断行:使用CSS text-justify: inter-word 和软连字符,非真正Knuth-Plass算法。
  • CJK:基于HTML/CSS,遵循最佳实践需额外工作。
  • 分页不支持,这是致命缺点。HTML无法模拟LaTeX的分页和垂直胶水。
  • 即时预览:支持(客户端运行)。
  • 结论:概念演示良好,但功能不完整,非生产就绪的LaTeX替代品。

Typst

  • 本质:现代排版系统,语法受Markdown启发,旨在替代LaTeX。
  • 断行:提供 linebreak: "optimized" 选项,内部实现了Knuth-Plass算法。
  • CJK:支持尚不成熟,存在大量关于字体、标点、间距和语言感知断行的待解决Issue。
  • 分页:原生支持。
  • 即时预览:CLI下通过增量编译实现快速更新;官方Web应用通过WebAssembly运行,但绑定未开源。
  • 结论:很有前景的现代替代方案,但目前CJK支持不稳定,生态系统尚不成熟。

React-pdf

  • 本质:用于创建PDF的React渲染器。
  • 断行内部实现了Knuth-Plass算法
  • CJK:需手动注册字体,不遵循CJK最佳排版实践。
  • 分页:支持,可配置页面大小等。
  • 即时预览:客户端运行时支持。
  • 结论:具备关键的算法和分页能力,但本身非专业排版引擎,缺乏如高级列表、精细间距调整等内置排版功能。

总结与选择

下表总结了各引擎对PPResume需求的满足情况:

排版引擎 Knuth-Plass断行 CJK支持 分页 即时预览
HTML & CSS 部分
LaTeX
LaTeX.js
Typst 部分 部分
React-pdf

只有LaTeX同时满足了对顶尖断行算法、成熟CJK支持和原生分页的核心要求。尽管它缺乏即时预览(可通过WebAssembly方案弥补),但其排版质量的可靠性和生产就绪性使其成为PPResume的默认选择。未来,随着其他引擎(如Typst)的成熟,PPResume可能会考虑增加更多支持。

17. Everything I've learned so far about running local LLMs (nullprogram.com)

本地运行大语言模型的经验总结

背景与动机

作者在过去一个月探索了本地运行大语言模型(LLM)的实践。如今,即使在树莓派上也能运行比2022年初代ChatGPT更智能的模型,而普通台式机或笔记本电脑则能支持更强大的AI。本地运行的优势在于隐私性、离线可用、无限使用、无需注册,且技术迭代迅速(信息数月内即可能过时)。作者出于对“供应商锁定”的担忧(如服务关闭、变更),转向本地部署。

核心技术栈

软件:llama.cpp

  • 特点:仅需C++工具链,无Python依赖;Windows上仅需一个可执行文件(llama-server.exe)和一个模型文件(GGUF格式),通过内存映射加载。
  • 推理模式:GPU推理受显存(VRAM)限制,建议至少8GB显存;若显存不足,建议使用CPU推理(适用于约10B参数模型)。
  • 关键组件llama-server(HTTP服务器,默认端口8080),提供聊天界面和API。
  • 参数建议
    • 上下文大小(--ctx-size):根据需求设置(如8K、128K tokens),防止内存不足。
    • 闪存注意力(--flash-attn):降低内存占用,推荐始终启用。

模型:Hugging Face与GGUF格式

  • 来源:Hugging Face平台,无需注册即可下载多数模型。
  • 格式:GGUF(推测为“Generic Unified Format”的缩写),由社区量化者转换生成。
  • 量化建议:推荐使用4-bit量化(如Q4_K_M),在资源消耗与模型性能间取得平衡。

推荐模型(4-bit量化)

通用模型

  • Mistral-Nemo-2407 (12B):Apache 2.0协议,推理速度约30 t/s,擅长写作、校对和代码审查。
  • Qwen2.5-14B:Apache 2.0协议,性能与Mistral Nemo相当。
  • Gemma-2-2B:快速翻译工具,但可能拒绝处理“冒犯性”内容。
  • Phi3.5-Mini (4B):MIT协议,适合文档摘要与数据提取。
  • SmolLM2-360M:Apache 2.0协议,可在低资源设备(如旧笔记本、树莓派)运行。
  • Mixtral-8x7B (48B):Apache 2.0协议,混合专家(MoE)模型,推理时仅激活13B参数。

代码专用模型(支持填空中间技术FIM)

  • DeepSeek-Coder-V2-Lite (16B):MoE结构,推理时激活2B参数,速度快且代码生成能力强。
  • Qwen2.5-Coder-7B:Apache 2.0协议,性能接近DeepSeek。
  • Granite-8B-Code:Apache 2.0协议,在FIM任务中表现突出。

用户界面与工具

  • 内置界面:llama.cpp的llama-server提供基础聊天界面。
  • 自定义工具:作者开发了命令行工具Illume,集成到Vim中,支持通过API与不同LLM服务交互。
  • FIM技术:通过特定标记(如<|fim_prefix|>)分割前缀、后缀和中间部分,训练模型填充代码。不同模型使用不同的FIM模板。

LLM的局限性与实用场景

主要局限

  1. 不可靠性:易产生幻觉,输出需人工验证。
  2. 上下文长度有限:有效上下文通常较短(如代码约2-3千行)。
  3. 编程能力有限:生成的代码质量类似初级程序员,缺乏维护考量。

实用场景

  1. 文本校对:检查语法、被动语态等,虽建议质量参差但仍有参考价值。
  2. 短篇小说创作:幻觉可转化为创意,但受上下文长度限制。
  3. 生成性娱乐:与历史人物对话、角色扮演等。
  4. 语言翻译:如使用Gemma-2-2B翻译外文内容。

不适用场景

  • 需要绝对正确的任务(如医疗建议)。
  • 需要处理长上下文或复杂维护的代码生成。

总结

本地LLM技术正快速发展,虽在正确性、上下文和编程能力上存在局限,但在校对、创意写作和娱乐等场景已展现实用价值。作者对这项技术感到兴奋,同时强调需保持理性预期,避免过度依赖。

18. Show HN: Chonkie – A Fast, Lightweight Text Chunking Library for RAG (github.com)

Chonkie 是一个专为 RAG(检索增强生成)设计的快速、轻量级文本分块库。该工具旨在高效处理文本数据,以支持基于检索的 AI 应用场景。

19. NYC Subway Station Layouts (www.projectsubwaynyc.com)

文章主题: 本文标题为“纽约地铁站布局”,但正文内容并未提供任何关于纽约地铁站布局的详细描述、分析或介绍。

内容实质: 正文的核心内容是一句关于支持项目的呼吁,邀请读者在“联系/打赏”页面进行打赏以支持该项目。

总结: 该页面并非一篇介绍纽约地铁站布局的知识性文章,而是一个项目的宣传或筹款页面,其旨在请求读者对某个(可能涉及纽约地铁站布局研究或可视化的)项目提供财务支持。

20. Early Cascade Injection: From Windows process creation to stealthy injection (www.outflank.nl)

本文介绍了由Outflank研究者提出的新型进程注入技术 Early Cascade Injection。该技术结合了Early Bird APC注入EDR预加载的原理,针对Windows用户模式进程创建流程,在EDR初始化检测能力前实现隐蔽注入。

核心原理与背景

  • Windows进程创建:分为内核模式和用户模式。内核模式完成后,用户模式由ntdll.dll中的LdrInitializeThunk函数负责,依次加载kernel32.dllkernelbase.dll等依赖,并最终执行应用程序主入口点。
  • 已有技术局限
    • Early Bird APC注入:通过跨进程队列APC在进程初始化早期执行代码,但跨进程APC行为易被EDR监控和检测。
    • EDR预加载:劫持ntdll.dll中的AvrfpAPILookupCallbackRoutine指针实现早期代码执行,但受Loader Lock限制,无法加载新DLL或创建线程,难以运行完整功能代码。

Early Cascade Injection 技术细节

  1. 发现新回调指针:作者发现ntdll.dll中的g_pfnSE_DllLoaded指针(位于.mrdata段)。该指针在进程创建初期可用,且不受Loader Lock约束。通过设置g_ShimsEnabled变量可启用该指针。
  2. 注入流程
    • 创建挂起状态的目标进程。
    • 将“负载存根”和主负载写入目标进程内存。
    • 修改目标进程ntdll.dll中的g_pfnSE_DllLoaded指针,指向“负载存根”,并启用g_ShimsEnabled
    • 恢复进程执行。初始线程先执行“负载存根”,该存根立即禁用g_ShimsEnabled以避免其他Shim指针触发,并通过NtQueueApcThread将主负载作为进程内APC排队。
    • LdrInitializeThunk末尾的NtTestAlert执行APC队列时,运行主负载(如植入体)。
  3. 技术优势
    • 无跨进程APC队列:避免远程执行原语,仅需少量远程内存操作(分配、写入、保护更改)。
    • 隐蔽性强:利用未文档化指针,操作模式新颖,不易被传统检测规则识别。
    • 时机早:在EDR加载用户模式检测钩子(如钩住LdrLoadDllNtContinue)前执行代码,可规避EDR监控。

EDR检测机制分析

  • EDR通常通过进程创建回调注入Shellcode,钩住LdrLoadDllLdrpLoadDllNtContinue等函数,以加载其钩子DLL并初始化检测措施(如API钩子)。
  • Early Cascade Injection在g_pfnSE_DllLoaded回调点(早于DLL初始化)获得控制权,可在此阶段干扰或阻止EDR检测模块的加载。

关键特性

  • 操作隐蔽:无需跨进程原语,降低行为特征。
  • 内存兼容.mrdata段在挂起状态可写,.data段始终可写,无需修改内存保护属性。
  • 执行稳定:利用进程内APC队列,确保在依赖加载完成后执行负载。
  • 当前局限性:依赖未文档化函数指针,可能随Windows更新而失效。

总结

Early Cascade Injection通过深入分析Windows进程创建流程,创新性地利用g_pfnSE_DllLoaded回调指针和进程内APC队列,实现了早期、隐蔽的进程注入。该技术规避了传统注入方法的行为特征,对顶级EDR系统具有较高绕过能力,代表了进程注入技术的演进方向。

21. A skeleton made from the bones of at least eight people thousands of years apart (www.smithsonianmag.com)

比利时波梅吕尔的火葬墓地出土了一具被最初认定为罗马时期(约公元2-3世纪)的骨架。然而,近期研究通过放射性碳定年和古DNA分析发现,该骨架实际由至少八名无亲缘关系的男女骨骼拼合而成,时间跨度巨大。

研究显示,骨架中最早的部分来自约4445年前的新石器时代晚期,而头骨则属于一位公元3-4世纪的罗马女性,其DNA与附近墓地同时期遗骸匹配。这具“拼合骨架”被以胎儿姿势安葬,是墓地中唯一的完整身体,其余76座均为火葬墓。

研究人员提出几种可能性:罗马人在埋葬时扰动了新石器时期的古老墓葬,可能为无头古尸添加了罗马头骨,或者罗马人主动拼合了整具骨架。无论组装发生于新石器时期还是罗马时期,骨骼的选择、排列都显得有意识且符合解剖结构,表明制作者熟悉人体骨骼。

该发现为理解新石器时期和罗马高卢时期的埋葬习俗提供了新视角。学者推测,这种拼合骨架可能与土地主张有关——新石器时期家族群体通过共同埋葬宣示领土,罗马人则可能借此强化对高卢地区的统治权威。遗址靠近河流的地理特征,也可能赋予其长期的精神与战略重要性。

22. ASCII Delimited Text – Not CSV or Tab Delimited Text (ronaldduncan.wordpress.com)

ASCII分隔文本:非CSV或制表符分隔文本

问题背景
文章指出,IBM和Oracle等公司误解了ASCII规范,错误地将“ASCII Delimited Text”定义为CSV格式。常见的CSV和制表符分隔文本存在缺陷:当字段中包含制表符、换行符、引号或逗号时,这些格式容易出错,导致数据导入导出困难。其他格式如管道(|)分隔文本也类似问题,因为分隔符是可打印字符,用户可能误用。

ASCII标准解决方案
ASCII字符集设计了专用控制字符用于分隔:

  • ASCII 31(Unit Separator):作为字段分隔符,替代逗号或制表符。
  • ASCII 30(Record Separator):作为记录分隔符,替代换行符。
  • ASCII 29(Group Separator)ASCII 28(File Separator):用于更高级别的分组和文件分隔。

优点与正确用法
使用这些控制字符,文本文件格式可轻松写入和读取,无需转义字符,且字段内容无限制。这避免了可打印字符作为分隔符带来的冲突问题。文章强调,ASCII Delimited Text 应遵循ASCII规范,使用控制字符28-31,而非CSV等格式。

总结
文章主张,正确的ASCII分隔文本应利用ASCII控制字符28-31作为分隔符,以提升数据交换的可靠性和简洁性,克服传统分隔文本的固有缺陷。

23. Chimpanzees' performance on computer tasks changes when people watching them (www.cell.com)

根据提供的HTML内容,当前页面并未加载出文章正文。页面显示为一个技术性的拦截界面,提示需要启用JavaScript和Cookie才能继续访问。因此,无法对标题《Chimpanzees' performance on computer tasks changes when people watching them》所对应的文章内容进行总结。

24. My simple knowledge management and time tracking system (henrikwarne.com)

该系统包含两个纯文本文件:notes.txt 用于存储知识和命令,worktime.txt 用于记录每日工作时间及内容。

知识管理 (notes.txt):

  • 用途: 记录需要记住的信息,例如shell命令、软件发布步骤、工具安装配置、公司流程等。
  • 添加方式: 通常将新条目添加在文件顶部。如果与已有内容相关,也会插入到相关位置附近。允许存在重复条目。
  • 查找方式: 通常从文件顶部开始搜索(最新的条目最常被查找),或使用grep查找所有相关条目。
  • 记录示例: 包括查看Kubernetes部署镜像的kubectl命令、查找特定Docker镜像的gcloud命令、在日志中搜索错误的grep命令、交互式变基的git rebase -i命令,以及用于测试API的curl命令(含头部、正文等)。
  • 其他内容: 还包括新电脑(如MacBook)的初始设置步骤(安装Xcode、Homebrew等)、开发环境配置、项目发布与部署流程、系统日志位置等公司内部流程。

时间追踪 (worktime.txt):

  • 用途: 记录每日工作时间段和具体工作内容。
  • 格式: 按逆时序排列(最新日期在顶部)。每行格式示例为:240322 7:30-11:25 13:15-17:50 SNE-1635 Unzipping files...。使用空行分隔不同周次。
  • 内容: 工作描述通常包含简要说明,可能包括Jira工单号或直接使用提交信息。这对绩效评估和回顾项目时间花费很有帮助。
  • 计算: 附带一个Python脚本,用于计算每日工作时长以及每周总工时和平均工时,便于核对是否达到每周40小时标准。

系统优势:

  • 长期使用: 该简单系统已使用超过15年。
  • 简单性与可靠性: 仅需两个纯文本文件,无需配置,无供应商锁定,数据格式不会过时,无需花时间进行信息组织或打标签。
  • 核心目的: 在首次执行任务时记录步骤,便于后续操作,直到最终牢记。即使有LLM等工具可以生成命令,将重要命令记录下来有助于学习记忆。