2024-05-03

34 篇热帖

2. Cardio fitness is a strong, consistent predictor of morbidity and mortality (bjsm.bmj.com)
3. Lithium-free sodium batteries exit the lab and enter US production (newatlas.com)

文章标题:无锂钠电池走出实验室并进入美国生产

核心内容总结:

  1. 生产启动:钠离子电池先驱公司 Natron Energy 已在密歇根州霍兰的工厂正式启动商业化生产,这被认为是美国首个商业规模的钠离子电池生产项目。该公司原计划2023年启动量产,虽略有延迟但已实现。
  2. 技术优势
    • 材料丰富且可持续:钠元素储量比锂丰富500至1000倍,且提取对环境的影响更小。其电池全部使用铝、铁、锰等大宗商品材料,不依赖钴、镍等冲突矿产或受地缘政治影响的供应链。
    • 性能特点:具备 更快的充放电速度(比锂离子电池快10倍)、更长的循环寿命(约5万次)和 更高的安全性(化学性质稳定、不易燃)。但其能量密度(约70 Wh/kg)相对较低,更适合固定储能应用。
  3. 应用场景:主要面向数据中心(尤其是AI数据存储中心)和电动汽车充电站等需要快速充放电和长寿命的固定式储能市场。未来计划扩展至电信等工业电力市场。
  4. 行业背景与前景:钠离子电池技术作为更可靠、可能更便宜的储能方案,近年来关注度升高。尽管大多数研究仍处于实验室阶段,Natron已率先实现规模化生产。公司计划将霍兰工厂产能逐步提升至每年600兆瓦时,并作为未来千兆瓦级生产设施的蓝本。首次交付预计于2024年6月开始。
  5. 公司定位:Natron强调其产品有助于实现经济电气化,且不使用争议性矿物或对环境有负面影响的材料。
4. Making a 3D modeler in C in a week (danielchasehooper.com)

用C语言在一周内构建3D建模器

作者参加了为期一周的“Wheel Reinvention Jam”编程活动,旨在重新审视现有软件系统。他决定用C语言从零开始构建一个名为“ShapeUp”的3D建模器。

技术选型与动机

  • 初衷是挑战快速构建3D项目,关键在于采用了**光线行进符号距离场(SDFs)**技术,相比基于三角形的渲染器,其实现速度更快,能快速生成带有颜色、软阴影和环境光遮蔽的场景。
  • 选择C语言的原因是其编译速度快、语法简洁、便于控制内存布局,且作者拥有22年的使用经验。项目能轻松编译为原生代码和WebAssembly。

核心实现

  1. 数据结构与内存管理

    • 模型由Shape结构体定义,包含位置、尺寸、角度、颜色等属性。
    • 形状存储在静态分配的数组中(最大100个),避免了动态内存分配的复杂性和潜在失败。
    • 动态内存分配仅在三处使用(保存文件、导出OBJ、生成GLSL着色器),且均在函数结束时立即释放,体现了C语言对内存布局的可控性。
  2. 用户界面

    • 采用**即时模式UI(IMGUI)**方案,通过枚举Control来跟踪UI焦点状态和鼠标操作,这种方式易于调试和使用编程语言进行元素定位。
  3. 主要技术模块

    • UI与3D控件、键盘快捷键。
    • GLSL着色器生成器与光线行进渲染器。
    • 基于GPU的鼠标选择功能。
    • 用于模型导出的行进立方体算法

开发挑战与反思

  • 与raylib库的摩擦:作者指出raylib存在诸多设计问题,如滥用int代替枚举导致缺乏类型检查、基本参数验证缺失、依赖库问题处理不当、附属的raygui UI库功能简陋且存在缺陷。这些因素严重影响了开发体验,作者最终通过直接使用OpenGL函数或自行实现功能来规避问题,并表示未来会考虑使用sokol库替代。
  • 时间管理与策略:在6天内完成项目,作者强调了正确优先级和避免分心的重要性。他采用“逐步构建”的策略,确保在任何时候都拥有一个可用的建模器,逐步添加功能。

项目成果

  • 成功构建了一个能在浏览器中运行的3D建模器,可创建有意义的模型并导出为.obj文件,支持跨平台运行和文件存取。
  • 整个项目代码量约2024行C代码和250行GLSL着色器代码,展现了在紧凑代码量下实现基本功能的可能性。
  • 作者反思,项目的特别之处在于正确的品味(选择做什么)、所需的知识以及一周内完成项目的纪律。
5. Online Cryptography Course (2017) (crypto.stanford.edu)

课程概述:
斯坦福大学Dan Boneh教授主讲的免费在线密码学课程(2017年)。课程内容系统全面,对应免费教材《应用密码学研究生课程》。正式学习(含作业、项目和期末考试)需访问Coursera课程页面。

课程结构(7周):

  1. 第一周:流密码

    • 密码学简介、离散概率速成。
    • 流密码核心:一次性密码本、伪随机生成器、语义安全。
    • 流密码的攻击与实例。
  2. 第二周:分组密码

    • 分组密码概述(DES、AES)。
    • 分组密码的使用模式:针对单次密钥和多次密钥(CPA安全),包括CBC和CTR模式。
  3. 第三周:消息完整性

    • 消息认证码(MAC)的定义与构造(CBC-MAC、NMAC等)。
    • 抗碰撞哈希函数:概念、生日攻击、Merkle-Damgård结构。
    • HMAC:基于哈希的MAC。
  4. 第四周:认证加密

    • 认证加密的重要性与定义(主动攻击、选择密文攻击)。
    • 标准构造方法(结合密码与MAC)。
    • 实践中的陷阱(TLS 1.2、填充攻击等)。
    • 扩展主题:密钥派生、确定性加密(SIV)、可调整加密(磁盘加密)、保格式加密。
  5. 第五周:基本密钥交换

    • 密钥交换问题与三方可信方案。
    • Diffie-Hellman协议与公钥加密简介。
    • 数论基础:模运算、费马与欧拉定理、计算难题。
  6. 第六周:公钥加密

    • 基于陷门置换的公钥加密:RSA系统(定义、构造、PKCS1、安全性分析)。
    • 基于Diffie-Hellman的公钥加密:ElGamal系统(构造、安全性、变种)。
  7. 第七周:数字签名

    • 数字签名方案(具体内容在对应幻灯片中)。
    • 基于哈希的签名。

关键资源:

  • 免费教材: 《应用密码学研究生课程》(D. Boneh & V. Shoup),包含安全证明与习题。
  • 每周资料: 包含视频讲座和幻灯片(PDF/PPTX格式)。
6. I'm writing a new vector search SQLite Extension (alexgarcia.xyz)

文章标题: I'm writing a new vector search SQLite Extension

摘要:

本文介绍了作者 Alex Garcia 正在开发一个新的 SQLite 向量搜索扩展 sqlite-vec,旨在替代其早期发布的 sqlite-vss

  • 核心产品sqlite-vec 是一个纯 C 编写、无外部依赖的 SQLite 扩展。它提供自定义 SQL 函数和虚拟表,用于快速向量搜索,以及处理向量的实用工具(如量化、格式转换和向量算术)。使用方式完全基于标准 SQL(如 CREATE VIRTUAL TABLE, INSERT, SELECT)。

  • 开发动机与优势

    • 跨平台与嵌入性:纯 C 和无依赖的特性使其可运行在所有平台(Linux/macOS/Windows)、浏览器(通过 WebAssembly)以及移动设备等小型设备上。二进制文件体积也更小(数百KB级别)。
    • 内存管理优化:默认将向量分块存储在阴影表中,进行 KNN 搜索时逐块读取,避免了必须将所有数据存储在 RAM 中的问题。
    • 现代功能支持:基于新的向量搜索研究,支持自适应长度嵌入(如 Matryoshka 嵌入)以及 int8/位向量量化(二进制和标量量化),从而在速度、精度和存储空间上提供更多控制。
    • 当前限制:初始版本仅支持穷举全扫描向量搜索,暂不支持近似最近邻(ANN)算法,但未来计划添加 IVF + HNSW 支持。
  • 旧版问题:被替代的 sqlite-vss 存在诸多问题,例如仅支持 Linux 和 macOS、向量全部存储在内存中、存在事务相关 bug、编译极其困难、缺少常见的向量量化操作等。这些问题主要源于其对 Faiss 库的依赖。

  • 演示示例:文章提供了一个在浏览器中运行的交互式演示,使用 WebAssembly 版本的 sqlite-vec 和一个包含 4800 部电影概要的数据库。演示展示了如何使用 KNN 查询搜索相似电影(使用汉明距离计算二进制向量的相似度)。

  • 当前状态:核心功能已经实现,但错误处理和测试仍不完善。代码中仍有大量 TODO 项(共 246 处)。作者目标是在大约一个月后完成这些工作,发布首个 v0.1.0 版本,并附上完整文档、演示和语言绑定。文章最后邀请有兴趣支持该项目的企业联系作者。

9. Ontario family doctor says new AI notetaking saved her job (globalnews.ca)

文章摘要:安大略家庭医生称AI记事软件挽救了她的职业生涯

医生困境

  • 家庭医生Rosemary Lall在安大略省斯卡伯勒的诊所工作近30年后,因繁重的行政文书工作濒临辞职。
  • 她表示,患者相关记录更新、表格填写、病假证明和转诊信等任务每天额外占用长达2小时,导致她失去工作乐趣。
  • 安大略省医学会估计,家庭医生每周平均花费19小时处理行政任务,其中约4小时用于撰写笔记或填写表格。

AI解决方案

  • Lall开始使用AI Scribe程序,该程序由安大略省医学会下属的数字技术部门OntarioMD运营。
  • 在获得患者同意后,AI Scribe在诊疗过程中实时记录医生和患者的对话,并生成符合规范的SOAP笔记
    • S(主观信息):患者描述的症状
    • O(客观信息):医生检查发现
    • A(评估):医生的诊断
    • P(计划):治疗方案
  • AI处理信息仅需几分钟,医生可在后台完成笔记的同时接诊下一位患者,并可要求AI调整或补充细节。

成效与试点

  • 使用10个月后,Lall认为AI显著减轻了认知负荷,使其能更专注于患者护理,并建议该工具应成为所有医生的“新标准”。
  • 安大略省福特政府推出试点计划,允许150名家庭医生使用AI Scribe。卫生部长Sylvia Jones表示早期反馈积极,患者和临床医生均感受到益处,但政府将谨慎推进并评估效果。

隐私与准确性疑虑

  • 自由党健康评论员Adil Shamji博士担忧AI工具若执行不当可能影响患者隐私和笔记准确性,强调需确保“最小化监督下的自主运作”需严格实施。
  • 安大略省新民主党健康评论员France Gélinas认为AI将成为医疗护理未来的一部分,但必须通过试点妥善解决隐私保护问题,维护医患信任关系。

个人影响

  • Lall表示,去年圣诞节是29年来首次无需更新患者笔记的节日,AI记事软件彻底改善了她的工作与生活平衡。
  • 她强调:“这改变了我的生活……我绝不会再回去了。”
10. Stirling PDF: Self-hosted, web-based PDF manipulation tool (github.com)

Stirling PDF:自托管Web端PDF处理工具

Stirling PDF 是一个功能强大的开源PDF编辑平台。支持作为个人桌面应用、在浏览器中运行,或部署在用户自己的服务器上并提供私有API。所有操作均在本地完成,无需将文档发送至外部服务。

主要功能

  • 多端可用:提供桌面客户端、浏览器界面及可自托管的服务器(含私有API)。
  • 工具丰富:超过50种PDF工具,包括编辑、合并、分割、签名、加密、转换、OCR识别、压缩等。
  • 自动化工作流:支持在界面中直接构建无代码处理流水线,并通过API批量处理数百万份PDF文件。
  • 企业级特性:支持单点登录(SSO)、操作审计及灵活的本地部署方案。
  • 开发者平台:提供REST API,几乎涵盖所有工具功能,便于集成到现有系统。
  • 多语言界面:支持超过40种语言。

完整功能列表请查阅官方文档:https://docs.stirlingpdf.com

快速启动

docker run -p 8080:8080 docker.stirlingpdf.com/stirlingtools/stirling-pdf

部署完成后,访问 http://localhost:8080 即可使用。
更多安装方式(包括桌面版与Kubernetes部署)详见官方文档指南

相关资源

支持与贡献

  • 社区交流:通过Discord参与讨论
  • 错误报告:通过GitHub Issues提交
  • 参与开发:欢迎贡献代码,请参阅CONTRIBUTING.md。项目使用Task作为统一命令运行器,可通过task install开始设置。
  • 翻译指南:参见翻译指南

许可证

Stirling PDF采用开源核心模式,具体条款详见LICENSE

11. CSS Text Box Trim (github.com)

CSS Text Box Trim 总结

核心概念

CSS Text Box Trim 是一个 CSS 属性,用于移除文本块上方的空白间距,使文本顶部与其容器顶部对齐。该属性最初名为 leading-trim,后更名为 text-box-trim

基本用法

通过 text-box-trim 属性控制修剪方向,配合 text-box-edge 属性定义文本边缘对齐点:

.text-box-trim {
  text-box-trim: both;          /* 修剪顶部和底部 */
  text-box-edge: cap alphabetic; /* 上边对齐大写字母顶端,下边对齐基线 */
}

浏览器支持(截至2025年初)

  • 默认支持:Chrome 133+、Edge 133+、Safari 18.2+
  • 未实现:Firefox、Opera
  • 🔄 此前版本需要启用浏览器标志(如Chrome 128+、Safari 16.4+)

关键特性

  • 文本边缘值基于字体的 OpenType 元数据定义,也可通过 CSS 字体度量覆盖
  • 支持的值包括:normaltextexcapideographicideographic-ink 及其组合

主要应用场景

  1. 按钮文本居中:消除行高带来的额外空间,实现精确垂直居中
  2. 间距系统一致性:解决行高破坏设计系统间距规律的问题
  3. 图标对齐:使图标与文本基线精确对齐
  4. 图文混排:消除文本与相邻图片间的多余空白
  5. 艺术排版:在 logo 设计和艺术排版中对齐不同文本元素

规范与开发状态

  • W3C CSS 工作组正在积极开发此特性
  • 已有部分浏览器实现,但存在嵌套元素偏移等问题仍在修复中
  • Web 开发者可通过 WebPlatformTests 和反馈渠道参与特性完善

该特性解决了数字排版中长期存在的垂直对齐问题,为精确控制文本布局提供了标准化方案。

13. Show HN: Hacker Search – A semantic search engine for Hacker News (hackersearch.net)

Hacker Search 是一款基于Hacker News历史数据的语义搜索引擎,旨在帮助用户了解HN读者对各类话题的看法与见解。

该工具主要适用于两种场景:一、探究HN读者对特定话题的情绪倾向;二、寻找HN社区内关于用户感兴趣话题的专家级见解。

使用建议:

  • 提问方式:将查询构造为面向HN读者群体的提问(例如“你们如何看待……”)。
  • 熟悉产品:可先尝试页面提供的示例问题以了解功能。
  • 优化查询:若结果相关性不足,可通过消除歧义使问题更精确(例如使用“关于身份验证的clerk服务”代替“clerk”)。
  • 数据范围:默认覆盖最近三年的评论数据。若需更早的数据或希望搜索提交内容而非评论,可使用其单独的搜索功能。
  • 扩展搜索:网站还提供针对Hacker News提交内容的语义搜索功能。

注:该网站与Hacker News或Y Combinator无关联或赞助关系。

14. Interview with Marian Rejewski, the first person to crack Enigma (1974) [video] (www.flyingpenguin.com)

本文介绍了波兰驻伦敦大使馆于2023年6月发布的一系列罕见视频采访,采访对象是二战英雄、首位破解恩尼格玛(Enigma)密码的马里安·雷耶夫斯基(Marian Rejewski)。这些视频在YouTube上的观看量虽然不高,但其内容意义重大,雷耶夫斯基在其中描述了二战前后在密码破解方面的重大突破,并指出了英国在战后很少承认波兰在此领域作出的关键贡献。

采访的核心内容包括:

  • 早期合作与突破:提及了法国、英国和波兰在密码破译上的合作代号(X、Y、Z)。
  • 破解过程:详细讲述了1932年成功破解恩尼格玛密码的经过,包括如何利用当时看似“平庸”(如“A-A-A”、“Q-W-E”)的密钥设置作为突破口。
  • 技术演进:介绍了从最初手动的“烤架法”(grill method)到“循环计数器”(cyclometer)的演进。循环计数器能够快速处理超过10万种可能的恩尼格玛密钥组合(基于转子序列生成17576种位置组合,再乘以6种序列可能)。
  • “Bomba”机器:重点介绍了1938年波兰研发的“Bomba”密码破译机,该机器能够自动化完成相当于28名以上密码分析员的工作量,极大地提升了效率。
  • 技术移交与战时合作:叙述了1939年波兰将恩尼格玛破译技术和“齐加尔斯基纸片”(Zygalski sheets)移交给英国的过程。此外,还描述了战时波兰与英国的合作方式——波兰密码分析员在巴黎将破译的德国恩尼格玛密钥通过电报发送给布莱切利公园(Bletchley Park),并采用了“近乎滑稽”的安全措施:用德国自己的恩尼格玛密码机进行加密。

文章附有多张历史图片,包括1938年位于华沙南部Pyry森林的波兰密码局(Biuro Szyfrów)秘密行动中心照片、三位波兰密码学家(雷耶夫斯基、罗兹基、齐加尔斯基)的合影,以及一块2002年立于布莱切利公园、位置隐蔽以纪念首批破解恩尼格玛密码者的匾额特写。

15. Woodworking as an Escape from the Absurdity of Software (alinpanaitiu.com)

本文讲述了一位独立软件开发者如何通过木工创作来逃避软件开发中的荒谬感与职业倦怠,寻找心理疗愈与真实的生活反馈。

转行动机

作者长期开发 macOS 应用,面对用户日益不合理的需求(如要求显示器调节软件控制音量或跨平台支持)、无休止的负面反馈、AI 技术带来的行业焦虑,以及久坐导致的身体劳损,对虚拟、无形且孤独的数字工作感到厌倦。他渴望转向能带来真实物理反馈、可见成果和肌肉锻炼的实体劳动。

木工项目与实践

作者分享了多个由简入深的木工项目,展现了从数字世界向物理世界过渡的探索过程:

  • 精细手工与声学探索:制作了带磁铁的现代主义风格国际象棋;参加课程手工打造罗马尼亚长笛(Kaval),并研究其空气动力学原理,致力于制作适应所有音阶的“通用长笛”。
  • 情绪疗愈:在遭遇荒谬的用户反馈时,通过随手雕刻一根简单的擀面杖来平复心情,体验到了暂时屏蔽数字噪音、专注动手创造的解脱感。
  • 实用家具制作:利用捡拾的树枝、回收木材和廉价松木板,制作了床头柜、大书架、果园长凳、窗台宠物凳和原木咖啡桌。在制作床上电脑桌时,因技术不足导致黄铜合页安装失败,但他将缺陷转化为桌子独特的“表情”,并借此反思了编程中过度追求“最优解”的执念,认识到“足够好”的实用主义在现实中的价值。
  • 工作台与工具维护:将旧编程桌改造为木工工作台,配备了手工刨、日式拉锯等工具。此外,还自制了水杯架、长笛架,并总结了使用金刚石磨刀板与皮革荡刀的高效磨刀技巧。

反思与感悟

作者坦承自己拥有选择生活方式的经济与时代特权,但强调特权并不能消除职业倦怠与心理内耗。木工创作不仅让他摆脱了无休止的技术迭代与代码焦虑,更通过打造有形、持久的实体物品,治愈了数字时代带来的虚无感、短暂性与孤独感。

16. TSMC Jumps into Silicon Photonics, Lays Out Roadmap for 12.8 Tbps Interconnect (www.anandtech.com)

该内容展示了一个技术论坛的板块结构,涵盖多个硬件与软件讨论领域,具体分类如下:

硬件相关板块:

  • CPU与超频、主板、显卡、内存与存储、显示器、电源、机箱与散热:讨论台式机核心组件的选择、问题排查与性能优化。
  • 网络、笔记本电脑、外设与组件、电脑组装:涵盖网络设置、移动设备以及通用硬件组装与故障排除。
  • 数字摄像与视频、游戏主机、移动设备、音频组件、电视:专注于消费电子和娱乐设备的讨论。

软件与系统板块:

  • Windows、苹果、开源软件、操作系统、编程:讨论各类操作系统、应用软件及软件开发。
  • PC游戏、分布式计算、安全:专注于游戏体验、分布式项目计算及计算机安全。

其他综合板块:

  • 热门优惠与赠送、非主题讨论俱乐部、政治与新闻、咨询技术专家、车库:涵盖优惠信息、开放讨论、时事新闻、深度技术交流以及汽车话题。
  • 家居与园艺、论坛问题与反馈:讨论家居改进和处理论坛相关事务。

用户活跃度统计: 各板块均列出了主题数和消息数,例如“电脑组装”板块拥有约31.4万个主题和250万条消息,“非主题讨论俱乐部”拥有约79.4万个主题和1830万条消息,反映了不同板块的讨论热度和用户参与程度。

17. Lowercase – A simple way to take and share notes (www.lowercase.app)

Lowercase:简洁的笔记记录与分享工具

该工具提供以下核心功能,旨在简化笔记的创作与分享流程:

  • 幻灯片演示创建:可将笔记文档直接转换为公开的HTML格式幻灯片演示文稿。
  • 可选个人资料页面:用户可启用个人主页,用于展示自己选择发布的笔记内容。
  • Markdown格式快捷方式:提供对常见Markdown格式的快捷输入支持,方便快速排版。
  • 代码片段高亮:支持对代码片段进行语法高亮,并提供了多种常用主题供选择。
18. Georgia Tech, Meta create open dataset to advance solutions for carbon capture (news.gatech.edu)

Georgia Tech与Meta合作创建开放数据集以推动碳捕获解决方案

问题背景

为避免灾难性气候变化,必须处理过量的碳排放。仅靠减排已不足够,直接空气捕获技术(从大气中抽取二氧化碳)具有巨大潜力。但该技术面临重大挑战:每种环境和地点都需要独特定制的设计(如湿度、温度、气流参数各异)。

解决方案:OpenDAC数据库

佐治亚理工学院(Georgia Tech)与Meta合作开发了一个大规模开源数据库OpenDAC,旨在简化并加速直接空气捕获技术的设计与实施。该数据库使团队能够训练出比现有化学模拟快几个数量级的AI模型

数据库特点与规模

  • 包含8,400种不同材料的反应数据
  • 基于近4,000万次量子力学计算
  • 被认为是同类数据库中最大、最全面的

合作过程与研究重点

  • Meta的FAIR团队寻求利用机器学习应对气候变化,选定直接空气捕获领域,并与在材料化学领域具有专长的Georgia Tech合作
  • 研究聚焦于金属有机框架,这类材料因其笼状结构和捕获二氧化碳的能力而备受关注
  • Georgia Tech团队负责提供数据库输入信息,包括几乎每种已知MOF的结构及其与二氧化碳和水分子的相互作用
  • 数据库预测MOF相互作用和能量输出,需精确到每个原子的位置和化学元素

机器学习应用与成果

  • FAIR团队使用Georgia Tech提供的输入运行量子化学计算(耗资约4亿CPU小时),并基于计算结果训练机器学习模型
  • 训练后的AI模型能准确预测数千种MOF与二氧化碳的相互作用,其精度可与传统量子化学计算媲美,但速度大幅提升
  • 团队从数据库中识别出241种极具潜力的MOF用于直接空气捕获

意义与展望

  • 直接空气捕获技术仍处于初期阶段,但OpenDAC等突破性工具的开发对实现2050年净零碳排放目标至关重要
  • 研究团队已将整个项目(数据、模型、算法)开源,希望推动科学界共同寻找合适材料
  • 该数据库有望加速碳捕获等负排放技术的发展,为应对气候变化做出实质贡献

研究信息

  • 研究成果发表于《ACS Central Science》期刊(2024年)
  • Georgia Tech多名研究生为论文共同作者
22. Figma's Journey to TypeScript (www.figma.com)

Figma 从 Skew 迁移到 TypeScript 的历程

迁移背景与原因

Skew 是 Figma 早期为构建原型查看器而开发的自定义编译到 JavaScript 的语言。虽然最初它带来了快速的编译时间和高级优化,但随着代码规模扩大,其缺点日益凸显:新员工上手困难、难以与 Figma 其他代码库集成、且外部开发者生态系统缺失。维护 Skew 的成本逐渐超过了其优势。

实现迁移的关键因素

迁移在近期得以实现,主要基于三个条件:

  1. WebAssembly 支持成熟:移动浏览器在 2018 年广泛支持 WebAssembly,并在 2020 年性能趋于稳定,使得使用 Figma 的 C++ 引擎成为可能。
  2. 性能损失可控:通过用 C++ 引擎替换 Skew 引擎的核心组件(如文件加载等热点路径),即使切换到 TypeScript,性能损失也大大降低。
  3. 团队资源充足:Figma 的原型和移动端团队扩大,使得能分配资源专注于此次开发者体验改进。

迁移过程

Figma 采用渐进式迁移策略,分三个阶段完成:

  1. 第一阶段:编写 Skew,构建 Skew:保持原有构建流程,同时开发转译器,并在 GitHub 中提交生成的 TypeScript 代码以供预览。
  2. 第二阶段:编写 Skew,构建 TypeScript:当 TypeScript 构建包通过所有单元测试后,开始将生产流量切换到由 TypeScript 代码构建的服务。开发者仍编写 Skew 代码,由转译器自动转换。
  3. 第三阶段:编写 TypeScript,构建 TypeScript:选定一个无代码合并的时间点,停止自动生成过程,删除 Skew 代码,正式切换到 TypeScript 作为开发源码。

转译器开发与挑战

他们基于 Figma 前任 CTO Evan Wallace 的早期工作,开发了一个 Skew 到 TypeScript 的转译器。在过程中遇到了几个主要技术挑战:

  • 数组解构性能问题:TypeScript 代码中使用数组解构导致性能下降,通过改为直接索引参数数组解决了该问题,帧延迟提升了高达 25%。
  • 去虚拟化优化差异:Skew 编译器中的“去虚拟化”优化在 TypeScript 中不存在,导致 Smart Animate 功能在迁移中出现问题。通过添加日志监控和修复相关调用点得以解决。
  • 初始化顺序重要性:TypeScript 中符号的初始化顺序很重要,与 Skew 不同。转译器被调整以生成正确排序的代码,并重新引入了 TypeScript 命名空间以保证可读性。

开发者体验保障

  • 源映射(Source Maps):为确保迁移期间的调试体验,他们实现了新的源映射生成流程,将 Skew 代码位置通过 TypeScript 映射到最终的 JavaScript 代码,使开发者能持续有效调试。
  • 条件编译处理:Skew 中的条件编译功能在 TypeScript 中不直接支持。他们通过将条件逻辑移入函数体,并利用 esbuild 的“defines”和死代码消除功能来实现类似效果,尽管导致最终包体积略有增加。

迁移成果与未来

迁移完成后,关键代码库得以现代化,获得了 TypeScript 的诸多优势:与内部和外部代码轻松集成、利用活跃的 TypeScript 生态系统(如 linters、bundlers、静态分析工具)、支持现代 JavaScript 特性(如 async/await)、以及新开发者更顺畅的上手体验。Figma 表示,尽管 Skew 在当初是正确选择,但技术的快速成熟使得迁移到 TypeScript 现在是必要且有益的。未来他们计划进一步利用 TypeScript 生态,并整合其他代码库。

23. Building a rocket engine from scratch (blog.ablspacesystems.com)

E2火箭发动机开发摘要

E2发动机特点
E2发动机设计简单、坚固且耐用,使用最常用的推进剂Jet-A和液氧,采用稳健的燃气发生器循环,由单轴涡轮泵驱动。其在测试中表现出色:在28次启动和1300秒运行后,性能无衰减,寿命达到预期的4倍。该发动机应用于RS1火箭的三个变体:二级使用真空版本,一级使用海平面径向和中心版本(双室结构),均产生超过16,000磅力的推力。

开发背景与决策

  • 从零开始:2018年启动,基于教材、NASA专著和研究论文进行设计,无现成引擎基础。
  • 关键设计选择
    1. 循环选择:燃气发生器循环,因其效率适中且组件可独立测试。
    2. 核心组件:涡轮泵、主燃烧室、主喷注器和燃气发生器。
    3. 喷注器:采用针栓式设计(类似阀门),简化制造,避免传统喷头式喷注器的复杂流道。
    4. 燃烧室:使用3D打印技术,材料为高温合金Inconel,通过冷却通道解决热管理问题。
  • 垂直整合:因外部制造成本高、周期长(如涡轮叶片报价1.8万美元,交期4个月),内部引入5轴机床等设备,将关键部件(如叶轮、涡轮)生产周期从数月缩短至数天,显著提升迭代效率。

团队与测试历程

  • 团队建设:初期仅5人,注重工程师的实践能力、跨领域理解力和主动性,强调小团队的高效与自主权。
  • 测试进展
    • 2019年:在太空港进行首次压力供给测试,验证燃气发生器和燃烧室,但发现针栓喷注器易熔毁。
    • 2020年:在爱德华兹空军基地进行涡轮泵集成测试,解决熔毁和稳定性问题,并更换为更可靠的喷注器类型。
    • 2021年:在莫哈维建立新测试场,开始全尺寸飞行发动机测试,总运行时间达数千秒。
    • 2022-2023年:升级推力,优化模块化设计,并建立专用生产测试场。

经验总结
开发过程中解决了众多挑战,如粉末污染、部件熔毁、密封泄漏等,强调持续测试的重要性。通过迭代优化,E2发动机已测试50台,运行数百次,积累大量热试时间。未来将继续推进团队建设和发动机优化,巩固从问题中积累的经验。

24. Gene banks aren’t enough to save the world’s food (longnow.org)

基因库不足以拯救世界粮食

基因库是保障全球粮食安全的关键资源,但它们面临严重威胁。在俄罗斯入侵乌克兰期间,哈尔科夫植物遗传资源银行遭炮击,存放着16万份作物种子和植物样本的收藏被部分烧毁。叙利亚内战期间,位于阿勒颇的国际干旱地区农业研究中心(ICARDA)收藏的数万份小麦等作物品种也遭洗劫并被彻底摧毁。

作为全球基因库的“终极备份”,斯瓦尔巴全球种子库储存了数十万种作物种子,但该地点正迅速变暖,永冻土融化曾导致入口处洪水。此外,冷冻保存的种质资源需要定期萌发以保持活力,但土壤退化、病虫害和气候变化的快速演变,使其无法保证能适应未来的环境。

农业生物多样性正在迅速衰退。自1900年以来,农民田间保存的遗传多样性已损失约四分之三;全球近十分之一的家畜品种已灭绝,且每月仍有数个品种永久消失。单一作物种植模式(包括转基因和科学杂交品种)虽追求高产,却使其更易受病害侵袭。例如,意大利普利亚地区的橄榄树因一种从哥斯达黎加引进的细菌而大面积死亡,最终拯救它们的是田间野生橄榄品种的嫁接技术,而非仅依赖种质库。

多样性是韧性的关键。人类历史上曾利用至少1万种不同植物,如今主要种植不到150种。研究表明,每周摄入至少30种植物的饮食有益健康。支持多样化的食物生产者、复兴传统农业实践,是应对危机的重要途径:

  • 传统农业方法:混合农场实践再生农业,利用传统牲畜粪肥替代化肥。
  • 免耕农业:减少对化肥和水的依赖,保护田间生物多样性。
  • 间作系统:如中美洲的玉米田间作南瓜和豆类,为土壤固氮。
  • 古法农业:墨西哥城的“浮田”(chinampas)实现一年多熟,原住民的传统生态知识(如控制性火烧、农林复合经营)在有限土地上高效生产并保护多样性。

基因库虽是必要的“保险策略”,但真正的出路在于将种子和卵子从冷冻库中取出,重新种植到土壤、农场和牧场上,最终端上餐桌。乌克兰哈尔科夫部分未被摧毁的收藏已转移至西部安全地点,而该国真正的财富在于其肥沃的黑钙土,那里的作物品种将继续在变化的环境中进化。

总结:确保未来粮食安全不能仅依赖冷冻基因库,必须通过恢复田间多样性、支持传统农业和多样化饮食,将农业生物多样性重新融入生产系统与日常生活。

25. YouTube's Legal Team sent me a letter [video] (www.youtube.com)

视频标题: YouTube's Legal Team sent me a letter! 😃

核心内容: 该视频是创作者收到YouTube法律团队来信后发布的内容。视频页面本身包含指向YouTube平台多个部分的导航链接(如关于、新闻、版权、隐私政策等),并声明版权归Google LLC所有(标注年份为2026年)。

关键信息(来自页面结构化数据):

  • 视频ID: dqTYg6vnQvw
  • 上传日期: 2024年5月1日
  • 内容反映: 页面内嵌的评论摘录揭示了公众对YouTube平台政策的批评。评论指出,YouTube官方声称致力于维护安全和负责任的社区,但同时却允许明显的诈骗广告在平台上投放。该评论获得了大量赞同。

总结: 视频创作者因收到YouTube法律团队的信件而公开讨论此事。页面内容不仅展示了视频本身,也通过嵌入的评论体现了部分用户对YouTube平台在广告审核和社区安全承诺方面存在矛盾的不满。

26. Data Science at the Command Line, 2nd Edition (2021) (jeroenjanssens.com)

《命令行数据科学》第二版(2021)简介

书籍概述

本书是《命令行数据科学》第二版的官方网站,由Jeroen Janssens撰写,O'Reilly Media于2021年10月出版。网站内容采用知识共享署名-非商业性使用-禁止演绎4.0国际许可证授权,可免费使用。

核心内容

这本全面修订的指南展示了命令行的灵活性如何帮助数据科学家提高效率和生产力。读者将学习如何组合小型而强大的命令行工具,快速完成数据获取、清洗、探索和建模的全流程工作。

主要特点

  • 作者提供了一个包含超过100个Unix强大工具的Docker镜像,兼容Windows、macOS和Linux系统
  • 阐述命令行作为敏捷、可扩展和可扩展技术的优势
  • 即使熟悉Python或R的数据处理,也能学习如何利用命令行大幅改善数据科学工作流

适用读者

数据科学家、分析师、工程师、系统管理员和研究人员。

主要功能覆盖

  • 从网站、API、数据库和电子表格获取数据
  • 对文本、CSV、HTML、XML和JSON文件执行清洗操作
  • 探索数据、计算描述性统计量并创建可视化
  • 管理数据科学工作流
  • 从单行命令和现有Python或R代码创建自定义工具
  • 并行化和分布式数据密集型流水线
  • 使用降维、回归和分类算法进行数据建模
  • 从Python、Jupyter、R、RStudio和Apache Spark中使用命令行

业界评价

多位数据科学领域的专家对本书给予高度评价,认为它:

  • 将命令行视为现代且重要的工具集,而非过时的遗留技术
  • 体现了Unix哲学:简单工具各司其职,通过巧妙的管道组合
  • 将常见的数据科学任务整合成连贯的工作流
  • 展示了经过时间考验的命令行工具如何被重新用于数据科学
  • 让数据工作可以在命令行快速完成,然后再导入R、Python或数据库

关于作者

Jeroen Janssens是独立数据科学顾问和讲师,擅长数据可视化、机器学习模型实现,以及使用Python、R、JavaScript和Bash构建解决方案。他管理着Data Science Workshops培训公司,此前曾是数据科学助理教授和数据科学家。他拥有蒂尔堡大学机器学习博士学位和马斯特里赫特大学人工智能硕士学位。

书籍设计

封面动物是冠斑犀鸟(学名:Rhytidoceros undulatus),生活在东南亚大陆及印度东北部、不丹的森林中。这种鸟以其上喙上的盔突而闻名,可能用于物种识别、声音放大或性别识别。它们以群居生活,配偶终身相伴,雌性会在树洞中孵化育雏。

版权信息

封面插图由Karen Montgomery根据Braukhaus《词典》的黑白版画绘制。封面字体采用Gilroy Semibold和Guardian Sans,正文和标题字体为Source Sans Pro,代码字体为Fira Mono。

27. They thought they were joining an accelerator – instead they lost their startups (techcrunch.com)

文章概要:Newchip加速器破产事件及其对初创公司的毁灭性影响

本文详细报道了已破产的纽约芯片(Newchip)加速器如何令众多初创公司创始人陷入困境,甚至失去公司控制权与所有权。

事件核心冲突 纽约芯片加速器于2023年5月破产。破产后,其持有的1000多家初创公司的认股权证(未来以早期估值购买股份的权利)成为破产资产,被法院下令拍卖以偿还债务。这打破了初创公司通常对投资者选择和股价的控制权,因为破产法院的首要任务是偿付债权人而非股东。

对创始人的具体影响

  • 失去公司:创始人莱西·亨特(Lacey Hunter)的公司TechAid(一家人道主义援助智能匹配工具)因无法买回自己的认股权证,且无法获得后续融资,被迫关闭。
  • 高投入低回报:创始人支付了高达数万美元的费用加入该项目,却几乎未获得承诺的服务(如投资者介绍),程序在进行中就因破产而中断。
  • 估值受损风险:认股权证可能以极低的折扣价被外部投资者购入,导致创始人担忧未来融资时的公司估值被压低。
  • 无力反抗:尽管部分创始人(包括来自澳大利亚和芬兰的创始人)提出法律异议,声称合同无效,但均被破产法院驳回。

纽约芯片的失败过程与管理问题

  • 背景:纽约芯片最初是众筹平台聚合器,后转型为加速器,向初创公司收取费用并获取认股权证。
  • 管理混乱与领导层争议:首席执行官安德鲁·瑞安(Andrew Ryan)被指领导风格专制(如公开解雇员工以测试忠诚度)。其拒绝辞去CEO职务,即使法官提出让其他人接管公司以挽救局面。
  • 资产误判:破产初期,认股权证的价值(据估计近5亿美元)未被充分计入资产。同时,公司管理不善,错过了约5400万美元因被投公司发生流动性事件而应得的潜在收益。
  • 破产进程:公司最初申请债务重组(Chapter 11),后转入破产清算(Chapter 7)。

认股权证拍卖情况

  • 分批拍卖:认股权证被分批拍卖。第一批涉及133家公司,但最终仅售出28份认股权证,总成交价约5.8万美元,远低于潜在价值。部分公司(如Bitewell和ClearForce)以5000美元的价格买回了自己的权证。
  • 持续拍卖:第二批包含超过1400份认股权证的拍卖预计在夏季进行,届时创始人仍有有限时间提出异议。

结论 纽约芯片加速器的案例揭示了高风险。创始人怀揣梦想加入,支付高额费用,却因管理方的失败、破产后的法律程序而失去对公司未来的控制权,甚至导致公司倒闭。事件凸显了初创公司在选择加速器时面临的潜在风险,以及破产程序如何可能将创始人置于极度不利的境地。

28. Mexico’s Floating Gardens Are an Ancient Wonder of Sustainable Farming (reasonstobecheerful.world)

文章摘要:墨西哥城的奇南帕——可持续农业的古老智慧

墨西哥城南部的湖泊系统中,存在着一种名为**奇南帕(Chinampas)**的古老农业系统,被誉为“浮动花园”。这些人工岛屿农场是阿兹特克文明(可能更早)为适应墨西哥谷地的沼泽湖泊环境而发明的巧妙解决方案,已有上千年历史,至今仍在运作,并被联合国教科文组织列为世界遗产。

运作原理与高效性: 奇南帕通过将湖底土壤堆叠在水生植物上而成,四周种植墨西哥柳树以防侵蚀。其设计极为高效:水道和运河带来的富营养沉积物持续滋养土壤,使作物能直接从地下水吸收水分,大大减少了主动灌溉的需求,并实现一年多次丰收。历史研究表明,其单位面积产量曾是旱地的13倍,被认为是世界最高产、最密集的农业系统之一。

当代价值与挑战: 在面临历史性干旱和水资源短缺的今天,奇南帕为墨西哥城2200万居民提供了宝贵的本地食物来源和水资源管理范例。它不仅能高效用水,还具备过滤水质、为城市降温、固碳、提供绿地和吸引旅游等多重生态与社会效益。新冠疫情期间,当地市场停滞,奇南帕的新鲜农产品需求激增,凸显了其作为社区韧性食物来源的价值。

然而,这一古老系统正面临威胁:城市扩张侵占土地、水污染、年轻一代兴趣流失以及大型农业的价格竞争。目前,历史遗留的2200公顷奇南帕中,仅约2.5%被积极用于粮食种植。

复兴与未来: 组织如“Arca Tierra”正致力于奇南帕的恢复与技能传承,已修复5公顷土地并培训年轻学生。尽管规模尚小,但从业者和研究者认为,通过政府投资和支持,奇南帕有潜力为整个墨西哥城生产足够的蔬菜。其“顺应自然流动”的古老智慧,正为应对全球城市水资源危机提供着重要启示。

29. How to Use JSON Path (bump.sh)

JSON Path 是一种用于从 JSON 文档中提取数据的查询语言,其重要性正随着 OpenAPI、Spectral 等工具和标准的普及而日益提升。它允许用户筛选、查询和遍历 JSON 数据结构,其语法受 XML 中的 XPath 启发。

核心用途

  • 操作 OpenAPI 文档:可用于查询和修改 OpenAPI 文档,例如提取特定路径或更新描述信息。
  • OpenAPI Overlays:作为 Overlay 的核心机制,通过指定 JSON Path 表达式作为“目标”,来更新或删除 OpenAPI 文档中的指定部分,从而增强文档内容(如添加说明、示例)或进行治理(如清理服务器列表)。
  • 编写高级 lint 规则:在 Spectral 中可用于定义复杂的 API 设计规范检查规则。
  • 其他集成:也应用于 AWS Step Functions 等服务中。

基本语法与工作方式 JSON Path 以 $ 表示根节点,通过类似编程的语法进行导航:

  • $.store.book[*].author:获取所有书籍的作者。
  • $..author:获取文档中所有作者。
  • $.store.*:获取 store 下的所有直接子项。
  • $..book[2]:获取第三本书(索引从0开始)。
  • $..book[?@.isbn]:使用过滤器选择所有有 ISBN 的书籍。
  • $..book[?@.price<10]:选择价格低于10的书籍。

在 OpenAPI 中的实际应用示例

  1. 查询 OpenAPI 文档

    • 使用 jpp --pretty '$.info' openapi.json 可提取文档的 info 部分。
    • 使用 $.paths.*~ 可获取所有路径的键名。
    • 使用 $.paths[?(@.put || @.post)]~ 可筛选出包含 PUT 或 POST 方法的路径。
  2. 使用 Overlays 修改 OpenAPI

    • 更新内容:定义一个 Overlay,其 target 指向 $.info,并提供 update 操作来修改 descriptioncontact 信息。
    • 删除内容:使用 $.servers[?(@.description=="Development" || @.description=="Staging")] 作为 target,并设置 remove: true,可以移除开发与预发布服务器,只保留生产服务器。
    • 添加内容:也可在 $.servers 上使用 update 操作来添加新的沙盒服务器信息。

标准化与注意事项

  • JSON Path 于2024年成为 IETF 的“拟议标准”(RFC 9535),但历史上存在多种实现变体(如 Stefan Gössner 的原始版本、JSONPath-Plus、Nimma),导致了兼容性差异。
  • 工具支持各异,文章建议遵循 RFC 9535 语法,并使用与之兼容的工具(如 Bump.sh CLI 的 Overlays 功能)。在线评估器 jsonpath.com 和文中演示的 jpp CLI 工具可能遵循的是旧规范,而非 RFC 标准。
31. Map Machine: Python renderer for OpenStreetMap with custom icons (github.com)

Map Machine 项目概述

Map Machine 是一个基于Python的OpenStreetMap渲染器,能够从OSM数据生成静态SVG地图,并支持为交互式地图生成PNG瓦片或运行瓦片服务器。其核心是与Röntgen图标集结合,旨在通过颜色、形状和图标全面展现OSM数据的细节。

主要目标与特性

  • 全面的数据展现:支持通过图标、颜色和形状可视化所有OSM数据标签,包括使用频率极低、试验性或已弃用但仍在使用的标签。
  • 高度可配置:既可生成供贡献者使用的详细但可能杂乱的地图,也可生成为用户设计的整洁美观的地图。
  • 实验性功能:支持使用较慢的算法来实现某些实验性功能。

核心功能与示例

  1. 地图生成:使用 render 命令通过OSM API和Overpass API下载数据并渲染SVG地图。
    • 示例:map-machine render -b 2.284,48.860,2.290,48.865
  2. 瓦片生成:使用 tile 命令生成覆盖指定区域的PNG瓦片。
    • 示例:map-machine tile -b 2.361,48.871,2.368,48.875
  3. Röntgen图标集:一套专为本项目设计的14×14像素单色图标,采用CC BY许可协议。
  4. 高级可视化
    • 多重图标与颜色:可为单个实体使用多个图标,并通过颜色表示属性(如材质、树种)。
    • 等角建筑(实验性):使用 --buildings isometric 绘制带阴影的等角建筑。
    • 道路车道(实验性):根据 widthlanes 标签估算道路宽度并绘制车道线。
    • 树木:可渲染树干直径、树冠、叶片类型和树种等信息。
    • 视点与监控摄像头:渲染方向视角和全景。
    • 电力塔设计:可视化多种电力塔的设计值。
    • 颜色系统:图标默认深灰色,商店紫色,紧急设施红色,自然要素有特殊颜色,并支持 colour 标签值。
    • 日本地图符号:通过 --country jp 启用。
    • 室内地图:通过 --level 指定楼层进行显示。
    • 图标组合:通过多个基本形状组合构建复杂图标(如不同类型的人造桅杆、火山)。
    • 线框视图创建时间模式--mode time)和作者模式--mode author)。

安装与依赖

  • 要求:Python 3.10,安装cairo和GEOS库。
  • 安装命令pip install git+https://github.com/enzet/map-machine

命令详解

  • 数据下载:首先通过OSM API获取边界框内数据(缓存为.osm文件),再通过Overpass API补全可能不完整的关系(如大型湖泊)。
  • GPX轨道叠加render 命令可通过 --gpx 选项叠加GPX轨迹,并可自定义颜色、宽度和透明度。
  • 瓦片服务器:使用 server 命令运行一个本地瓦片服务器(默认端口8080),可配合Leaflet使用。
  • MapCSS生成mapcss 命令可生成MapCSS 0.2方案,用于在JOSM中以Röntgen图标样式显示地图。
32. I Spent 24 Hours with GitHub Copilot Workspaces (every.to)

GitHub Copilot Workspace 体验摘要

核心定位

GitHub Copilot Workspace 是 GitHub Copilot 的进化版本,目前处于有限技术预览阶段。如果 Copilot 类似编程自动补全,那么 Workspace 则像一个极其能干的结对编程伙伴,能通过自然语言交互从头到尾在浏览器中完成编码任务。

工作原理

  • 任务创建:用户用自然语言描述需要完成的任务(如修改logo、文件路径等细节),系统会处理并生成一份规范文档
  • 规范文档:包含对当前代码库状态的分析,以及任务完成后的成功标准(用自然语言描述)。
  • 计划制定:基于规范,系统会制定具体实施计划,列出对各文件的修改细节。

实际测试案例

作者以一个内部工具“Spiral”为例,尝试让 Workspace 完成一个相对简单但繁琐的任务:替换项目中的 logo 图片。

  1. 任务描述:明确指定修改文件、logo显示位置及新logo文件名。
  2. 结果:Workspace 成功生成了规范、计划并执行了代码修改,展示了其处理日常编码任务的能力。

关键特点

  • 全自然语言交互:全程使用英语描述需求与修改。
  • 代码库分析能力:能自动读取并理解现有代码。
  • 透明的执行流程:用户可审查和编辑每个步骤(规范、计划),并在执行代码前给出批准。
  • 定位为编程智能体(Agent):类似于 Devin 等编程AI智能体,但由GitHub提供。

总结观点

作者认为,此类产品代表了编程的未来。尽管目前主要用于较明确的任务,但其展示的从理解需求到实施代码的端到端自动化能力,预示了开发工作流的变革方向。

33. Wild orangutan seen healing his wound with a plant (www.bbc.co.uk)

研究记录到一只野生红毛猩猩反复将植物碎末涂抹于面部伤口,并长时间休息以促进愈合。科学家判断其行为属于有意识的治疗,主要依据包括:该红毛猩猩极少食用该植物、涂抹过程持续较长时间、以及伤后异常延长的休息时间。

此前虽已知黑猩猩等类人猿会摄入药用植物,但首次观察到野生个体将植物外敷于伤口。研究者推测该行为可能源于偶然接触后的疼痛缓解经验,或通过观察同类学习获得。该发现发表于《科学报告》期刊,团队将持续观察其他红毛猩猩是否具有类似行为。

34. Folding and One Straight Cut Suffice [pdf] (1999) (www.imsc.res.in)

这篇文章解决了折纸数学中的一个经典问题:通过将一张纸折叠成平坦的折纸形状,然后进行一次直线切割,可以创造出什么样的图案。

核心定理与历史背景 本文证明了以下核心定理:给定任意由直线边构成的集合(一个平面图),都存在一种折纸折叠方式和一条直线,沿着该直线进行一次完全的切割,即可精确地得到该平面图所描述的所有切割边。这意味着理论上可以通过这种方法剪出任何由直线构成的形状,包括多个不相交、嵌套或相邻的多边形,以及漂浮的线段和点。这个问题最早可追溯至1873年的文献,后经魔术师和数学家如马丁·加德纳的推广而广为人知。

算法的关键组成部分 作者提出了一种算法来计算所需的折痕图案,其核心结构包含两个主要部分:

  1. 直骨架:这是通过系统性地“收缩”目标平面图的各个面而生成的轨迹。它为折叠提供了基础框架,使得对应的切割边能够对齐。
  2. 垂直折叠:在直骨架的基础上,为骨架上的每个顶点添加一组垂直于原切割边的折痕(称为“垂直折叠”)。这些垂直折叠线能确保切割边在折叠后精确重合。一个有趣的现象是垂直折叠线可能发生“螺旋”。

技术细节与折叠状态 算法生成的折痕图案(如图2、图3所示)由“走廊”组成,这些走廊被两条平行的垂直折叠线界定,可以像手风琴一样折叠起来。走廊分为线性和环形两种拓扑结构。尽管折痕图案本身描述起来相对直观,但要完整地描述最终的平坦折叠状态(即每条折痕是山折还是谷折,以及纸层之间的重叠顺序)则非常复杂。这部分证明的细节在论文的完整版本中给出。

意义与相关工作 本文的方法展示了该问题的整体结构,与后来出现的基于“磁盘打包”的更局部化方法形成对比。本文的折纸通常更自然、更简单,易于实际折叠。该研究为计算折纸设计领域的进一步工作提供了帮助。论文还提供了具体例子,如五角星、七巧板和复杂星形与乌龟图案的折痕方案。

总结 该论文从理论上证明了通过一次折叠和一次直线切割可以精确实现任何平面直线图形,并给出了一个计算折痕图案的算法。该算法基于直骨架和垂直折叠等几何结构,解决了组合几何与计算折纸设计中的一个基本问题。