2024-08-04 Hacker News Top Stories #
- 一个极其复杂的代码库因SQL Server列限制而诞生,尽管充满技术债务,却促进了开发者成长和创新。
- p5.js是一个开源JavaScript库,简化编程学习并助力艺术创作,尽管性能上有局限,但对于初学者极具吸引力。
- ArchiveTeam Warrior是一款虚拟归档工具,帮助用户参与网络内容的归档工作,强调数据的可访问性和索引的重要性。
- Hanon Pro是一款面向数字时代的钢琴练习应用,支持多种设备,提供现代化的练习方法和技巧提升功能。
- 文章探讨了数据库kdb+的未来发展方向,包括面对的竞争和技术改进的需求。
- Tauri 2.0发布候选版已出,该版本提高了稳定性,并呼吁社区支持,但仍需改进UI体验。
- “Vimtutor Sequel”是一个高级Vim教程项目,旨在帮助用户深化Vim编辑器的使用技能。
- SectorLISP是一个仅436字节大小的LISP实现,集成了垃圾回收功能,可在多种平台上运行。
- 对航天飞机上59磅重打印机的逆向工程揭示了其设计细节和在多次太空任务中的可靠性。
- 波音公司的Starliner项目因技术问题导致巨额亏损,凸显了管理不善和工程挑战。
“We ran out of columns” #
https://jimmyhmiller.github.io/ugliest-beautiful-codebase
这篇文章由 Jimmy Miller 撰写,标题为《我们用完了列——最好的最糟糕的代码库》。作者回忆了他在一家公司工作时遇到的一个极其复杂且混乱的代码库,尽管它存在许多问题,但也充满了乐趣和学习的机会。
主要内容摘要: #
-
数据库的文化:
- 在大型遗留系统中,数据库不仅是数据存储的地方,更是系统运作的核心。作者提到,SQL Server 对表中列的数量有限制,导致他们不得不创建一个名为“Merchants2”的新表来存储客户信息。
-
SequenceKey 表:
- 这个表只有一行一列,用于生成 ID。尽管看似简单,但它在系统中起到了关键作用,成为了不同实体表之间的隐式连接。
-
手动日历系统:
- 系统的登录依赖于一个手动填写的“calendar”表,作者提到曾经因为这个表用完而无法登录的情况。
-
员工数据处理:
- 每天早上 7:15,员工表会被清空,然后从 CSV 文件中重新上传数据,这一过程有时会失败,导致系统无法登录。
-
替代数据库:
- 公司有一个更新的数据库副本,但数据延迟约 10 分钟,并且需要多次连接才能获取信息,导致复杂性增加。
-
销售数据管理:
- 销售人员的业绩记录非常复杂,甚至出现了需要实习生手动修改记录的情况。
-
代码库的混乱:
- 代码库由 VB 和 C#混合构成,使用了多种 JavaScript 框架,且没有统一的设计规范。作者描述了一个名为 Gilfoyle 的开发者,他的代码常常没有被提交,导致后续开发者需要追踪未记录的应用程序。
-
运输系统的 bug:
- 作者追踪了一个复杂的运输系统 bug,发现其根源在于一个依赖于 SOAP 服务的客户端,且代码结构极其复杂。
-
美丽的混乱:
- 尽管代码库混乱,但作者认为这种环境让开发者能够自由地创新和解决问题。每个开发者都在自己的小天地中进行改进,而不必担心整体的一致性。
-
对过去的怀念:
- 作者表达了对这种“丑陋而美丽”的代码库的怀念,认为这种直接与用户的联系和快速反馈是他职业生涯中难得的体验。
总结: #
这篇文章通过对一个复杂代码库的回顾,探讨了在混乱中如何找到创造力和解决问题的乐趣。尽管存在许多技术债务和管理问题,作者仍然对那段经历充满了怀旧之情,认为这种环境促进了开发者的成长和创新。
HN 热度 774 points | 评论 286 comments | 作者:poidos | 11 hours ago #
https://news.ycombinator.com/item?id=41146239
- 许多开发团队在引入版本控制时面临抵制,尤其是老一辈开发者对新工具的怀疑态度。
- 版本控制的普及经历了漫长的过程,许多公司在使用旧的管理方式,导致代码版本混乱。
- 有些公司在没有版本控制的情况下,依赖手动管理和文件锁定,造成了严重的协作问题。
- 引入新技术时,往往需要逐步推进,而不是一次性全面实施,以避免引发抵触情绪。
- 许多开发者在职业生涯早期缺乏良好的培训,导致不良编码习惯的形成。
- 在一些公司,尽管有版本控制工具,但实际使用中仍然存在混乱,无法确保代码的一致性。
- 许多开发者在面对老旧的工作流程时感到无奈,尝试引入新技术却遭遇阻力。
- 代码审查和团队协作的缺失,导致了许多低效和错误的发生。
- 有些开发者在面对复杂的代码库时,感到疲惫和挫败,尤其是在缺乏支持的环境中。
p5.js #
p5.js 是一个友好的工具,旨在帮助人们学习编程并进行艺术创作。它是一个免费的开源 JavaScript 库,由一个包容和关怀的社区共同开发,欢迎艺术家、设计师、初学者、教育工作者及其他任何人参与。
主要内容摘要: #
-
功能与目标:
- p5.js 旨在使编程变得更加易于接触,特别是对于艺术创作。
- 提供了丰富的库参考、教程和示例,帮助用户快速上手。
-
社区与贡献:
- p5.js 拥有一个活跃的社区,鼓励用户贡献代码、艺术作品和教学资源。
- 网站上有专门的部分介绍如何参与和贡献。
-
学习资源:
- 提供了详细的文档和示例,用户可以通过这些资源学习如何使用 p5.js 进行创作。
- 包括各种示例项目,展示了 p5.js 的多种应用可能性。
-
在线编辑器:
- p5.js 还提供了一个在线编辑器,用户可以直接在浏览器中编写和测试代码。
-
下载与支持:
- 用户可以下载 p5.js 库以便在本地开发。
- 网站上有捐赠选项,支持 p5.js 的持续发展。
-
社交媒体与联系:
- p5.js 在多个社交媒体平台上活跃,用户可以通过这些渠道获取最新信息和参与讨论。
总之,p5.js 是一个旨在让编程和艺术创作变得更加亲民和可接触的工具,适合各种背景的用户。
HN 热度 355 points | 评论 53 comments | 作者:alabhyajindal | 18 hours ago #
https://news.ycombinator.com/item?id=41144755
- p5.js 的新网站提升了文档的组织和可访问性,用户体验显著改善。
- 尽管 p5.js 在追赶,但在性能上仍不及 d3 或 three.js,尤其在像素级计算上效率低下。
- p5.js 适合初学者,能够激发他们的创造力,但在现代网页动画中,使用 CSS3 和其他库可能更为高效。
- 450k 欧元的资助引发争议,许多人认为这笔资金不应集中在一个不太流行的框架上。
- 旧网站的可用性受到赞赏,新网站在移动设备上的优化表现良好。
- 处理(Processing)语言的创始人与 Processing 基金会的分歧影响了 p5.js 的发展方向。
- p5.js 的社区和相关视频资源对学习编程和动画制作有很大帮助。
- 有用户表示对 Processing 的怀旧,认为其在某些方面仍优于 p5.js。
ArchiveTeam Warrior #
http://warrior.archiveteam.org/
网站 ArchiveTeam Warrior 是一个虚拟归档工具,旨在帮助用户参与 ArchiveTeam 的归档工作。以下是该网站内容的详细中文摘要:
-
功能介绍:
- ArchiveTeam Warrior 是一个虚拟机,用户可以在自己的计算机上运行它,以支持 ArchiveTeam 的归档努力。该工具会下载网站并将其上传到 ArchiveTeam 的存档中。
-
系统兼容性:
- Warrior 可以在 Windows、OS X 和 Linux 系统上运行。用户需要安装 VirtualBox(推荐)、VMware 或类似程序来运行虚拟机。
-
使用步骤:
- 下载虚拟机文件(约 357MB)。
- 在 VirtualBox 中导入该虚拟机文件。
- 启动虚拟机,它会自动获取最新更新,并提示用户启动网页浏览器。
- 访问 http://localhost:8001/ 检查设置页面,选择用户名以便在排行榜上显示进度。
- 在“所有项目”标签中选择一个项目进行工作,推荐选择 ArchiveTeam 的优先项目。
-
捐赠与支持:
- 鼓励用户向互联网档案馆(Internet Archive)捐赠,以支持其免费存储和维护公共数据的工作。
-
常见问题:
- Warrior 虚拟机已更新至 3.2 版本,提供对当前项目的更好支持,但某些项目可能仍会出现空白页面的问题。
- 用户还可以选择使用 Docker 实例运行项目,而无需使用虚拟机。
-
当前项目:
- 包括 URLTeam 2、Blogger、Reddit、YouTube、GitHub、MediaFire、Pastebin、Imgur 等。
总之,ArchiveTeam Warrior 是一个便捷的工具,旨在通过用户的参与来保存和归档互联网内容,用户只需简单的设置即可开始贡献。
HN 热度 219 points | 评论 60 comments | 作者:xnx | 1 day ago #
https://news.ycombinator.com/item?id=41141349
- 归档项目非常必要,但需要超越简单的“归档”,使数据真正对公众可用。
- Reddit 对数据被镜像并公开可用感到不满,甚至更新了 API 的使用条款。
- 需要一个搜索引擎来索引 Wayback Machine 上的所有内容,使其更易于访问。
- 许多国家已经有公共文化保存项目,针对本国的网络存在进行归档。
- 去中心化存储项目已经取得了一定的进展,可以考虑进行去中心化备份。
- 归档团队的项目需要更多的参与者来处理大量数据。
- Reddit 的 API 如果完全关闭,将会导致其失去大量用户和流量。
- 归档团队与互联网档案馆是不同的,前者需要在下载内容后再推送到后者。
- 运行 ArchiveTeam Warrior 的设置相对简单,适合个人参与数字保存工作。
Show HN: Hanon Pro – piano technique and exercises for the digital age #
https://furnacecreek.org/hanon/
Hanon Pro 是一款适用于 iPhone、iPad 和 Mac 的应用程序,旨在为数字时代的键盘和钢琴技巧提供现代化的练习方式。该应用程序类似于健康和健身应用,能够跟踪用户的钢琴练习进展,提供反馈,帮助可视化趋势,并记录练习习惯。
主要功能: #
- 内容目录:应用内有专门设计的乐谱,支持响应式布局和黑暗模式,用户可以收听每首乐曲,并使用内置节拍器调整速度。
- MIDI 支持:通过蓝牙或 USB 连接 MIDI 键盘,应用能够分析用户的演奏,包括准确性、节奏和力度,并在演奏时自动翻页。
- 练习提醒:用户可以设置每日练习提醒,帮助养成练习习惯,并通过内置的游戏中心功能获得成就。
- 丰富的元数据:每个作品都有详细的信息,包括作曲家、调性、创作年份等。
- 图表和进度跟踪:用户可以查看进度图表,跟踪每日练习时间和习惯。
适用内容: #
应用程序的乐谱库包括常用的技巧练习,如音阶、和弦、Hanon 练习、Schmitt 练习,以及巴赫、贝多芬、莫扎特等作曲家的作品。
价格与可持续性: #
由于应用需要为互动功能(如自动翻页和计算机辅助评估)准备内容,因此会对乐谱和书籍收取费用,以支持未来的开发。
用户评价: #
用户普遍反馈积极,认为通过游戏化的练习方式和反馈机制,能够有效提高练习的积极性和持续性。
Hanon Pro 兼容 iOS 17,需配备蓝牙或 USB MIDI 键盘。
HN 热度 209 points | 评论 84 comments | 作者:albertru90 | 18 hours ago #
https://news.ycombinator.com/item?id=41144826
- 有用户反馈应用在连接 MIDI 控制器时崩溃,但整体反馈积极,认为应用有助于学习。
- 强调错误音符被高亮显示是音乐教学软件中重要但缺失的功能。
- 对于 Hanon 练习法的批评主要集中在其枯燥和不当的指法指导上,认为其可能导致不良的演奏习惯。
- 一些专业钢琴教师认为 Hanon 的练习可以作为热身,但应结合其他练习方法。
- 有用户提到使用其他应用(如 Synthesia)时,虽然能提高肌肉记忆,但也存在只会模仿而不懂乐谱的担忧。
- 讨论中提到,学习钢琴的过程中,找到合适的老师和工具是非常重要的,尤其是在初学阶段。
- 有用户建议使用带有灯光的键盘来激发孩子们的学习兴趣。
- 对于应用的功能需求,用户希望能有更多的自定义和进度跟踪功能。
- 讨论中提到,学习音乐理论和技巧的书籍和资源对提升演奏水平有帮助。
The future of kdb+? #
https://www.timestored.com/b/the-future-of-kdb/
这篇文章讨论了 kdb+ 的未来,作者 Ryan Hamilton 在文章中总结了 kdb+ 的应用场景、竞争对手以及未来的发展方向。
主要内容摘要: #
-
应用场景:
- 历史市场数据存储与分析:如 MS Horizon、Citi CloudKDB 等。
- 本地量化分析:例如流动性分析、盈亏分析等。
- 实时流计算引擎:如流式 VWAP、流式 TCA 等。
- 分布式计算:如股票投资组合的保证金计算或风险分析。
-
竞争对手:
- 在历史市场数据存储方面,kdb+ 面临 Clickhouse、QuestDB 等新数据库技术的竞争。
- 对于本地量化分析,Python 及其相关工具(如 DuckDB、Polars)已成为主流,kdb+ 的市场份额受到威胁。
- 在实时流计算和分布式计算领域,Kafka 等技术正在获得更大的市场关注。
-
未来展望:
- kdb+ 虽然是一项出色的技术,但在过去 15 年中并未显著进步,竞争对手已经吸收了其优点并进行了标准化。
- 作者认为 kdb+ 需要采取以下措施以保持竞争力:
- 推出免费版本以吸引更多用户。
- 专注于核心产品的改进。
- 降低学习曲线,使 kdb+ 更易于学习。
- 增强市场知名度,避免逐渐被市场淘汰。
-
总结:
- 尽管 kdb+ 在金融领域仍有其独特优势,但随着开源工具的崛起和市场需求的变化,其未来面临挑战。作者呼吁 kdb+ 需要快速适应市场变化,以保持其在行业中的地位。
这篇文章为 kdb+ 的现状和未来提供了深刻的见解,强调了技术进步和市场竞争的重要性。
HN 热度 203 points | 评论 55 comments | 作者:geph2021 | 23 hours ago #
https://news.ycombinator.com/item?id=41143764
- 有人认为 TimeScale 是一个很好的 Postgres 扩展,支持 SQL,且性能优越,适合金融应用。
- kdb+ 的高成本和语言设计被批评,认为其不够直观,难以维护。
- 使用 kdb+ 的经验让一些人感到沮丧,尤其是在代码文档和可读性方面。
- DuckDB 和 Python 被视为 kdb+ 的潜在替代品,且在性能上表现良好。
- kdb+ 的垂直整合能力被认可,但其文档和社区支持不足。
- 有人建议 kdb+ 应该开源,以吸引更多开发者参与和贡献。
- 认为 kdb+ 在特定场景下表现优异,但在更广泛的应用中存在局限性。
- 讨论中提到的技术债务和迁移成本是使用 kdb+ 的主要障碍。
- 对于 kdb+ 的未来,许多人持谨慎态度,认为需要更多的开源替代方案。
Tauri 2.0 Release Candidate #
https://v2.tauri.app/blog/tauri-2-0-0-release-candidate/
Tauri 2.0 发布候选版的公告中,开发团队宣布经过超过半年的测试,Tauri 2.0 终于进入发布候选阶段,标志着该版本的稳定性。以下是公告的详细摘要:
-
发布背景:
- Tauri 2.0 的开发经历了超过一年的 alpha 和 beta 阶段,团队希望通过发布候选版来集中精力完善文档和修复重要的错误。
-
稳定版本的预期:
- 团队计划在 8 月底发布稳定版本,发布候选期约为四周。稳定版本将提供更清晰的文档和减少关键错误。
-
移动端支持:
- 虽然团队曾承诺“移动端作为第一公民”,但他们意识到需要与社区共同迭代以实现这一目标。目前,Tauri 已经支持开发移动应用,且有多个移动插件可用。
-
破坏性更改:
- 团队在发布候选版前讨论了一些必要的破坏性更改,主要涉及核心插件的权限引用方式。开发者需要确保使用最新的 Tauri CLI 版本以便顺利迁移。
-
核心插件的迁移:
- Tauri 2.0 将大部分核心功能迁移到独立插件中,以便于独立迭代和降低新贡献者的门槛。
-
开发服务器的改进:
- 新版本允许在开发 Android 和 iOS 应用时连接本地开发服务器,无需将其暴露在公共网络上。
-
Rust API 的重构:
- 对 Rust API 进行了部分重构,以减少公开暴露的组件,确保未来的安全性和稳定性。
-
外部安全审计:
- 团队进行了外部安全审计,发现并修复了一些问题,审计报告将在发布候选版后发布。
-
社区参与的呼吁:
- Tauri 团队鼓励社区成员参与项目,提供反馈和贡献,帮助改善文档和解决问题。
-
总结:
- Tauri 2.0 发布候选版现已推出,迁移工作需要注意,外部安全审计报告即将发布,文档完善是当前的重点,团队期待更多的社区参与。
公告最后提供了简要的“太长不看”总结,强调了发布候选版的关键点和社区参与的重要性。
HN 热度 199 points | 评论 89 comments | 作者:martpie | 1 day ago #
https://news.ycombinator.com/item?id=41141962
- Tauri 2.0 的主页信息不够清晰,建议增加更详细的介绍。
- Tauri 是一个用于构建小型快速二进制文件的框架,支持多种前端框架和后端语言。
- 用户对 Tauri 的安全性表示认可,但希望能更好地满足跨平台 UI 的需求。
- 一些开发者在使用 Tauri 时遇到文档不足的问题,影响了开发体验。
- Tauri 与 Electron 的比较中,Tauri 被认为更轻量,但在 Linux 上的 WebKitGTK 支持存在问题。
- 开发者希望 Tauri 能够提供更多的测试工具和社区支持。
- Tauri 的移动支持正在开发中,吸引了一些开发者的关注。
- 使用 Tauri 的开发者表示,尽管遇到了一些挑战,但整体体验良好。
- 有人认为 Tauri 的设计选择使其在某些情况下不如 Electron 灵活。
- Tauri 的目标是提供更好的本地资源访问能力,而不仅仅是一个 Web 应用。
I Made an Extended Version of Vimtutor – Introducing Vimtutor Sequel #
https://github.com/micahkepe/vimtutor-sequel
该 GitHub 项目“Vimtutor Sequel”是一个针对 Vim 编辑器的高级教程,旨在帮助用户深入理解 Vim 的使用。以下是该项目的详细摘要:
项目概述 #
- 名称: Vimtutor Sequel
- 目标: 提供更高级的 Vim 命令和技巧的教程,适合已经掌握基础的用户。
主要特点 #
- 高级 Vim 命令和技巧: 涵盖了 Vim 的更复杂功能,帮助用户提升编辑效率。
- 逐步教程: 通过系统化的步骤引导用户学习。
- 互动练习: 提供练习以巩固学习内容。
安装方法 #
-
使用 Homebrew 安装(适用于 macOS 用户):
- 首先安装 Homebrew(如果尚未安装):
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
- 然后,添加仓库并安装:
brew tap micahkepe/vimtutor-sequel brew install vimtutor-sequel
- 首先安装 Homebrew(如果尚未安装):
-
手动运行教程(适用于 Windows 或 Linux 用户):
- 克隆仓库:
git clone https://github.com/micahkepe/vimtutor-sequel.git
- 进入目录并复制教程文件:
cd vimtutor-sequel cp vimtutor-sequel.txt vimtutor-sequel-copy.txt
- 使用自定义配置运行 Vim:
vim -u vimtutor-sequel.vimrc vimtutor-sequel-copy.txt
- 克隆仓库:
使用方法 #
- 运行教程的命令为:
vimtutor-sequel
许可证 #
该项目采用 MIT 许可证,允许用户自由使用和修改。
贡献 #
项目欢迎贡献者,具体信息可参考 CONTRIBUTING.md
文件。
其他信息 #
- 项目当前有 194 个星标,表明其受欢迎程度。
- 最新版本为 v1.2.2,包含对某些课程步骤的增强说明。
这个项目是一个很好的资源,适合希望进一步掌握 Vim 的用户。
HN 热度 176 points | 评论 29 comments | 作者:micahkepe | 17 hours ago #
https://news.ycombinator.com/item?id=41144843
- 有人提到希望能有类似于 Vimtutor Sequel 的 Emacs 教程续集。
- Vimtutor Sequel 为已经掌握基础的用户提供了更高级的 Vim 功能和命令的学习。
- 学习 Vim 的过程被认为是值得的,许多人表示通过 Vim 提高了自己的生产力。
- 有人认为工具的选择对开发者的生产力影响微乎其微,真正的瓶颈在于更高层次的决策。
- 一些用户分享了在使用 Vim 和 VS Code 之间的经验,认为两者各有优劣。
- 学习 Vim 和 Emacs 的过程虽然艰难,但其可扩展性和长期价值让人愿意投入时间。
- 有人提到现代应用程序的使用不再需要手册,反映了工程师的工作环境改善。
- 对于配置的复杂性,有人建议保持简单,优先学习内置功能以避免陷入配置地狱。
- 许多用户对 Vim 的操作方式表示喜爱,认为其独特的操作模式提升了编码体验。
Lisp with GC in 436 Bytes #
https://justine.lol/sectorlisp2/
该网页介绍了一个名为 SectorLISP 的项目,这是一个优化到仅占用 436 字节 的 LISP 编程语言实现,并且首次支持垃圾回收(GC)。这一实现可以在 512 字节 的软盘启动扇区内运行,使其成为世界上最小的高级垃圾回收编程语言,超越了 FORTH 和 BASIC。
主要内容摘要: #
-
项目背景:
- SectorLISP 是一个基于 LISP 的系统,能够在 1981 年及以后的所有 PC 上运行,要求至少有 64KB 的内存。
- 该项目的目标是通过极简主义的设计,创建一个小巧的 LISP 语言实现,强调文件大小的优化。
-
技术实现:
- SectorLISP 由 223 行汇编代码 组成,能够让用户用 40 行 LISP 编写自己的 LISP 解释器。
- 通过对 i8086 汇编实现的优化,项目团队成功地将代码大小减少了 100 字节,并添加了一个 40 字节 的垃圾回收器。
-
功能与兼容性:
- SectorLISP 可以运行 LISP 1.5 中的证明助手,证明其功能强大。
- 提供了多种二进制文件供下载,包括适用于不同操作系统的版本(如 Linux、Mac、Windows 等)。
-
模拟与运行:
- 用户可以通过浏览器使用 SectorLISP,提供了 C 和 JavaScript 源代码的模拟器,模拟其在裸机上的行为。
- 该项目还展示了如何在原始 IBM PC 硬件上运行 SectorLISP,确认其兼容性。
-
内存模型与评估:
- SectorLISP 使用了一种特殊的内存模型,支持原子和 cons 单元的存储。
- 其评估机制基于递归调用,能够将列表的第一个元素转化为 lambda 表达式。
-
垃圾回收机制:
- 使用了一种称为 ABC 的垃圾回收机制,通过保存 cons 堆栈的位置来管理内存,确保不再使用的 cons 单元被回收。
-
数学与计算:
- SectorLISP 不直接支持数字,但可以通过符号序列实现基本的算术运算。
- 提供了符号微分的功能,展示了 LISP 在处理数学表达式方面的强大能力。
-
语言的普适性:
- SectorLISP 展示了 LISP 语言的灵活性和强大,能够实现自身的定义,并支持构建其他领域特定语言(DSL)。
结论: #
SectorLISP 是一个极具创新性的项目,通过极简的设计和高效的实现,展示了 LISP 语言的强大功能和灵活性。该项目不仅是对编程语言极限的挑战,也为学习和使用 LISP 提供了一个有趣的平台。
HN 热度 166 points | 评论 24 comments | 作者:behnamoh | 1 day ago #
https://news.ycombinator.com/item?id=41142121
- 对于 Justine.lol 的项目,许多人感到惊叹,认为其每个项目都蕴含丰富的灵感和知识。
- 有人讨论了在 SectorLambda 虚拟机上实现的可能性,认为可以进一步缩小代码体积。
- 对于 Brainfuck 语言的讨论,认为它是玩具语言,主要用于挑战和乐趣,而 Lisp 是为编写实用程序而设计的真实语言。
- 有观点认为当前的 Lisp 实现并不符合“真实语言”的定义,因为它缺乏错误信息和宏等特性。
- 也有人辩称该实现能够运行真实的 Lisp 程序,认为其依然是有效的。
- 讨论中提到,Brainfuck 是图灵完备的,因此可以从中引导出 Lisp 解释器,这使得它在某种程度上也被视为“真实”的。
- 有人指出,Lisp 实现的目的是为了引导其他功能的实现,而不是作为完整的开发工具。
- 还有人提到,Brainfuck 并不是为了最大化难度,而是为了简化定义,认为 INTERCAL 或 Malbolge 更能体现难度。
Reverse engineering the 59-pound printer onboard the Space Shuttle #
http://www.righto.com/2024/08/space-shuttle-interim-teleprinter.html
这篇文章详细介绍了美国航天飞机上的一种名为“临时电传打字机”(Interim Teleprinter)的打印机。该打印机重达 59 磅,主要用于向宇航员传输程序、任务计划、天气报告等重要信息。它是在 1981 年首次航天飞机发射前的七个月内设计完成的,基于一款军用通信终端。
主要内容摘要: #
-
设计背景:
- 在阿波罗计划中,宇航员只能通过无线电接收信息并手动记录。为了改善这一点,NASA 决定在航天飞机上安装一种能够接收文本和图像的设备。
- 由于新系统(Uplink Text & Graphics System, TAGS)未能及时准备好,NASA 在发射前七个月决定开发临时电传打字机,以便通过现有的音频通道发送实时数据。
-
打印机机制:
- 临时电传打字机使用旋转的金属鼓和击锤机制进行打印,能够快速逐行打印。每次打印时,鼓上的字符会与纸张接触,形成所需的文本。
- 打印机的字符集经过调整,以适应航天飞机的需求,替换了一些 ASCII 字符为更适合航天任务的符号。
-
电子电路:
- 打印机内部包含多个电路板,负责解调音频信号并将其转换为打印机可识别的格式。数据通过频率移位键控(FSK)编码,0 和 1 分别由不同的频率表示。
- 设计中还包括了一个微处理器,用于控制打印过程和执行自检功能。
-
使用情况:
- 尽管该打印机最初被视为临时解决方案,但由于其可靠性,实际上在超过 50 次航天飞行中作为备份使用。
- 每次航天飞行中,打印机的使用成本超过 150 万美元。
-
后续发展:
- 随着 TAGS 系统的推出,临时电传打字机的使用逐渐减少,但由于 TAGS 频繁出现故障,临时电传打字机仍然被保留作为备份。
- 最终,另一种名为热脉冲打印机系统(TIPS)的打印机在 1993 年投入使用,取代了临时电传打字机和 TAGS。
结论: #
尽管临时电传打字机的设计初衷是短期使用,但其在航天飞机任务中的表现超出了预期,成为了一个可靠的解决方案。文章通过对打印机的详细分析,展示了其复杂的设计和在航天任务中的重要性。
HN 热度 153 points | 评论 42 comments | 作者:chmaynard | 6 hours ago #
https://news.ycombinator.com/item?id=41147643
- 讨论了航天飞机上的打印机成本,认为其重量和打印纸的运输成本也很高。
- 有人询问打印机的滚筒是否平稳旋转,或在击打纸张时是否会短暂停止。
- 认为打印机的击打机制与传统打字机相似,纸张在击打时被夹住。
- 提到航天器对设备的辐射和火焰安全有严格要求,导致无法使用市售的轻型打印机。
- 讨论了航天器设计时,市场上尚未有足够成熟的打印技术。
- 指出航天器的震动和加速度要求设备具备极高的耐用性。
- 有人对打印机的噪音水平表示好奇,认为其声音可能比普通点阵打印机更为宜人。
Boeing’s Starliner proves better at torching cash than reaching orbit #
https://www.theregister.com/2024/08/02/boeing_starliner_losses/
根据《注册》网站的报道,波音公司在其 2024 年第二季度财务报告中承认,由于 Starliner 宇宙飞船的持续问题,该项目又增加了 1.25 亿美元的损失。这使得波音在 Starliner 项目上的总损失超过了 10 亿美元,预计很快将超过 16 亿美元。波音指出,未来可能还会出现额外的损失。
Starliner 目前停靠在国际空间站(ISS),工程师们正在分析测试结果并最终确定返回地球的程序。由于推进器问题和气体泄漏,Starliner 无法在 NASA 的安全参数内返回地球,尽管它已获得紧急返回的批准,但美国官员目前不愿意采取这一选项。
NASA 和波音尚未确定宇宙飞船的返回日期,预计相关规划将持续到下周。波音表示,返回地球的准备工作正在进行中,团队正在进行模拟训练,ISS 的宇航员也在检查 Starliner 的外部。
由于 Starliner 的下一次飞行预计要到 2025 年 8 月,因此波音的财务状况可能在一段时间内继续恶化。
HN 热度 145 points | 评论 111 comments | 作者:seanhunter | 6 hours ago #
https://news.ycombinator.com/item?id=41147545
- 波音的管理层对工程师的敌视导致了项目延误和成本增加。
- 波音在固定价格合同下的表现不佳,缺乏适应能力。
- 内部腐败和管理不善是波音问题的根源。
- 波音在竞争中失去了诚实工程的能力,依赖政府补贴和保护。
- 公司的文化和管理方式导致了工程师的流失和创新能力的下降。
- 过度依赖顾问和外包,导致内部资源的浪费和效率低下。
- 波音的高管薪酬与公司业绩不成正比,造成了责任缺失。
- 政治捐款和监管捕获成为公司运营的主要策略。
- 波音的失败反映了美国制造业的普遍问题,缺乏竞争力和创新。
- 对于波音的未来,许多评论者持悲观态度,认为其难以恢复。