2024-09-24

38 篇热帖

1. Show HN: OpenFreeMap – Open-Source Map Hosting (openfreemap.org)

OpenFreeMap 是一个开源的地图托管解决方案,允许用户在网站和应用中免费显示自定义地图。用户可选择自托管或使用其公共实例。项目完全开源,地图数据源自 OpenStreetMap。使用公共实例无需注册、API 密钥,且无访问量限制,运行成本依靠捐赠支持。

核心特点与功能

  • 免费与开放:公共实例完全免费,无隐藏费用。所有代码、生产环境配置均开源,非“开放核心”模式。
  • 数据与格式:提供每周更新的全球地图下载,格式包括 Btrfs 和 MBTiles。
  • 简易集成:提供默认样式和快速入门指南,方便集成到网站或应用。
  • 低成本托管:通过创新技术(如使用 nginx 直接提供 Btrfs 镜像中的静态文件)降低运营成本,无需传统瓦片服务器。
  • 商业使用:明确允许商业使用,但暂不提供 SLA 保证或专业支持。

项目背景与动机

项目由 Zsolt Ero 发起,基于其多年为 MapHub 运行地图瓦片基础设施的经验。旨在解决使用 OpenStreetMap 数据时面临的高成本托管问题(如商业服务可能产生意外高额费用),同时降低自托管的复杂度。

技术架构

  • 无传统瓦片服务器:采用 nginx 直接服务包含约 3 亿个硬链接文件的 Btrfs 镜像。
  • 纯物理服务器:未使用云服务,依赖独立服务器。
  • 瓦片生成:使用 Planetiler 工具将生成时间从数周缩短至数小时。
  • 样式与数据:样式基于 OpenMapTiles 项目修改,地图数据模式未改动。

资助与许可

  • 资助模式:依赖用户订阅支持计划或 GitHub 赞助,以覆盖服务器成本,促进项目可持续性。
  • 使用要求:必须添加署名。使用 MapLibre 时会自动添加;其他客户端或印刷/视频用途需手动标注“OpenFreeMap © OpenMapTiles Data from OpenStreetMap”。
  • 许可信息:项目代码采用 MIT 许可证;地图数据遵循 OpenStreetMap 许可;其他组件许可证详见 LICENSE.md 文件。
4. Move Fast and Abandon Things (engineersneedart.com)

文章摘要:Move Fast and Abandon Things

本文作者回顾了自己约35年前在Macintosh早期平台开发共享软件游戏的经历,重点探讨了快速原型开发方法与项目迭代/废弃的过程。

主要内容概览

1. 历史回顾与遗产保存

  • 作者从旧硬盘中恢复了早期开发的游戏和项目代码。
  • 将这些共享软件游戏和与Casady & Greene公司(曾发行《Glider 4.0》)相关的项目制作成磁盘映像,并在GitHub上发布。
  • 这一过程让他重新审视了大量未完成的“almost-rans”游戏原型。

2. 快速原型开发方法论

  • 在约18个月期间,作者曾参与27个项目,但仅发布了5个游戏。
  • 他开发了一套高效的原型方法:为精灵游戏构建基础框架(“shell”),使得开发新游戏原型的成本主要集中在美术创作(使用MacPaint)和少量独特代码上。
  • 核心策略是快速验证想法:用几天时间构建足够可玩的原型,以测试核心机制是否有趣。例如,如果放风筝本身就很有趣,那么风筝对战游戏可能就有潜力。
  • 他不把原型尝试视为浪费,即使项目被放弃,其中的代码(如洗牌算法、显示切换、碰撞检测等)仍可复用于其他项目。

3. 项目废弃的原因

  • 缺乏深度:一些原型虽然有趣,但找不到后续发展方向(如《Thief of Baghdad》的平台跳跃玩法)。
  • 工程量巨大:作为单人开发者,一些想法(如完整的龙与地下城风格RPG)所需的工作量(大量的精灵动画、法术系统等)远超个人能力。
  • 他承认,优秀游戏的诞生往往需要“机缘”,难以完全预先设计。

4. 职业演变与方法延续

  • 90年代中期,作者加入苹果公司,成为“受薪程序员”。
  • 尽管工作环境从深夜独立编码变为办公室的白板和会议室,他仍延续了快速迭代、直接编译测试的“蓝领”编程风格,而非同事们的“白领”式详细预先设计。
  • 他认为这种方法虽然可能偶尔效率不高,但能快速发现瓶颈,并通过多次迭代(有时重新开始三遍)最终达到与精心设计代码相当的效果,且通常最终会简化代码以提高可维护性。
  • 他为女儿们总结的格言是 “A.B.I.” — Always Be Iterating(永远要迭代)

5. 当前行动与遗产分享

  • 作者将这些“未完成的故事”整理成磁盘映像,发布在GitHub上(Soft Dorothy Software: Unfinished Tales Vol. 1 & 2),旨在保存记忆并可能为游戏开发者提供启示。
  • 他预告了第3卷的发布,但需要时间整理每个项目。
5. Show HN: I Wrote a Book on Java

该文章为《数据导向编程》(Data-Oriented Programming, DoP)一书在 Hacker News 上的推广帖。作者旨在介绍其关于 Java 编程的新书,核心观点是围绕“数据”组织程序,能够带来更简单、更易于理解的代码。

主要内容:

  • 书籍标题:《数据导向编程 Java 版》(Data-oriented Programming in Java),由 Manning 出版社出版,目前处于早期访问阶段。
  • 核心理念:强调“数据表示是编程的本质”。程序应围绕其管理的领域数据(以“纯数据”形式)来构建,当数据表示得当,系统其余部分将自然形成,实现更简洁、更小且易于理解的程序。
  • 关于 Java 的新发展:Java 近年新增了许多支持面向数据编程的语言特性,如记录(records)、模式匹配、with 表达式、求和与积类型等。但本书重点并非工具本身,而是编程思想(如同“建房”而非“研究螺丝刀”)。
  • 当前状态与优惠:书籍可通过链接购买,截至 10 月 9 日可使用代码 mlkiehl 享受 50% 折扣。作者希望获得读者反馈。

数据概览

  • 帖子获得 586 点赞,168 条评论,发布于 2024 年 9 月 23 日。
  • 书籍链接指向 Manning 出版社。
7. The Intelligence Age (ia.samaltman.com)

《人工智能时代》核心摘要

一、AI作为能力倍增器

  • 人类能力的进步源于社会基础设施(而非基因变化),社会本身是一种高级智能形式。
  • AI将为人类提供解决难题的工具,为人类进步的“脚手架”添加新的支柱。
  • 未来,个人将能与AI团队协作,实现远超以往的创造能力;AI虚拟导师可提供个性化教育,AI也将变革医疗、软件创造等领域。

二、深度学习:当前突破的基石

  • 过去数千年科学与技术的累积,最终催生了通过计算芯片创建智能系统的可能。
  • 深度学习算法被证明有效:它能真正学习数据分布(背后的“规则”),且性能随计算和数据规模的增加而可预测地提升。
  • AI将自主执行任务(如协调医疗),并最终能帮助设计下一代系统、推动科学全面进步。

三、迈向智能时代:机遇、挑战与要求

  • 技术路径:从石器时代到农业、工业时代,通往智能时代的道路由计算、能源和人类意愿铺就。
  • 核心挑战:必须降低计算成本、确保算力充足(依赖能源和芯片),否则AI可能成为稀缺资源和富人工具,引发争夺。
  • 繁荣前景:智能时代将带来巨大繁荣,解决气候、太空殖民、物理学终极问题等挑战将变得可能。
  • 风险与平衡:技术有弊端(如对劳动力市场的冲击),需现在就开始行动以最大化收益、最小化危害。尽管职业会转变,但人类创造和利他的本能不会消失,AI将放大个人能力,社会将重归扩张并专注于共赢游戏。
  • 历史类比:如同过去的点灯人无法想象今日的繁荣,百年后的繁荣也将远超我们当下想象。
8. Maker Pipe – Structural Pipe Fittings for DIY Builders (makerpipe.com)

Maker Pipe – 适用于DIY建造者的结构管道连接件

Maker Pipe 是一套钢制管道连接件系统,旨在将普通的EMT导管转变为经济实惠、用途广泛的建筑平台。其设计理念是让用户仅需简单手动工具即可轻松建造。

核心组件与优势

  1. 易用性

    • 仅需一把5毫米六角扳手即可完成连接。
    • 导管可使用简单的手动金属管道切割器进行切割。
    • 无需特殊工具或技能。
  2. 经济性

    • 连接件设计价格实惠,与成本低廉的电气导管(EMT)配合使用。
    • 能有效节省成本,帮助实现DIY梦想。
  3. 坚固耐用

    • 金属导管和Maker Pipe连接件均由耐用钢材制成。
    • 强度可靠,室内外均可放心使用。

客户应用与反馈

众多用户利用该系统成功打造了各类项目,并给予高度评价。主要应用场景包括:

  • 车辆改装:封闭式拖车的梯架、货车内的轻量化货架、移动细节处理公司的货架。
  • 户外装备:可折叠的鸭棚、钓鱼皮划艇拖车、无人机竞赛发射架。
  • 家居与店铺:家居管道家具、店铺展示架、可调节高度的货架。
  • 教育与专业:用于教授设计流程,学生可制作工作站;电工利用其避免焊接镀锌管的危险,解决复杂问题。

客户普遍认为该产品简单有效、节省成本、质量可靠、用途多样,且客户服务响应迅速。

主要产品规格

  1. T型连接件(最受欢迎)

    • 用途:用于以90度角连接两根管道,或在管端作为弯头使用。
    • 规格:有3/4英寸和1英寸型号。1/2英寸型号附带适配器垫片。
    • 特点:只需一把5毫米六角扳手组装,附带所需硬件。
  2. 混合结构管道连接件套装

    • 内容:包含12个T型连接件、4个90度连接件、4个45度连接件和2个180度连接件。
    • 用途:适合DIY新手和专家,可用于制作家居家具或店铺收纳系统。
    • 注意:套装专为3/4英寸EMT导管设计,另有适用于1/2英寸导管的变体(含适配垫片)。
    • 特点:所有连接件均附带所需硬件。
10. WP Engine sent "cease and desist" letter to Automattic (twitter.com)

内容与标题不符,提供的文章内容并非关于WP Engine向Automattic发送“停止并终止”信件的相关信息,而是网站(x.com)的一段错误提示,建议用户禁用某些隐私相关扩展后重试。

12. Tracy: A real time, nanosecond resolution frame profiler (github.com)

Tracy 是一款专为游戏及其他应用程序设计的实时、纳秒级分辨率、支持远程遥测的混合帧与采样性能分析器(Profiler)。

核心分析功能

Tracy 提供了全面的系统级和硬件级性能追踪能力,主要涵盖以下维度:

  • CPU 分析:原生直接支持 C、C++、Lua、Python 和 Fortran 语言的集成。此外,社区提供了丰富的第三方绑定,支持 Rust、Zig、C#、OCaml、Odin 等多种编程语言。
  • GPU 分析:全面兼容所有主流图形 API,包括 OpenGL、Vulkan、Direct3D 11/12、Metal、OpenCL 以及 CUDA。
  • 系统与辅助分析:支持对内存分配、锁(Locks)、上下文切换(Context switches)进行深度分析,并具备自动将屏幕截图归因于对应捕获帧的高级辅助功能。

项目资源与文档

项目提供了完善的配套资源以帮助用户快速上手和构建:

  • 文档与构建:提供详细的使用指南和构建流程说明。
  • 发布版本(Releases):包含完整的 PDF 格式文档(tracy.pdf)以及预编译的 Windows x64 二进制可执行文件(Tracy-<version>.7z)。
  • 其他资源:提供更新日志(Changelog)以及交互式演示(Interactive demo)供用户直观体验。

学习资料与版本演进

项目积累了丰富的官方演示与版本更新介绍资料,方便开发者学习:

  • 技术会议演讲:包含 CppCon 2023 上由 Marcos Slomp 主讲的《C++ 中的 Tracy 分析器介绍》。
  • 版本特性解析:提供了从 v0.2 版本的基础介绍,到 v0.3、v0.4、v0.5、v0.6、v0.7 直至 v0.8 各个历史版本新特性的详细讲解与回顾。
13. Giving T cells extra batteries supercharges them against cancer (newatlas.com)

科学家发现可通过为T细胞补充额外线粒体(“电池”)来增强其对抗癌症的能力,该研究在小鼠实验中展现出良好前景。

免疫系统本可清除癌症,但肿瘤会构建有毒微环境,导致T细胞能量耗竭。美国布莱根妇女医院的研究团队开发了一种新方法,通过向T细胞移植新的线粒体来为其“充电”。

线粒体是细胞的“能量工厂”,在T细胞疲劳时可能丢失或受损。此前研究发现癌细胞可利用纳米管“吸取”免疫细胞的线粒体。研究人员反其道而行,将骨髓基质细胞(BMSCs)培养的线粒体通过类似机制捐赠给T细胞。

实验显示,共培养48小时后,高达25%的T细胞获得了额外线粒体,成为“增强型”免疫细胞(Mito+)。在小鼠模型中,Mito+细胞能更易浸润肿瘤并发起强力攻击,使肿瘤显著缩小,75%的治疗组小鼠存活超过60天。而对照组小鼠肿瘤持续生长,均在20天内死亡。

值得注意的是,Mito+细胞能快速增殖并将其额外线粒体传递给新细胞。其他免疫细胞(如淋巴细胞和CAR-T细胞)在接受线粒体后也表现出更强的抗癌能力。

研究通讯作者指出,这些增强型T细胞克服了免疫疗法的基本障碍,能穿透肿瘤并克服其免疫抑制状态。线粒体移植被视为“细胞器疗法”的开端,即通过向细胞递送细胞器以提高其效能。

未来,这种方法可能使用患者自身的骨髓基质细胞来增强其免疫细胞,再回输体内以更有效地对抗癌症。该研究发表于《细胞》期刊。

16. Fully documented source code for Lander on the Acorn Archimedes (lander.bbcelite.com)

Lander 源代码重建项目概述

该网站提供了一款名为 Lander 的经典游戏的完全重建并详细注释的源代码。原游戏由 David Braben 为 Acorn Archimedes 开发,是首款为 ARM 处理器发布的游戏,被视为一个里程碑和杰作。

核心内容

  • 性质:此代码并非 David Braben 的原始源代码(原始代码未公开发布)。它是通过反汇编原始游戏二进制文件,并经过精心重建而成的。
  • 准确性:重建的源代码经过组装后,能生成与原版100% 完全一致的游戏文件。虽然所有变量和函数的名称由重建者命名,但代码逻辑与原始代码相匹配。
  • 目的:旨在以教育和非营利的方式,帮助爱好者理解这款来自 3D 编程传奇人物(其第一部经典是《Elite》)的游戏的内在工作机制。

网站功能与资源

为方便用户探索,网站提供了多种途径:

  1. 快速入门指南:指导如何使用该网站。
  2. 游戏体验:提供如何在浏览器或模拟器中运行 Lander 的信息。
  3. 项目背景:介绍本项目的缘起和过程。
  4. 深度解析:包含多篇详细文章,深入剖析 Lander 的底层运行原理。
  5. 源代码浏览:可直接阅读源代码,并配有对注释术语的解释。支持随机跳转到任意函数进行探索。
  6. 主题切换:允许用户调整网站配色方案。

代码实验与相关项目

  • 构建与实验:感兴趣的开发者可前往配套的 GitHub 仓库,其中包含完整注释且可构建的源代码。可在现代计算机上组装生成可在 Acorn Archimedes 或模拟器上运行的游戏光盘镜像。
  • 类似项目:该作者还进行了其他“软件考古”项目,为《Elite》(多平台)、《Aviator》、《Revs》 和《The Sentinel》等游戏重建了完全文档化的源代码。

该项目由 Mark Moxon 主导。

17. Show HN: JSON For You – Visualize JSON in graph or table views (github.com)

JSON For You 是一个专注于JSON数据可视化与处理的工具,旨在提供直观高效的操作体验。

核心特性:

  • 可视化视图: 提供图形(Graph)和表格(Table)两种视图模式。
  • 数据处理: 支持结构化对比、文本对比、JSON验证(附带错误上下文)、嵌套解析、jq查询语言,并能导入导出CSV文件。
  • 用户体验: 拥有精心设计且易于使用的用户界面。

未来规划(Roadmap):

  1. 性能优化: 提升处理大文件(>=1MB)的能力,优化图形视图(仅渲染可见节点)和表格视图性能,并考虑采用WebAssembly(使用Rust)解析。
  2. 功能增强: 提升左右面板的互操作性(如支持搜索、修改、同步折叠/展开),增加对象/数组节点折叠后的键计数显示。
  3. 协作与集成: 计划添加文件上传/分享API(支持过期时间)、命令行工具、VS Code插件,并探索在服务器端集成基础AI能力。
  4. 体验改进: 支持JSONC和JSONL格式、对比结果中折叠无差异区块、节点维度的操作(如复制、删除)以及更丰富的值预览(时间戳、URL、图片等)。

本地开发与设置:

  1. 克隆仓库并安装依赖:pnpm install
  2. 运行开发服务器:pnpm dev
  3. 在浏览器中打开 http://localhost.json4u.com:3000

贡献指南:

  • 优先处理代码中的TODO标记。
  • 添加新功能前,建议先提交建议issue并获得批准;修复bug需在PR中描述问题。
  • 欢迎提交不影响逻辑的小改动(如修正拼写、翻译注释)。
  • 强调保持工具轻量高效,需注意npm依赖的数量和体积。
  • 提交代码前请运行测试:pnpm test

技术栈与致谢: 项目基于 React, Tailwind CSS, Next.js, ZustandZod 构建,并使用了 React Flow(图形库)、next-intl(国际化)和 Vitest(测试框架)等开源库。

许可证: Apache License。

18. Jetstream: Shrinking the AT Protocol Firehose by >99% (jazco.dev)

Jetstream: 将AT协议数据流减少99%以上

背景与问题

AT协议的Firehose事件流用于保持所有用户存储库的完全同步和验证副本。由于巴西禁止Twitter导致Bluesky活动激增,Firehose的数据量从每天约24GB激增至232GB以上,给低成本云基础设施带来沉重负担。大多数消费者(如Feed生成器、机器人)实际上只处理JSON记录,并不需要完整的验证和同步数据。

Jetstream解决方案

Jetstream是一个轻量级、可过滤的JSON事件流服务,旨在为非验证型AT协议服务提供替代方案。它消费来自AT协议Firehose的事件,并将其转换为更小、更易处理的JSON格式。

工作原理

  • 数据转换:Jetstream剥离AT协议事件中的大部分Merkle搜索树(MST)块,仅保留叶子节点的记录数据,将事件转换为简洁的JSON对象。
  • 压缩优化:通过使用zstd压缩算法和自定义字典,进一步压缩事件数据。字典基于10万条真实事件训练,有效压缩JSON中的常见模式。
  • 存储与播放:Jetstream在PebbleDB中存储24小时的事件缓冲区(同时保存JSON和压缩版本),支持消费者回放历史事件,且压缩回放无需实时计算。

技术细节

  • 流式压缩限制:最初的流式zstd压缩方案因高CPU开销和不兼容的消费者状态而被放弃。
  • 字典压缩优势:采用字典模式后,每个事件仅压缩一次,可被所有消费者共享,大幅降低CPU负担。
  • 资源效率:Jetstream的常驻内存低于16MB(其中25%为压缩字典),CPU占用极低,可在低成本VPS(如5美元/月的OVH实例)上运行。

压缩效果

  • 数据量对比
    • 原始Firehose:~232 GB/天(活动激增期间)
    • Jetstream(无压缩):~41 GB/天
    • Jetstream(带压缩,仅关注帖子):~850 MB/天
  • 长期节省:消费者每月数据下载量从3.16 TB(完整Firehose)降至25.5 GB(Jetstream压缩过滤后),减少超过99%。
  • 事件大小:平均事件大小从482字节压缩至211字节(压缩比约0.44)。

结论

Jetstream通过剥离非必要验证数据、优化JSON格式和应用高效压缩,在保持实用性的同时,将AT协议事件流的数据量减少了99%以上,显著降低了运营成本和技术门槛,适用于大多数非验证场景。

20. Free-form floor plan design using differentiable Voronoi diagram (github.com)

该论文提出一种基于可微Voronoi图的自由形态地板平面设计新方法。核心是通过Voronoi图隐式定义房间形状(基于点到Voronoi种子点的距离),通过移动种子点即可改变墙体布局拓扑。该方法利用显式墙体表示的微分特性,将房间面积、连通性等多种约束融入优化过程,支持交互式调整约束以生成多样化地板平面。

示例程序使用Rust编写,可通过不同命令运行以生成各类形状(如shapeA/B/C及duck)的收敛过程GIF动画,演示了不同随机种子下的优化结果。

21. Telegram will now hand over phone number and IP for criminal suspects (www.theverge.com)

Telegram更新隐私政策,若收到司法机构对刑事犯罪嫌疑人的有效请求,将可能提供用户的电话号码和IP地址。此前该政策仅适用于恐怖嫌疑人。

此次调整发生在Telegram首席执行官帕维尔·杜罗夫上月被法国当局逮捕并指控纵容平台非法活动之后。杜罗夫表示,此举旨在遏制犯罪分子滥用应用的搜索功能。

杜罗夫在Telegram帖子中称:“我们明确表示,违反规则的用户的IP地址和电话号码,可以向相关当局披露以响应有效的法律请求。我们不会让不良行为者危及我们近十亿用户的平台完整性。”

Telegram还表示将在季度透明度报告中披露向当局提供用户信息的情况。

Telegram宽松的审核政策曾使其成为犯罪分子的聚集地,近期报道揭露了平台上存在大量与恐怖主义、儿童性虐待材料、毒品贩运和极端主义相关的频道。

除隐私政策外,Telegram还采取了其他措施:审核员正使用人工智能识别并移除搜索功能中的“问题内容”;修改了私聊审核相关条款;禁用了被滥用的“附近的人”功能;并暂停了匿名博客工具Telegraph的媒体上传。

随着Telegram试图扭转其不良声誉,平台可能会对非法内容和审核方式做出更多调整。

24. Halide rejected from App Store because it doesn't explain why it takes photos (9to5mac.com)

知名相机应用 Halide 最新版本被苹果 App Store 拒绝上架,原因被认定为应用未充分说明为何需要访问相机权限。

  • 事件起因:尽管 Halide 曾在 iPhone 16 发布会上被提及,但其更新版本在提交审核时被拒。苹果审核人员指出,应用在请求相机权限时的说明文字不够清晰。
  • 拒绝理由:Halide 在请求权限时使用的说明是:“The camera will be used to take photographs”(相机将用于拍摄照片)。然而,苹果认为此说明未能明确解释一个相机应用为何需要相机权限。
  • 开发者反应:Halide 的联合创始人对此表示困惑,称无法理解为何需要为相机应用申请相机权限作更复杂的解释。
  • 后续进展:在事件引起关注后,Halide 开发者收到苹果电话,确认此次拒绝是一个 错误。苹果允许其无需修改即可重新提交应用审核。
  • 背景信息:Halide 是支持 iPhone 16 新 Camera Control 按钮 的应用之一。
26. Dumped orange peel transformed a barren pasture (2017) (www.sciencealert.com)

摘要:

2017年的文章报道了一个实验性保护项目,该项目在1990年代中期于哥斯达黎加进行,一家果汁公司将1000卡车的废弃橙皮倾倒在贫瘠的牧场上,最终在近二十年后产生了显著的生态效益。该项目由普林斯顿大学研究人员Daniel Janzen和Winnie Hallwachs与橙汁制造商Del Oro合作发起。Del Oro同意捐赠部分土地给国家公园,作为回报,可以在公园内免费倾倒废弃橙皮。

1997年,约12000吨橙皮被倾倒在约3公顷(7英亩)的荒地上。橙皮富含营养,迅速改善土壤肥力:六个月内,橙皮转化为厚实的黑色腐殖土,尽管中间经历了含有蝇幼虫的污泥阶段。然而,项目在第二年被迫终止,因为竞争对手TicoFruit起诉Del Oro,指控其“玷污国家公园”,哥斯达黎加最高法院支持原告,项目被叫停,地点随后被遗忘。

2013年,普林斯顿研究员Timothy Treuer重新评估该地点时,发现曾经的荒地已无法识别——由于植被茂密,甚至难以找到标记地点的标志。与未处理橙皮的对照区域相比,橙皮处理地点的土壤更肥沃、树木生物量增加176%、树种多样性更高,其中包括一棵需要三人合抱的巨大榕树。

研究人员不确定橙皮如何有效再生该地,但推测可能与抑制入侵草和再生退化土壤的协同作用有关。该项目的长期成功表明,将营养丰富的废物用于退化生态系统可能实现双赢:处理废物并恢复荒地。此外,更茂密的林地能从大气中封存更多碳,形成“成本负碳封存”。研究希望这能启发类似保护项目,但强调需谨慎实验,以避免破坏环境。研究成果发表于《Restoration Ecology》。

27. Working Turing Machine (ideas.lego.com)

工作中的乐高图灵机

项目状态

  • 这是乐高Ideas平台上的一个创意项目,已获得10,000名支持者。
  • 该创意未能通过乐高官方的最终审核,不会成为正式的乐高套件。
  • 发布日期为2024年9月12日。

图灵机简介

  • 本质:图灵机是算法机器的抽象模型,以其创造者、英国密码学家艾伦·图灵命名。
  • 现实实现:虽然设计初衷并非用于现实,但已有人使用“奇异技术”(如《我的世界》红石、康威生命游戏)实现,本项目选择使用乐高积木实现。
  • 基本构成
    1. 一条可左右移动的“磁带”,其上承载符号。
    2. 一个可以读取磁带符号并覆盖写入新符号的“读写头”。
    3. 若干个存储机器状态的寄存器。
    4. 一个“状态表”,将每一种状态与符号的组合映射到下一步的指令。
  • 工作循环:读取磁带符号 → 根据符号和状态查询指令表 → 根据指令更新状态并写入新符号 → 根据指令左移或右移磁带,或终止程序。此循环持续直到机器停止,理论上可以执行任何计算机算法。

乐高模型细节

  • 能力:该模型设计有4种(2²)可能的符号和8种(2³)可能的状态,共计32种符号-状态组合。
  • 程序存储:每条指令包含7比特信息(3比特用于状态,2比特用于符号,1比特用于移动方向,1比特用于停止指令)。因此,完整的“源代码”需要7×32 = 224比特,即28字节。这意味着可编程组合高达2^224种(约2.69×10⁶⁷)。
  • 结构复杂性:内部机构非常复杂,将所有功能连接到单一输入,因此模型无需电动马达驱动。
  • 知识产权:图灵机是数学模型,不存在知识产权问题。
  • 零件数量:模型使用约2900个乐高零件。截至2024年10月,乐高Ideas的零件上限为5000件,因此该模型在数量限制内。零件数虽可能影响售价,但其中大量零件是功能性机构部件或用于加固精密机构框架的结构件。

作为乐高套件的优势

  1. 可玩性:用户可以实际操作和玩耍。
  2. 可编程性:允许用户创建自己的程序。
  3. 机械魅力:内部机制设计有趣。
  4. 理论实现:是对一个著名理论模型的实体化呈现。
29. Inside a Ferroelectric RAM Chip (www.righto.com)

铁电存储器(FRAM)是一种利用特殊铁电材料存储数据的非易失性存储技术,兼具类似闪存的数据保持能力与快速的写入速度,且耐用性远高于闪存(可写入数万亿次)。然而,由于制造成本远高于闪存,FRAM主要应用于特定细分领域。

本文分析了一款1999年由Ramtron公司设计的64千比特FRAM芯片(型号FM24C64)。芯片显微照片显示其核心结构为四个深色条状存储单元,包含微小的铁电材料立方体;水平与垂直电路分别用于选择列和读取信号;四周的焊盘用于外部连接;两侧逻辑电路实现I²C串行接口功能。

技术原理 FRAM利用铁电材料(如锆钛酸铅PZT)的极化特性存储数据:施加正/负电压可分别存储“1”或“0”。读取时通过施加电压并检测电流变化来判断状态,但此过程会破坏原有数据,因此需读后重写(类似早期磁芯存储器)。该芯片采用双电容设计(每比特使用两个存储相反值的电容),通过比较信号大小区分数据,虽降低了存储密度,但提高了识别可靠性。

芯片结构 存储单元呈三维结构,PZT立方体位于板线顶部,通过三维支架连接上极板与硅基板。每个单元包含两个电容,尺寸约4.2µm×6.5µm。晶体管栅长约为700纳米。存储阵列为256×512电容(64千比特,按8192字节组织)。右侧的灵敏放大器负责放大并比较信号,底部板线驱动电路生成所需脉冲。制造过程因涉及三维结构和特殊材料(如PZT可能污染硅工艺)而复杂昂贵。

历史与市场 铁电存储技术于1950年代兴起,但因早期问题在1970年代多被放弃。1984年Ramtron公司重新推动发展,1988年推出首款芯片,1990年代实现更大容量产品。尽管技术优异,FRAM未能实现成本与密度上与DRAM竞争的目标。Ramtron于2012年被Cypress收购,后者又于2019年被英飞凌收购。目前FRAM仍是小众产品(如航天等抗辐射领域),成本约3美元/兆比特,远高于闪存(约15美元/吉比特)。

30. Preventing app removal on iOS (tinycoder.pika.page)

摘要

这篇文章介绍了作者在开发iOS闹钟应用“SuperAlarm”时,为解决用户通过删除应用来逃避闹钟而采取的技术方案。

问题背景: SuperAlarm应用要求用户完成特定任务(如拍摄牙刷照片、解谜)才能关闭闹钟,以确保用户真正清醒。在Android平台上,闹钟响起时应用会全屏锁定,无法退回主屏幕,因此用户无法通过删除应用来关闭闹钟。然而,iOS系统缺乏类似的机制,导致用户可以轻易通过移除应用来绕过闹钟,这是用户投诉最频繁的问题。

解决方案: 通过研究,作者发现iOS的屏幕使用时间(Screen Time)API可以解决此问题。该API允许开发者在获得用户授权后,禁止应用被删除。关键代码仅需一行: ManagedSettingsStore().application.denyAppRemoval = true 通过设置此标志,在闹钟响起期间可以防止应用被移除。当用户成功完成任务后,再将此标志重置为false,以允许应用被正常删除。

重要说明:

  1. 权限申请:使用此API前,开发者必须向Apple申请并获得 “Family Controls”“Personal Device Usage Entitlement” 权限。
  2. 用户授权:此功能必须是用户主动选择启用的(opt-in)。在将denyAppRemoval标志设置为true之前,必须明确获得用户的许可。
32. Refactoring Python with Tree-sitter and Jedi (jackevans.bearblog.dev)

文章标题: 使用 Tree-sitter 和 Jedi 进行 Python 代码重构

核心内容: 本文分享了作者使用 Tree-sitter 和 Jedi 两个 Python 工具,批量重构仓库中所有测试文件里的 pytest fixture 参数名(将 database 重命名为 db)的经历。

关键步骤与实现:

  1. 问题与目标:作者需要在包含数百个文件的整个代码仓库中,将 pytest fixture 参数名从 database 重命名为 db。由于常用编辑器和文本处理工具(如 grep + sed)难以精确完成此任务,作者决定探索更高级的工具。

  2. 使用 Tree-sitter 定位标识符

    • 利用 tree-sitter-pythontree-sitter 库解析 Python 文件的 AST(抽象语法树)。
    • 编写函数 parse_func 遍历函数定义节点,精确找出类型为 identifier 且文本为 b"database" 的子节点,并返回其位置(行、列)。
    • 初始实现未支持带有装饰器(如 @pytest.fixture())的函数。
  3. 处理装饰函数

    • 为支持带装饰器的函数定义,修改了 parse_file 函数逻辑。
    • 除了直接检查 function_definition 类型节点,还需检查 decorated_definition 类型节点,并在其子节点中寻找 function_definition,再应用定位逻辑。
  4. 使用 Jedi 执行重命名

    • 对于 Tree-sitter 找到的每个位置(行、列),使用 Jedi 的 Script 类和 rename 方法进行精确重命名。
    • 指定新名称 "db" 并调用 result.apply() 将更改写回文件。

结论与体会

  • 工具评价:作者认为 Jedi 和 Tree-sitter 相对易于学习,并打算将它们保留在工具箱中,用于处理 grep 和 sed 无法胜任的场景。
  • 局限性:作者提到 Tree-sitter 缺少直接操作 AST 节点(如重命名、删除)并写回文件的机制,因此仍需依赖 Jedi 或手动编辑源代码,并处理重新解析带来的偏移问题。
  • 性能说明:尽管脚本中存在大量重新解析,但对于项目级的重构,作者认为其速度已经足够快。
  • 最终情况:尽管这次重构最终未合并,但被作者视为一次有趣的学习练习。
33. Anime is eating the world (a16z.com)

摘要:动漫正在席卷世界

动漫已从小众题材发展为价值超过500亿美元的庞大产业,涵盖动画、漫画和游戏。新技术与商业模式正推动这个曾经小众的行业迈向新高,动漫正在成为未来内容消费与互动的主导形式之一。

动漫的发展历程与现状

  • 起源:起源于20世纪初的日本,以独特艺术风格(明亮色彩、夸张特征)为标志,在20世纪60-70年代通过《铁臂阿童木》等作品流行,2000年代借助《火影忍者》、《海贼王》等进入主流。
  • 影响力:Netflix数据显示,2022年其全球超过一半的用户观看过动漫内容。Crunchyroll估计2020-2022年全球动漫粉丝数翻倍至超过3亿。动漫内容类型多样,吸引广泛受众,形成了高度忠诚的粉丝群体,催生了深度的粉丝参与文化。

四大互动创新方向

1. AI伴侣:从视觉小说到角色互动

  • 文化基础:“Waifu/Husbando”文化(对虚拟角色的情感依恋)根植于视觉小说游戏,其中《Fate/Grand Order》等成功作品源自视觉小说。
  • 当前应用:Character.ai等平台上,热门动漫角色(如《原神》中的雷电将军、《咒术回战》中的五条悟)互动消息量远超真人角色。众多垂直平台(如crushon.ai、talkieai)提供动漫角色互动服务。
  • 未来趋势:AI技术将使互动更自然、多模化(语音、实时生成动画),并能记住共同经历。创业公司正在探索将AI生成内容融入恋爱模拟等游戏类型。

2. UGC平台:降低创作门槛,激发粉丝创造力

  • 表现形式:粉丝在Roblox等平台上基于《海贼王》、《一拳超人》等IP创作游戏(如《Blox Fruits》访问量超400亿)。Minecraft服务器也广泛采用动漫IP。
  • 驱动因素:高品质动漫IP游戏供给不足(如《Palworld》的成功),且IP授权流程复杂。创业公司正致力于使IP更易获取。
  • AI赋能:AI工具(如Nijijourney生成动漫图像,RunwayML、PikaLabs生成视频)极大降低了专业内容创作门槛,使业余创作者也能产出高质量作品。

3. 专业游戏工作室:引领高品质体验与商业模式创新

  • 市场表现:动漫游戏在手游市场使用渗透率不足3%,却贡献了20%的消费。《原神》三年收入近40亿美元,《怪物弹珠》累计收入超越《糖果传奇》。
  • 成功要素
    • 玩法创新:结合成熟系统与独特创新(如《原神》融合开放世界与抽卡RPG)。
    • 核心类型:RPG类游戏深度吸引核心玩家,收入占比高。
    • 强IP驱动:顶级游戏中六款基于现有IP,角色收集与故事是关键驱动力。
    • 抽卡机制:拥有高用户平均收入(ARPU),近年来通过调整概率改善平衡。
  • 创业公司动向:西方创业公司正为全球市场开发动漫游戏,涵盖多人竞技、UGC平台、开放世界等方向。

4. VTubing:模糊人与数字的界限

  • 形式:创作者使用实时捕捉技术以动漫虚拟形象直播(如Kizuna AI)。
  • 增长:虽仅占Twitch主播的0.4%,却贡献5.7%的观看时长,2023年上半年观看量增长28%。顶级VTuber(如Ironmouse)拥有数百万观众。
  • 支持生态:创业公司从专业Live2D建模、自定义头像工具到环境设计平台,全方位支持VTuber发展。AI VTuber(如Neuro-sama)等新形式也在探索中。

结论

动漫已超越艺术风格,成为跨越地域与年龄的文化现象和大型创意产业。它正通过拥抱AI代理、UGC平台、创作工具、创新游戏机制和VTubing等新技术与模式,引领互动娱乐的未来。动漫领域的最佳时代尚未到来。

34. Major Toronto Utility Company Stores Customers' Passwords in Plain Text (old.reddit.com)
35. Nova by Panic: Native Mac code editor (nova.app)

Nova:原生Mac代码编辑器

核心特点概览

Nova 是一款功能全面的原生 Mac 代码编辑器,强调高性能、灵活性与强大的工作流集成。其核心优势包括:

  • 强大的文本编辑器:全新且极速,具备智能自动补全、多光标、小地图、编辑器超滚动、标签/括号匹配等丰富功能。
  • 灵活的工作流:支持创建自定义的构建、运行和清理任务,可通过工具栏按钮或快捷键触发,简化开发流程。
  • 集成的调试工具:内置对 PHP、Python、Chrome、Node.js 等的调试支持,提供调试侧边栏、控制台调试器、断点等功能。
  • 实用的内置工具:集成了 Transmit 文件浏览器和 Prompt 终端,侧边栏功能强大且可分屏,内置完整的 Git 源代码控制。
  • 强大的扩展系统:基于 JavaScript 的扩展 API,允许添加新语言支持、扩展侧边栏、创建主题等,应用内提供扩展库。
  • 丰富的可定制设置:提供大量的编辑器、快捷键、工作区布局等个性化选项。

详细功能说明

1. 编辑器

  • 性能与功能:编辑器响应迅速,支持模糊匹配自动补全、多光标操作、小地图导航、问题/错误提示、Git 状态显示等。
  • 语言支持:内置支持包括 CSS、JavaScript、TypeScript、Python、Ruby、PHP、SQL、Markdown、YAML 等数十种语言。
  • 技术细节:为了解决系统级问题并提升性能,开发团队从头编写了自定义的文本布局管理器。

2. 工作流

  • 任务自动化:用户可为项目定义构建、运行和清理任务,这些任务本质上是可由按钮或快捷键触发的自定义脚本。
  • 集成服务器与浏览器:支持一键启动本地服务器、获取 URL 并在浏览器中打开,提升开发效率。

3. 调试

  • 内置调试器:为 PHP、Python、Chrome (JavaScript)、Node.js、Deno 等提供开箱即用的调试体验。
  • 调试功能:包含调试侧边栏、控制台调试器、断点管理等,对于未内置支持的语言,可通过扩展库添加。

4. 内置工具

  • 文件管理与终端:集成 Transmit 文件浏览器和 Prompt 终端,可通过标签页快速访问。
  • 强大的侧边栏:侧边栏集合了多种工具(如文件树、Git、调试、问题、远程服务器等),支持分屏显示和自定义布局。
  • 版本控制:提供全面的 Git 操作,包括克隆、初始化、获取、拉取、暂存、提交、推送等,编辑器和侧边栏均显示 Git 状态,并支持行内注解和差异比较视图。

5. 扩展系统

  • 开放的 API:扩展使用 JavaScript 编写,可用来添加新语言语法支持、创建自定义侧边栏、设计主题、验证代码等。
  • 开发便捷性:应用内提供扩展模板和扩展库,便于开发和安装扩展。

6. 设置与自定义

  • 高度可定制:提供海量的编辑器偏好设置(如括号匹配、超滚动)、可自定义的快捷键绑定以及可快速切换的工作区布局。

其他显著功能

Nova 还包含众多其他特性,使其成为一个全面的开发环境,例如:

  • 命令面板:快速访问功能和设置。
  • 项目启动器:支持自定义图标。
  • 主题与布局:支持自动切换主题、独立编辑器和窗口主题。
  • 智能功能:项目范围索引、智能可扩展自动补全、强大的文件快速打开。
  • 远程能力:支持通过 FTP、SFTP、WebDAV 等进行远程发布,并内置本地和远程终端。
  • 编辑增强:Markdown 实时预览、可定制的编辑器样式、Vim 按键绑定支持。
  • 扩展开发支持:提供安全的沙盒环境、完整的 JavaScript API、实时重载测试、调试控制台以及对语言服务器协议的支持。
36. Show HN: Velvet – Store OpenAI requests in your own DB (www.usevelvet.com)

Velvet 现已被 Arize 收购,作为其统一 AI 平台的一部分。Velvet 原本是一个开发者网关,用于分析、评估和监控由 AI 驱动的功能。收购后,Velvet 的创始人 Emma 和 Chris 加入了 Arize,共同致力于推动其统一 AI 平台的普及。

Arize 是一个企业级的 AI 评估与观测平台,旨在加速 AI 应用程序及智能体的开发,并在生产环境中持续优化它们。该生态系统还包括两个相关组件:

  • Phoenix:一个开源工具,用于 LLM(大语言模型)的追踪与评估,可实时无缝地评估、实验和优化 AI 应用程序。
  • LiteLLM:一个 LLM 网关,提供对 100 多个 LLM 的统一访问接口、故障回退和开支追踪功能,兼容 OpenAI 格式。既可作为平台使用,也可进行开源部署。

Velvet 的核心功能现整合于 Arize 的平台中,为开发者提供了一个统一的解决方案,以监控和管理其 AI 功能的性能与表现。

37. Radioactive Tape Dispenser (1970s) (www.orau.org)

20世纪70年代放射性胶带座(3M Model C-15)

  • 物品概述:本文介绍的是一款3M C-15型Decor Scotch胶带座,该物品因材质原因带有轻微放射性。
  • 放射性成因:制造过程中使用了含钍(thorium)的独居石砂(monazite sand)作为底部配重材料。这些棕色砂粒与环氧树脂混合,可通过掀开胶带座底部的橡胶层观察到。
  • 发现与鉴定:20世纪70年代末至80年代初,阿拉巴马州某医院技术员在办公室进行辐射调查时,偶然发现其使用的胶带座(据信为绿色)具有放射性。该物品随后被送至橡树岭联合大学(Oak Ridge Associated Universities),由专业人员确认了放射性的具体成因。
  • 特定物品来源:文中展示的特定胶带座样本,来自美国陆军原本计划作为放射性废料处理的一大批(55加仑桶装)胶带座。
38. Averaging is a convenient fiction of neuroscience (www.thetransmitter.org)

平均化:神经科学中一个便利的虚构

神经科学领域普遍存在一种研究方法:平均化。无论是在时间上对多次试验的结果取平均(如构建“调谐曲线”和“刺激周围时间直方图”),还是在神经元群体中对单个神经元的反应取平均,这种方法都极为常见。其初衷是好的:由于单个神经元在单次事件中发放的脉冲(spike)稀少且变异性大,平均化能够帮助研究人员从噪声中提取出可靠的信号,揭示神经元通常对什么事件(如特定频率的声音、奖励)做出响应。

然而,平均化是一个便利的虚构,因为它掩盖了大脑实际工作的真实图景。一个神经元实际接收到的输入是来自其他神经元的、瞬息万变的少量脉冲,而不是任何平均值。平均化后的数据所呈现的“典型”反应模式,可能与神经元在单个时刻、单次试验中的真实计算过程大相径庭。

这种扭曲对神经科学理论构成了实质性挑战。文章以一个经典理论为例:决策过程中的证据积累理论。该理论认为,大脑皮层(如外侧顶内区)存在“证据积累神经元”,其活动会随着支持某一选项的感觉证据的增加而呈斜坡式上升,直至达到决策阈值。这一理论最初正是基于对神经元活动进行跨试验和跨神经元平均后得到的“斜坡”式信号。

然而,当研究人员使用更先进的统计工具分析单个神经元在单次试验中的活动时,发现情况截然不同:

  1. 许多神经元并未呈现平滑的斜坡式活动,而是在任意时刻突然增加或减少发放。
  2. 即使那些活动增加的神经元,其增长模式也更可能是阶梯状而非斜坡状。
  3. 大量单个神经元的实时反应模式与基于平均数据构建的理论模型不符。

这引出了一个根本性问题:当我们对神经活动进行平均时,我们是否自动假设大脑的其他部分看到的正是这种聚合后的实时信号?我们是否假设个体神经元的变异能完美地相互抵消,使得群体活动总和与平均信号等效?文章指出,我们并不知道这个假设是否成立。平均化长期以来是神经科学工具和思维语言的核心部分,但它的盛行可能只是一种历史便利,源于早期技术限制(如绘图简便)和“发现神经元对特定刺激有不同反应就已是重大突破”的时代。

总之,平均化作为一种研究工具,虽然有助于理解复杂性,但可能已成为一个误导性的“便利虚构”,阻碍了我们对大脑真实计算机制的理解。作者呼吁,利用现在能同时记录数百个神经元活动的技术,我们终于可以检验:神经元群体的实时聚合信号,是否真的等同于我们通过平均获得的信号。这将决定平均化究竟揭示了关于大脑的真相,还是一个需要摒弃的历史性误解。