告别CleanMyDrive:一个macOS系统清理脚本
CleanMyDrive的停用迫使作者寻找替代方案,最终选择用xbar脚本创建了一个macOS系统清理工具。该脚本可以移除macOS系统中多余的._和.DS_Store文件,这些文件会干扰其他设备的文件系统解析。脚本提供了弹出、卸载和全部弹出(不清理)三种功能,并带有便捷的通知,简洁实用。
CleanMyDrive的停用迫使作者寻找替代方案,最终选择用xbar脚本创建了一个macOS系统清理工具。该脚本可以移除macOS系统中多余的._和.DS_Store文件,这些文件会干扰其他设备的文件系统解析。脚本提供了弹出、卸载和全部弹出(不清理)三种功能,并带有便捷的通知,简洁实用。
这份榜单汇集了2024年全球几乎所有软件工程大会上观看次数最多的100场演讲。从大型语言模型的现实应用到Rust和Java的高性能技巧,再到现代Web开发和可靠性工程的最佳实践,涵盖主题广泛。其中,Jodie Burchell关于大型语言模型的演讲,以及Martin Thwaites关于OpenTelemetry的演讲,观看次数均超过13万次,位列榜单前茅。这份榜单为软件工程师们提供了学习和提升的宝贵资源。
Syd是一个采用Rust语言编写,并遵循GPL-3许可证的强大Linux沙箱应用内核(支持Linux 5.19及以上版本)。它通过简化复杂的Linux沙箱机制(如Landlock LSM、命名空间、ptrace(2)和seccomp-BPF/Notify),为应用程序提供了一个稳固的安全边界。Syd无需额外权限或特权内核上下文即可运行,并通过利用现代Linux API(如seccomp-unotify(2)、openat2(2)和pidfd_getfd(2))消除了TOCTTOU漏洞。其功能包括路径沙箱、执行控制、网络沙箱以及高级功能如锁沙箱和代理沙箱等,旨在为应用程序提供强大的隔离和安全保护。
PgAssistant是一款开源工具,旨在帮助开发者理解和优化PostgreSQL数据库性能。它提供数据库行为分析、模式优化、SQL查询管理等功能,并支持与OpenAI或本地LLM集成,辅助SQL查询优化。用户可通过友好的界面操作,并利用JSON文件管理SQL查询库。此外,它还集成了PGTune,方便调整数据库参数和生成Docker Compose文件。
arXivLabs是一个框架,允许协作者直接在arXiv网站上开发和分享新的功能。参与arXivLabs的个人和组织都认同并接受了arXiv的开放、社区、卓越和用户数据隐私的价值观。arXiv致力于这些价值观,并且只与遵守这些价值观的合作伙伴合作。如果您有想法能够为arXiv社区增值,请进一步了解arXivLabs。
本文探讨了数据库查询编译的优缺点。传统数据库解释器在面对高速NVMe SSD时效率低下,编译查询能显著提升速度,尤其适用于OLAP查询。然而,编译查询存在编译时间长、难以优化等问题,导致性能不可预测。相比之下,向量化解释器更易于构建和调试,性能更稳定。文章比较了浏览器JavaScript/Wasm引擎的架构,它们通过多层编译器(解释器、基线编译器、优化编译器)实现平滑的性能折衷。作者建议借鉴浏览器方案,构建包含基线编译器的数据库,并探讨了“复制粘贴”和Wasm等多种实现方法,最终指出构建基线编译器并非难事,并对未来方向进行了展望。
Unix 系统的传奇历史中,dmr、kt 和 bwk 分别代表着三位关键人物:Dennis M. Ritchie(dmr),Unix 的共同创造者和 C 语言的创造者;Ken Thompson(kt),与 Ritchie 共同创造 Unix 的另一位传奇人物;Brian W. Kernighan(bwk),多部具有影响力的 Unix 程序和书籍(包括《C 程序设计语言》和《Unix 环境高级编程》)的合著者。这三位巨匠共同奠定了 Unix 系统的基础,深刻影响了现代计算机科学的发展。
本文探讨了如何在基于堆栈的函数式编程语言Joy中实现内涵编程。Joy语言本身是外延的,无法“分解”代码块。作者提出两种内涵操作符:“map”和“quota”,并证明它们可以互相表达。尽管行为上等效,但内涵程序可以区分单个操作符和多个命令的子程序。这为研究内涵语言中更弱的等价性概念提供了新的思路,也证明了在Joy等极简语言中引入内涵性的方法是稳健的。
Mikey 是一款结合了录音、基于 Groq API 的转录和会议记录自动生成的应用程序。它拥有一个用户友好的 PyQt 图形界面,方便用户管理录音、查看转录文本和浏览保存的会话。Mikey 利用 pyaudiowpatch 录制音频,通过 Groq API 进行转录,并使用对话模型生成简洁的会议记录。此外,它还支持自建可执行文件,方便分发和使用。
Skies-ADSB 是一款基于浏览器的实时3D航空交通显示应用,利用RTL-SDR接收器和ADS-B数据,在自定义的3D地图上显示本地航班信息和周边空域情况。该应用使用JavaScript、HTML5、CSS、Python 3和WebGL (Three.js)构建,支持Chrome、Firefox和Safari等主流浏览器。v2.0版本对1.x版本进行了重大改进,需要重新安装。用户可以通过问题跟踪器报告错误、请求功能和建议改进。该项目感谢Andre Thais CFI和Frank E. Hernandez的贡献,并使用了Natural Earth和OpenStreetMap的公开地图数据。
本文探讨了在 MySQL 中对参与外键关系的表进行在线 Schema 变更的固有难题。作者分析了现有工具(如 pt-online-schema-change 和 gh-ost)的局限性,指出在线变更父表时,需要同时变更所有子表,这带来了巨大的复杂性和风险。由于需要协调多个变更过程,且容错性极低,一旦其中一个变更失败,就可能导致数据不一致甚至服务中断。作者认为,对于大型表,在线变更包含外键约束的 Schema 几乎不可行。
本文总结了大量用于文件监控的工具,涵盖了各种编程语言、许可证和功能。从早期的inotify封装器到现代化的Rust和Python工具,例如watchexec,文章对每个工具的优缺点、依赖关系和Debian软件包支持情况进行了详细比较。作者也分享了自己使用过程中遇到的问题和经验,例如使用systemd .path units和watchman的局限性。无论是开发人员还是系统管理员,都能从中找到适合自己需求的文件监控工具。
Git浅克隆(`--depth 1`)会在首次推送时显著降低性能。这是因为浅克隆会人为地将某些提交标记为根提交,导致服务器无法利用优化机制,从而需要传输整个提交快照。而使用`--depth 2`的深度克隆则可以保留一个完整的提交历史,从而让服务器在首次推送时也能利用优化,减少数据传输量,显著提升推送速度。后续推送则不受影响。
一位刚从斯坦福毕业的Formal公司新员工,在解决客户使用Visual Studio Code远程SSH连接AWS EC2实例进行机器学习时遇到的问题过程中,意外发现并修复了AWS SSM参考库中几个并发Bug。该问题源于Formal Connector对TCP/IP端口转发支持不足,导致VS Code无法正常初始化远程开发环境。修复过程涉及深入研究SSH和SSM协议,最终通过修改AWS Session Manager插件,解决了数据竞争和序列号问题,实现了通过Formal Connector安全地进行VS Code远程SSH连接。
一位前Facebook工程师在帆船生活中,开发了一个名为TinyBase的本地优先数据存储项目。他随后创建了一个简单的静态网页localfirstweb.dev,意在整理和推广本地优先软件开发理念。该网页意外走红,吸引了众多开发者,并最终由一位哈佛商学院毕业生Yonatan建立了活跃的Discord社区,推动了本地优先软件运动的发展。这展现了看似简单的行动如何引发意想不到的连锁反应,也预示着本地优先软件开发的未来潜力。
博主Clayton Ramsey分享了他将个人博客从手动编写HTML迁移到Zola静态网站生成器的经历。起初,他认为手动编写HTML并不难,但长期下来,处理数学公式(使用MathML)、代码高亮以及维护导航栏等细节问题让他不堪重负。于是,他尝试了Zola,并利用Python脚本转换LaTeX到MathML,最终实现了自动化部署。虽然过程中也遇到了一些挑战,例如GitHub Actions的YAML配置,但他认为迁移后的效率显著提高,编写新文章的门槛也降低了。
Jujutsu 是一款新颖的版本控制系统,它吸取了 Git、Mercurial 和 Darcs 等系统的优点,并融入了许多创新特性。它将工作副本视为一个提交,简化了数据模型和算法;操作日志和撤销功能方便调试;自动 rebase 和冲突解决功能提升了工作效率;它还支持并发复制,能够安全地用于分布式文件系统。虽然目前仍处于实验阶段,但 Jujutsu 已经展现出巨大的潜力,有望成为下一代版本控制系统的领导者。
JetBrains宣布改变Kotlin多平台(KMP)工具的开发策略。他们原本计划开发一个独立的KMP IDE,但基于用户反馈和技术发展趋势,决定将精力集中在改进IntelliJ平台(IntelliJ IDEA和Android Studio)上的KMP支持,并在未来三个月内停止对Fleet IDE中KMP的支持。此举是为了更好地满足用户需求,并利用AI等新技术提升开发体验。
这篇指南详细解释了如何将苹果账户中的应用、音乐和其他已购内容从辅助账户迁移到主账户。迁移前需满足诸多条件,例如:两个账户必须不同,都启用双因素认证,地区设置一致,辅助账户余额清空,且没有未完成的租赁或预购等。迁移过程需要在iPhone或iPad的设置中进行,完成后,辅助账户将无法再用于媒体和购买。文中还列出了迁移失败的各种情况,例如账户类型不符、账户状态异常等,十分实用。
WebAssembly(WASM)凭借其“一次编写,随处运行”的特性,有望取代容器技术。文章指出,尽管容器技术曾解决了软件开发中的许多问题,但如今复杂的工具和紧密的耦合性使其变得繁琐。WASM则提供了一种更轻量、更快速的解决方案,尤其在结合无服务器架构如Cloudflare Workers后,其优势更加明显。虽然WASM目前在系统接口方面仍有不足,但其发展速度很快,未来有望成为主流。文章建议开发者学习Go或Rust等编译型语言,以适应未来的WASM时代。
本文介绍了 Jujutsu (jj) 的速查表和参考文档,jj 是一款与 git 兼容的版本控制系统。作者认为 jj 比 git 更易上手,并提供了学习资源,包括参考文档和直观的速查表,方便用户理解 jj 的仓库状态及其编辑操作。作者建议新手先阅读教程,避免因 git 的既有认知而影响学习。这些资料都简洁易懂,便于打印学习。
Ohm是一个强大的解析工具包,包含一个库和一种领域特定语言。它可以用于解析自定义文件格式,或快速构建编程语言的解析器、解释器和编译器。Ohm语言基于解析表达式语法(PEG),这是一种描述语法的形式化方法,类似于正则表达式和上下文无关文法。Ohm库提供了一个JavaScript接口,用于根据你编写的语法创建解析器、解释器等等。
作者在构建一个新的初创公司时,遇到了一个棘手的难题:如何在客户端提取文件元数据。ExifTool虽然强大,但其Perl语言特性导致难以在各种操作系统上进行静态编译和部署。作者尝试了各种方法,包括静态编译Perl,最终转向了WebAssembly。这个过程充满了挑战,包括与Perl的构建系统、Emscripten和WASI的斗争,以及对Perl源码的修改。最终,作者成功地构建了一个自包含的WebAssembly版本的Perl,并运行了ExifTool,但这个过程也暴露出WebAssembly运行时对异常处理的支持不足的问题。
Craftax是一个完全用JAX编写的强化学习环境,它重新实现并显著扩展了Crafter游戏机制,并从NetHack等Roguelike游戏中汲取灵感。Craftax兼容gymnax接口,易于与PureJaxRL和JaxUED等现有基于JAX的框架集成。它已在ICML 2024上作为重点论文被接收。Craftax提供CPU和GPU/TPU版本,并包含教程和基准测试代码。
最近arXiv上涌现出一批评估大型语言模型(LLM)代码生成能力的基准测试论文。这些论文涵盖了LLM解决真实世界GitHub问题、生成自调用代码、使用API、稳定性分析、以及针对软件开发生命周期各个阶段的评估等多个方面。研究者们开发了各种基准测试集,例如SWE-bench、HumanEval Pro、SEAL、DevEval等,并提出了相应的评估指标,旨在更全面地评估LLM的代码生成能力,推动该领域的发展。
arXivLabs是一个框架,允许合作者直接在我们网站上开发和分享新的arXiv功能。与arXivLabs合作的个人和组织都认同并接受了我们开放、社区、卓越和用户数据隐私的价值观。arXiv致力于这些价值观,并且只与遵守这些价值观的合作伙伴合作。如果您有想法可以为arXiv社区增值,请了解更多关于arXivLabs的信息。
arXivLabs是一个框架,允许合作者直接在arXiv网站上开发和分享新的功能。参与arXivLabs的个人和组织都认同并接受了arXiv的开放、社区、卓越和用户数据隐私的价值观。arXiv致力于这些价值观,并且只与遵守这些价值观的合作伙伴合作。如果您有想法能够为arXiv社区增值,请进一步了解arXivLabs。
作者先前因WebAssembly运行时缺乏对exnref的支持而导致ZeroPerl无法使用而感到沮丧。但他没有止步于抱怨,而是决定自己动手解决问题。通过使用Binaryen的Asyncify特性,作者从头实现了一个setjmp的替代方案,绕过了libsetjmp带来的兼容性问题。最终,经过移除官方库、编写汇编代码和使用wasm-opt优化后,ZeroPerl成功地在Wasmer、Wasmtime等多个WebAssembly运行时上运行。这标志着该项目取得了重大突破,实现了完全沙盒化且自包含的Perl WebAssembly模块。
YC支持的初创公司Legion Health正在招聘顶级后端工程师,构建一个AI驱动的下一代精神健康护理系统。该系统利用AI优化预约、账单和患者互动等运营流程,而非诊断。工程师将负责使用Node.js、Supabase和AWS构建高度可扩展的事件驱动型后端,处理实时数据,确保HIPAA合规性和安全性。这是一个极具挑战性和影响力的机会,参与AI在医疗保健领域的未来发展。
从1998年curl支持SSL至今,默认证书验证已成为守护网络安全的基石。然而,多年来,开发者们仍然频繁禁用证书验证,导致安全漏洞频发。本文回顾了libcurl的演进历程,探讨了禁用证书验证的风险,以及如何通过改进API、加强文档和提交Bug报告等方式来提升网络安全。尽管挑战巨大,但守护网络安全,任重道远。