每日HackerNews RSS

## acadlisp.de:浏览器中的AutoLISP acadlisp.de 是一个基于 Rust 的 AutoLISP 解释器,编译为 WebAssembly,允许 AutoLISP 代码直接在 Web 浏览器中运行——无需 AutoCAD。它源于 1991 年的一个项目,该项目的创建者使用 AutoLISP、CSV 文件和模板自动生成电气原理图,形成了一种独特高效的工作流程。 出于怀旧和保存这种知识的愿望,该项目在线复活了这种自动化能力。AutoLISP 诞生于 1958 年,以其“同像性”(代码即数据)、自修改能力和符号处理而闻名——这些特性在原始原理图生成器中被利用,代码动态地创建更多代码。 该解释器目前支持核心 AutoLISP 函数,如 `defun`、`setq` 以及数学/列表操作,并以 SVG 和 DXF 格式输出图形。一个简单的例子展示了通过单个函数调用绘制矩形。你可以在网站上探索一个交互式演示。

## Rust/WASM AutoLISP 解释器:一份怀旧的保存 一位开发者“holg”创建了一个Rust/WASM AutoLISP解释器,AutoLISP是AutoCAD自90年代初以来使用的Lisp方言。该项目源于开发者数十年前建立的个人工作流程——使用电子表格定义组件,并通过AutoLISP模板自动生成技术图纸。holg意识到这种方法在很大程度上被遗忘,因此他构建了这个解释器,一部分是为了怀旧,另一部分是为了在知识消失之前进行保存。 该项目包含原始的AutoLISP文件和重现,可以直接在网页浏览器中运行。许多评论者分享了使用AutoLISP进行各种应用的类似经历,包括电气原理图、PCB布局、广播设施设计,甚至大型基础设施项目,如光纤网络勘测和立法选区划分。 许多人强调了AutoLISP的强大和效率,尤其是在自动化重复绘图任务方面。讨论揭示了一个共同的主题:AutoLISP赋予了用户*无需*专门的编程专业知识就能显著改善工作流程的能力。虽然现在有现代工具,但该项目是对一个强大但经常被忽视的CAD自动化时代的致敬。代码可在GitHub上找到:[https://github.com/holg/acadlisp/](https://github.com/holg/acadlisp/)。

早期Macintosh的开发面临一个令人惊讶的瓶颈:软盘驱动器。尽管拥有强大的处理器,有限的内存导致频繁地从缓慢的软盘加载数据,抵消了机器的速度优势。史蒂夫·乔布斯特别关注漫长的启动时间,可能需要几分钟。 为了激励工程团队,乔布斯采取了一种独特的策略。他挑战工程师拉里·凯尼恩缩短启动时间,将改进描述的不作为一项技术壮举,而是一项拯救生命的努力。乔布斯计算,仅仅为预计的五百万用户缩短10秒启动时间,每年就能集体节省数十人的寿命。 虽然团队已经很有动力,但乔布斯富有戏剧性的呼吁——以及其中固有的幽默感——进一步激励他们优化软件,最终超过了缩短10秒的目标。这个故事突显了乔布斯非常规的领导力和对用户体验的不懈追求。

## Calibre 添加 AI 功能,引发用户反弹 Calibre 这款流行的电子书管理软件最近推出了一项“与 AI 讨论”功能(版本 8.16.0),允许用户向 AI 模型查询书籍并获取推荐。开发者 Kovid Goyal 迅速批准了这项功能,并设想未来进一步集成 AI,例如封面生成和文本转语音。然而,该功能引发了用户强烈反弹,他们担心 AI 会侵入阅读体验,并对 AI 训练数据存在伦理方面的担忧。 许多用户表达了道德上的反对,特别是那些作品可能被用于训练 AI 模型作者。尽管 Goyal 最初驳回了这些担忧,但他现在已经接受了一个补丁,将该功能从界面中*隐藏*,但底层的 AI 功能仍然存在。 目前,用户可以将 calibre 连接到各种 AI 提供商(包括本地模型),但该功能需要配置并且可靠性不高。已经出现了一些 calibre 的分支版本,旨在完全删除 AI 功能。虽然存在 calibre 的替代品用于*阅读*电子书,但目前没有一款能与 calibre 媲美的全面管理和转换功能,这使得用户选择有限,只能退回到旧版本或接受 AI 集成。这一事件凸显了开源社区内部日益增长的紧张关系,即 AI 的日益普及。

## Calibre增加AI功能:褒贬不一 Calibre,流行的电子书管理软件,增加了一个AI“讨论”功能,引发了用户之间的争论。一些人认为拥有一个可以讨论书籍的AI伴侣很有价值,而另一些人则对侵入式AI集成和数据隐私表示担忧。 一个主要的争议点在于,即使是不必要的,AI也被强行添加到应用程序中,这让人联想到过去的应用泛滥趋势,例如为每个网站都开发应用程序。用户质疑在Calibre中加入AI的必要性,因为像ChatGPT这样的替代方案已经很容易获得。担忧还包括潜在的跟踪、与大型公司共享数据以及依赖可能存在偏见的语言模型的伦理影响。 然而,Calibre提供了使用本地AI模型的选项,解决了一些隐私问题。支持者强调了潜在的好处,例如自动记笔记和回答关于复杂叙述的问题。最终,该功能的成功将取决于用户的选择,以及它是否能够在简单的任务之外证明其真正的实用性。开发者已经通过提供隐藏该功能的UI选项来回应最初的抵制,但计划继续开发AI集成。

启用 JavaScript 和 Cookie 以继续。

## 黑客新闻讨论:高中生与潜在的天文发现 一位高中生利用机器学习模型和 NASA 数据识别出 150 万个潜在的新天文物体,引发了黑客新闻的讨论。虽然他的工作受到赞扬,但评论员对在进一步分析和验证之前发现的有效性表示怀疑。 核心争论在于“潜在”发现与确认发现之间的意义,以及特权在促成此类项目中的作用。许多人指出,这位学生能够使用加州理工学院的计算基础设施和导师指导,质疑这项成就是否完全归功于天赋。有人认为该项目是一个典型的“科学博览会”项目,被媒体的关注夸大了。 另一些人则为该学生辩护,认为获得资源并不能否定这项成就,并强调鼓励年轻科学家是很有价值的。一个反复出现的主题是偏见的可能性以及人脉关系在学术成功中的影响,一些评论员分享了类似情况的轶事。最终,这场讨论凸显了认可科学成就的复杂性以及影响机会的系统性因素。

启用 JavaScript 和 Cookie 以继续。

## 查找编译器总结 本文详细介绍了作者为 Unix `find` 实用程序开发编译器的过程,其动机来自于未来的项目以及对常用实现效率低下的惊讶。现有的 `find` 实现通常依赖于树形遍历解释器,而作者选择使用字节码编译器来提高性能,通过预解析和最小化每个文件的操作来实现。 `find` 表达式语言,利用诸如 `-a` (与)、`-o` (或) 和 `!` (非) 等运算符,被翻译成简单的五条指令的字节码。该字节码作为一个单寄存器机器运行,使用分支指令 (`braf`/`brat`) 来实现逻辑运算。 作者的编译器 `findc` 将 `find` 的中缀表示法转换为后缀表示法,使用 Shunting-yard 算法,然后通过在栈上构建代码片段将其转换为字节码。生成的字节码虽然功能正常,但展示了优化的机会——例如消除冗余的 `NOT` 指令和简化分支——可以通过窥孔优化器来实现。提供了一个 Wasm 演示和源代码,允许用户试验 `find` 命令并观察它们的字节码表示。

## Hacker News 讨论:`find` 命令性能 一篇 Hacker News 讨论围绕着 Unix `find` 命令通常使用简单的树形遍历解释器,而不是将表达式编译成字节码的原因。最初的帖子表达了对这种实现选择的惊讶。 普遍的共识是,`find` 的性能主要受限于磁盘 I/O,使得表达式求值的优化在很大程度上无关紧要。即使使用 RAM 磁盘等快速存储,大量的文件和目录仍然可能使 I/O 成为瓶颈。 虽然字节码方法*可能*提供诸如更易于测试和潜在降低 CPU 使用率之类的优势,但与文件系统操作所花费的时间相比,收益可能微乎其微。 许多评论员指出数据库系统中的类似方法,即使是成熟的数据库,由于 I/O 的主导地位,也经常优先使用树形遍历进行表达式求值。 优化集中在 I/O 和复杂计算上,而不是简单的文件过滤。 最终,简单性和易于实现是 `find` 设计的关键因素,因为解释器直接反映了搜索表达式的树形结构。

几个世纪以来,西班牙从新大陆获得了大量黄金涌入,成为欧洲强国。然而,尽管收到了巨额财富,西班牙最终未能维持其繁荣——这引发了一个问题:所有的黄金都去哪儿了? 虽然盗窃和海盗行为导致了10-15%的黄金未能抵达西班牙,但大部分黄金确实运到了。问题不在于缺乏黄金,而在于一场被称为“价格革命”的剧烈通货膨胀。货币供应量(黄金和白银)的突然增加超过了商品生产,导致物价上涨,西班牙产品失去竞争力。 这导致西班牙进口大于出口,造成了净财富流出。控制贵金属出口的尝试失败了,黄金基本上通过消费和债务“悄然流失”。西班牙经历了货币激增,但财富却没有相应增加,最终导致了几个世纪的经济困难。 关于进一步损失的传言仍然存在,包括西班牙内战期间西班牙国库转移到俄罗斯的说法,但证据仍然难以捉摸。

本书将引导读者使用 Rust 从零开始构建一个完全功能、符合 POSIX 标准的操作系统——**不依赖外部库**。作者强调清晰的解释,体现了爱因斯坦的原则:真正的理解能带来简洁的沟通。 虽然一些编程经验会有帮助(Rust 知识不是必需的,但熟悉一种编程语言即可),但本书旨在让即使是低级编程新手也能理解。它将涵盖诸如汇编、内存管理和 CPU 模式等基础概念,以及 Rust 特有的特性。 项目将从启动和调试开始,逐步实现核心操作系统组件:内存分配、中断处理、文件系统、进程管理,最终运行像 Doom 这样的程序。作者欢迎反馈以提高清晰度,并计划可能扩展本书以包含虚拟化主题。

## LearnixOS:一个新的操作系统开发资源 LearnixOS (learnix-os.com) 是一个新项目,旨在教授操作系统开发,使用 Rust 语言实现。该项目在 Hacker News 上引发了讨论,许多用户最初误以为它是一个关于学习 NixOS 的资源,因为名称相似。但已澄清,“Learnix” 是 “Unix” 和 “Learn” 的组合词。 该项目专注于从头开始构建操作系统,有意避免使用高级抽象,以促进更深入的理解。一些评论者赞赏这种方法以及使用 Rust,并指出它便于交叉编译。另一些人则建议使用 RISC-V 等替代目标架构,认为它比 x86 更适合初学者。 反馈包括改进语法和一致性的建议,一些人认为轻微的错误比经过抛光的人工智能生成的文本更具“人性化”。 此外,还将它与现有的操作系统开发教程(如 MIT 6.824 和 Phil Opperman 的作品)进行了比较。开发者已收到反馈并计划解决这些问题。

Please provide the content you want me to translate. I need the text to be able to translate it to Chinese.

1990年12月底,英国计算机科学家蒂姆·伯纳斯-李在欧洲粒子物理实验室CERN悄然启动了万维网。作为一项类似于“影子IT”的项目,他创建了基础技术——HTML、网页浏览器和Web服务器,以便在不同计算机之间轻松共享信息。 第一个Web服务器托管在info.cern.ch,大约在12月20日或25日上线,展示了关于万维网本身的的技术文档。不幸的是,没有原始截图存在,但有1992年的近似版本。 最初的影响并不明显,但随着1993年用户友好型浏览器NCSA Mosaic的发布,万维网在大学中迅速传播。这最终推动了互联网泡沫的出现,并塑造了我们今天所知的互联网,这一切都源于伯纳斯-李最初的目标:可访问、互联的数据。

更多

联系我们 contact @ memedata.com