超逻辑——米切尔·哈希莫托Mitchell Hashimoto创办新公司Superlogical,将首先发布一款终端复用器。他此前开发的终端模拟器Ghostty已捐赠给非营利组织,永远不商业化。Superlogical基于libghostty这个公开组件构建,同时继续向上游贡献代码。Ghostty本身使命、治理、许可证不变。公司正在招聘,可通过官网获取beta访问和开发更新。 评论点赞收藏17 天前
每个开发者都该懂 SIMDMitchell Hashimoto 指出开发者不应畏惧 SIMD,日常编程中处理大量连续数据的循环常可被矢量化加速。文章以 Ghostty 终端项目为例,拆解了 SIMD 优化的通用五步模式:广播常量、按向量宽度循环、并行运算、结果归约及标量尾部处理。作者强调编译器自动向量化能力有限且不可控,手动实现可获得 4-8 倍性能提升,且代码结构高度规律,易于掌握。 评论点赞收藏24 天前
Zig 编译器解析器内部机制详解深入解析 Zig 编译器中 Parser 阶段的内部实现机制。文章详细讲解了 MultiArrayList 数据结构的设计原理及其在内存优化和缓存局部性上的优势,剖析了 AST 节点(Node)与额外数据(Extra Data)的存储布局,以及解析器如何通过索引间接引用构建语法树。适合希望理解 Zig 编译器底层架构及数据导向设计思想的开发者。 评论点赞收藏25 天前
Ghostty 将离开 GitHub知名开源开发者 Mitchell Hashimoto 宣布,其主导的终端模拟器项目 Ghostty 将离开 GitHub。Hashimoto 在文中详细阐述了他对 GitHub 长达 18 年的深厚情感,但同时也因频繁的服务中断(如 Actions 故障)导致工作受阻而愤怒决定迁移。他记录了每日因 GitHub 宕机无法工作的经历,并强调这不是技术问题(Git 本身),而是围绕 Git 的基础设施(Issues、PRs、Actions 等)不可靠。尽管个人项目仍留在 GitHub,Ghostty 将逐步迁移至其他平台,并保持 GitHub 上只读镜像。文章结合了个人情感、技术批判与开源社区动态,具有强烈的人味和深度。 评论点赞收藏110 天前
积木经济:软件构建的新范式本文探讨了软件构建的“积木经济”现象,指出现代软件开发不再依赖单一高质量主应用,而是通过模块化积木组件促进快速、多样化的创新。作者以 Ghostty 和 libghostty 为例,展示了开源积木组件如何迅速获得大量用户,并分析了这种模式对软件生态的积极影响(如降低维护负担、促进研发外包)与潜在问题(如安全性隐患)。文章还讨论了商业软件面临的挑战,以及开发者应如何应对这一趋势。全文基于作者亲身观察,拒绝 AI 辅助写作,强调真实思考与行业洞察。 评论点赞收藏131 天前
我的AI采用之旅:在软件开发中运用AI的务实方法本文作者详细记录了自己从最初对AI工具持怀疑态度,到通过代理工作流和工程化“ harness”逐步发现AI价值的心路历程。文章分阶段描述了如何避免使用聊天机器人进行编码、通过Claude Code实践理解AI代理的优劣、利用每日末的AI代理进行深度研究、外包简单任务以专注核心工作、通过工程化方法减少错误,以及保持持续运行的代理等策略。作者强调了对AI工具的审慎使用和持续优化的重要性,并分享了个人经验与实用技巧,为开发者提供了可借鉴的AI应用路径。 评论点赞收藏192 天前
别让自己‘绊倒’:Zig中的错误恢复测试本文介绍了Mitchell Hashimoto开发的Tripwire Zig库,旨在解决Zig语言中errdefer的错误处理测试难题。Tripwire允许开发者在代码中标记关键点,在测试阶段注入错误,从而验证errdefer逻辑的正确性,防止资源泄漏和内存损坏。该库在发布版本中完全优化掉,不产生任何运行时开销。作者通过实际集成到Ghostty项目中发现了多个隐藏的bug,并强调了单元测试的重要性。文章深入解释了Zig的错误处理机制,并提供了具体的使用示例和最佳实践。 评论点赞收藏207 天前
发现并修复Ghostty最大的内存泄漏本文详细记录了Ghostty终端模拟器中发现并修复的最大内存泄漏问题。该漏洞源于滚动缓冲区修剪优化中的逻辑错误,导致非标准页面未能正确释放。作者深入分析了PageList数据结构、内存池管理方式以及触发条件,最终通过禁止重用非标准页面解决了问题。文章还介绍了Ghostty团队在预防内存泄漏方面的多种措施,包括使用Zig的泄漏检测分配器、Valgrind和macOS Instruments等工具进行持续监控。 评论点赞收藏218 天前
Ghostty 现在是非营利组织Ghostty 现在由非营利组织 Hack Club 提供财政赞助,使其能够作为慈善项目运营。这种安排允许 Ghostty 保持免费和开源,同时确保资金管理和法律合规。此举旨在为项目的可持续发展铺路,避免个人依赖,并增强用户对资金使用透明度和公共利益的信任。 评论点赞收藏256 天前
字素簇和终端模拟器:为何光标移动不一致?本文深入探讨了终端模拟器中字符显示与光标移动的差异问题,尤其是多码点组合的emoji(如“🧑🌾”)在不同终端中的表现。文章指出,传统终端使用wcwidth函数处理宽字符,导致光标移动不一致,而现代终端需支持Unicode字素簇(grapheme cluster)来正确计算宽度。作者提出了“模式2027”(mode 2027)解决方案,并对比了主流终端的实现情况,强调了终端程序应查询终端能力以适配不同行为,而非依赖单一假设。内容涉及终端开发、Unicode标准及国际化文本处理的复杂性,对开发者有实用参考价值。 评论点赞收藏282 天前
Vibing a Non-Trivial Ghostty Feature: AI-Assisted Development Process本文详细记录了作者使用AI工具辅助开发Ghostty macOS自动更新通知功能的完整过程。文章从前期规划到UI原型设计,再到代码清理和bug修复,展示了多个AI协作会话的细节。作者强调了在复杂项目中如何有效结合AI与人类智慧,特别是在遇到技术难题时的应对策略。文中还讨论了AI在迭代过程中的优缺点,以及如何在保持代码质量的同时高效推进项目进展。最后,作者总结了此次开发的时间成本和费用,并对AI辅助开发的效率进行了反思。 评论点赞收藏309 天前
My approach to building large technical projects (2023)本文作者Mitchell Hashimoto分享了自己长期实践的大型技术项目管理方法,核心是“持续看到真实结果”原则。文章以个人开发的终端模拟器项目为例,详细拆解了从启动线到打包完成的五个关键阶段:1) 选择可快速出成果的小子任务而非宏大目标;2) 通过自动化测试验证早期工作;3) 制作粗糙但可用的demo而非追求完美实现;4) 优先开发自己需要的核心功能再迭代;5) 保持高频演示节奏。作者特别指出经验可能成为障碍——资深工程师常因过度追求完美而错过最佳反馈时机。全文充满个人观察和工程经验,虽非全新理论,但对想提升项目完成动力的开发者极具参考价值。 评论点赞收藏310 天前
Zig 构建速度正在变快本文详细记录了 Zig 语言编译器版本 0.15.1 在构建速度上的显著提升,包括构建脚本、完整未缓存的 Ghostty 二进制文件以及增量构建(Ghostty 可执行文件和 libghostty-vt)的时间对比。作者 Mitchell Hashimoto 通过实际测试展示了不同构建场景下的性能改进,并指出这些改进主要得益于自研 x86_64 后端和 LLVM 优化。尽管目前增量编译尚未完全实现,但构建速度已大幅提升,尤其在 libghostty-vt 库中,构建时间从 2.884 秒降至 0.975 秒,效果显著。作者对 Zig 团队在编译时间上的持续投入表示赞赏,并预测未来随着自研后端的完善和增量编译的实现,构建速度将进一步提升。 评论点赞收藏317 天前
Libghostty 即将问世:可嵌入的现代终端模拟器库Mitchell Hashimoto 宣布推出 libghostty,这是一个可嵌入的库,允许任何应用程序嵌入现代终端模拟器。该项目旨在解决终端模拟的复杂性和碎片化问题,提供零依赖、高性能且经过验证的核心功能。首个组件 libghostty-vt 将专注于解析终端序列并维护终端状态,支持广泛的 Unicode 和颜色格式,并继承 Ghostty 的 SIMD 优化和内存管理优势。Hashimoto 强调,libghostty 不仅适用于完整终端模拟器,也适用于简单的只读日志显示,目标是成为跨平台的稳定解决方案,减少重复开发工作。项目目前处于 alpha 阶段,正在设计 C API,并寻求早期用户的反馈。 评论点赞收藏328 天前
你必须感受它这篇文章探讨了工作中的情感因素。作者指出,仅仅满足功能和需求是不够的,用户体验中的情感反应至关重要。文章强调,真正的成功在于产品能否引发使用者的积极感受,这种感受无法通过简单的指标和演示来衡量。因此,开发者必须亲身体验产品,确保其能带来愉悦和满足感。 评论点赞收藏351 天前
针对技术类非营利组织的建议:如何吸引和留住捐赠者本文作者结合自身捐赠经验,为技术类非营利组织提供吸引和留住捐赠者的实用建议。文章指出技术类非营利组织在捐赠流程、财务透明度、人际沟通等方面存在不足,并提出了改进方法:明确多种捐赠方式、制作易懂的年度报告、加强面对面交流、回答捐赠者基本问题等。作者强调,非营利机构需像企业一样重视“销售”工作,通过人性化策略提升捐赠体验和忠诚度。 评论点赞收藏361 天前
我们重写了Ghostty GTK应用程序:拥抱GObject类型系统和Valgrind验证Ghostty团队完成了对GTK应用的全面重写,采用Zig语言并完全拥抱GObject类型系统,并通过Valgrind进行每一步验证。这次重写带来了更丰富、稳定且易于维护的Linux和BSD版本。文章重点探讨了从Zig与GObject类型系统的接口设计,到使用Valgrind验证GTK应用内存安全的过程。作者分享了技术细节,如配置重载的实现方式,以及通过Valgrind发现的内存问题,强调了跨C API边界的内存安全重要性。这次重写是Ghostty第五次从头编写GUI部分,每次迭代都带来了宝贵的经验。新GTK应用已成为默认选项,并将在1.2版本中发布给所有用户。 评论点赞收藏367 天前
作为代码本文作者 Mitchell Hashimoto 澄清了自己对“X as Code”术语的个人定义,即“一套原则或规则”,而非通常理解的“编程”。他解释了自己将知识从人脑中转化为可记录系统的初衷,并分享了与 Terraform 和 Tao of HashiCorp 的历史背景。文章旨在澄清个人意图,并非批评编程理念或宣称“as code”完美无缺。 评论点赞收藏530 天前
欢迎Ghostty子系统维护者Ghostty项目宣布晋升了八位子系统维护者,这是自项目创建以来的首次晋升。这些维护者来自项目的私密测试阶段,拥有大量的合并PR和社区参与记录。文章介绍了每个维护者的职责领域,如终端仿真、GTK集成、字体渲染等,并解释了子系统维护者的角色和权限,旨在提升项目的可扩展性和决策效率。维护者角色是自愿的,没有时间承诺要求,但长期不活跃可能会被移除。 评论点赞收藏555 天前