分类: 开发

告别CleanMyDrive:一个macOS系统清理脚本

2025-02-12
告别CleanMyDrive:一个macOS系统清理脚本

CleanMyDrive的停用迫使作者寻找替代方案,最终选择用xbar脚本创建了一个macOS系统清理工具。该脚本可以移除macOS系统中多余的._和.DS_Store文件,这些文件会干扰其他设备的文件系统解析。脚本提供了弹出、卸载和全部弹出(不清理)三种功能,并带有便捷的通知,简洁实用。

开发 系统清理

2024年度最热门软件工程演讲Top 100

2025-02-12
2024年度最热门软件工程演讲Top 100

这份榜单汇集了2024年全球几乎所有软件工程大会上观看次数最多的100场演讲。从大型语言模型的现实应用到Rust和Java的高性能技巧,再到现代Web开发和可靠性工程的最佳实践,涵盖主题广泛。其中,Jodie Burchell关于大型语言模型的演讲,以及Martin Thwaites关于OpenTelemetry的演讲,观看次数均超过13万次,位列榜单前茅。这份榜单为软件工程师们提供了学习和提升的宝贵资源。

开发 GOTO大会

Syd:一个基于Rust的强大Linux沙箱应用内核

2025-02-12
Syd:一个基于Rust的强大Linux沙箱应用内核

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漏洞。其功能包括路径沙箱、执行控制、网络沙箱以及高级功能如锁沙箱和代理沙箱等,旨在为应用程序提供强大的隔离和安全保护。

开发 Linux沙箱

PgAssistant:你的PostgreSQL数据库性能助手

2025-02-12
PgAssistant:你的PostgreSQL数据库性能助手

PgAssistant是一款开源工具,旨在帮助开发者理解和优化PostgreSQL数据库性能。它提供数据库行为分析、模式优化、SQL查询管理等功能,并支持与OpenAI或本地LLM集成,辅助SQL查询优化。用户可通过友好的界面操作,并利用JSON文件管理SQL查询库。此外,它还集成了PGTune,方便调整数据库参数和生成Docker Compose文件。

开发

arXivLabs:与社区协作者合作的实验项目

2025-02-12
arXivLabs:与社区协作者合作的实验项目

arXivLabs是一个框架,允许协作者直接在arXiv网站上开发和分享新的功能。参与arXivLabs的个人和组织都认同并接受了arXiv的开放、社区、卓越和用户数据隐私的价值观。arXiv致力于这些价值观,并且只与遵守这些价值观的合作伙伴合作。如果您有想法能够为arXiv社区增值,请进一步了解arXivLabs。

开发

数据库查询编译:利弊权衡与未来方向

2025-02-12

本文探讨了数据库查询编译的优缺点。传统数据库解释器在面对高速NVMe SSD时效率低下,编译查询能显著提升速度,尤其适用于OLAP查询。然而,编译查询存在编译时间长、难以优化等问题,导致性能不可预测。相比之下,向量化解释器更易于构建和调试,性能更稳定。文章比较了浏览器JavaScript/Wasm引擎的架构,它们通过多层编译器(解释器、基线编译器、优化编译器)实现平滑的性能折衷。作者建议借鉴浏览器方案,构建包含基线编译器的数据库,并探讨了“复制粘贴”和Wasm等多种实现方法,最终指出构建基线编译器并非难事,并对未来方向进行了展望。

开发

Unix 三巨头:dmr、kt 和 bwk

2025-02-12

Unix 系统的传奇历史中,dmr、kt 和 bwk 分别代表着三位关键人物:Dennis M. Ritchie(dmr),Unix 的共同创造者和 C 语言的创造者;Ken Thompson(kt),与 Ritchie 共同创造 Unix 的另一位传奇人物;Brian W. Kernighan(bwk),多部具有影响力的 Unix 程序和书籍(包括《C 程序设计语言》和《Unix 环境高级编程》)的合著者。这三位巨匠共同奠定了 Unix 系统的基础,深刻影响了现代计算机科学的发展。

开发 编程史

Joy语言的内涵编程:用一个操作符实现内省

2025-02-12

本文探讨了如何在基于堆栈的函数式编程语言Joy中实现内涵编程。Joy语言本身是外延的,无法“分解”代码块。作者提出两种内涵操作符:“map”和“quota”,并证明它们可以互相表达。尽管行为上等效,但内涵程序可以区分单个操作符和多个命令的子程序。这为研究内涵语言中更弱的等价性概念提供了新的思路,也证明了在Joy等极简语言中引入内涵性的方法是稳健的。

Mikey:一款基于Groq API的录音转录和会议记录生成工具

2025-02-12
Mikey:一款基于Groq API的录音转录和会议记录生成工具

Mikey 是一款结合了录音、基于 Groq API 的转录和会议记录自动生成的应用程序。它拥有一个用户友好的 PyQt 图形界面,方便用户管理录音、查看转录文本和浏览保存的会话。Mikey 利用 pyaudiowpatch 录制音频,通过 Groq API 进行转录,并使用对话模型生成简洁的会议记录。此外,它还支持自建可执行文件,方便分发和使用。

浏览器端实时3D航空交通显示应用Skies-ADSB发布v2.0

2025-02-12
浏览器端实时3D航空交通显示应用Skies-ADSB发布v2.0

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 变更与外键约束的困境

2025-02-12
MySQL 在线 Schema 变更与外键约束的困境

本文探讨了在 MySQL 中对参与外键关系的表进行在线 Schema 变更的固有难题。作者分析了现有工具(如 pt-online-schema-change 和 gh-ost)的局限性,指出在线变更父表时,需要同时变更所有子表,这带来了巨大的复杂性和风险。由于需要协调多个变更过程,且容错性极低,一旦其中一个变更失败,就可能导致数据不一致甚至服务中断。作者认为,对于大型表,在线变更包含外键约束的 Schema 几乎不可行。

文件监控工具终极指南:从老牌到新秀

2025-02-12

本文总结了大量用于文件监控的工具,涵盖了各种编程语言、许可证和功能。从早期的inotify封装器到现代化的Rust和Python工具,例如watchexec,文章对每个工具的优缺点、依赖关系和Debian软件包支持情况进行了详细比较。作者也分享了自己使用过程中遇到的问题和经验,例如使用systemd .path units和watchman的局限性。无论是开发人员还是系统管理员,都能从中找到适合自己需求的文件监控工具。

开发 文件监控

Git浅克隆的性能陷阱与深度克隆的优化

2025-02-12
Git浅克隆的性能陷阱与深度克隆的优化

Git浅克隆(`--depth 1`)会在首次推送时显著降低性能。这是因为浅克隆会人为地将某些提交标记为根提交,导致服务器无法利用优化机制,从而需要传输整个提交快照。而使用`--depth 2`的深度克隆则可以保留一个完整的提交历史,从而让服务器在首次推送时也能利用优化,减少数据传输量,显著提升推送速度。后续推送则不受影响。

开发 浅克隆

修复AWS SSM插件中的并发Bug,使VS Code远程SSH连接成为可能

2025-02-12
修复AWS SSM插件中的并发Bug,使VS Code远程SSH连接成为可能

一位刚从斯坦福毕业的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连接。

一个静态网页意外催生了一个社区:Local-First运动的崛起

2025-02-12
一个静态网页意外催生了一个社区:Local-First运动的崛起

一位前Facebook工程师在帆船生活中,开发了一个名为TinyBase的本地优先数据存储项目。他随后创建了一个简单的静态网页localfirstweb.dev,意在整理和推广本地优先软件开发理念。该网页意外走红,吸引了众多开发者,并最终由一位哈佛商学院毕业生Yonatan建立了活跃的Discord社区,推动了本地优先软件运动的发展。这展现了看似简单的行动如何引发意想不到的连锁反应,也预示着本地优先软件开发的未来潜力。

开发

告别手动编写HTML:我的博客从HTML到Zola的迁移

2025-02-12

博主Clayton Ramsey分享了他将个人博客从手动编写HTML迁移到Zola静态网站生成器的经历。起初,他认为手动编写HTML并不难,但长期下来,处理数学公式(使用MathML)、代码高亮以及维护导航栏等细节问题让他不堪重负。于是,他尝试了Zola,并利用Python脚本转换LaTeX到MathML,最终实现了自动化部署。虽然过程中也遇到了一些挑战,例如GitHub Actions的YAML配置,但他认为迁移后的效率显著提高,编写新文章的门槛也降低了。

Jujutsu:一款颠覆性的版本控制系统

2025-02-12
Jujutsu:一款颠覆性的版本控制系统

Jujutsu 是一款新颖的版本控制系统,它吸取了 Git、Mercurial 和 Darcs 等系统的优点,并融入了许多创新特性。它将工作副本视为一个提交,简化了数据模型和算法;操作日志和撤销功能方便调试;自动 rebase 和冲突解决功能提升了工作效率;它还支持并发复制,能够安全地用于分布式文件系统。虽然目前仍处于实验阶段,但 Jujutsu 已经展现出巨大的潜力,有望成为下一代版本控制系统的领导者。

开发

JetBrains调整Kotlin多平台工具策略,放弃独立IDE

2025-02-12
JetBrains调整Kotlin多平台工具策略,放弃独立IDE

JetBrains宣布改变Kotlin多平台(KMP)工具的开发策略。他们原本计划开发一个独立的KMP IDE,但基于用户反馈和技术发展趋势,决定将精力集中在改进IntelliJ平台(IntelliJ IDEA和Android Studio)上的KMP支持,并在未来三个月内停止对Fleet IDE中KMP的支持。此举是为了更好地满足用户需求,并利用AI等新技术提升开发体验。

苹果账户购买内容迁移指南

2025-02-12

这篇指南详细解释了如何将苹果账户中的应用、音乐和其他已购内容从辅助账户迁移到主账户。迁移前需满足诸多条件,例如:两个账户必须不同,都启用双因素认证,地区设置一致,辅助账户余额清空,且没有未完成的租赁或预购等。迁移过程需要在iPhone或iPad的设置中进行,完成后,辅助账户将无法再用于媒体和购买。文中还列出了迁移失败的各种情况,例如账户类型不符、账户状态异常等,十分实用。

WebAssembly:容器的终结者?

2025-02-12
WebAssembly:容器的终结者?

WebAssembly(WASM)凭借其“一次编写,随处运行”的特性,有望取代容器技术。文章指出,尽管容器技术曾解决了软件开发中的许多问题,但如今复杂的工具和紧密的耦合性使其变得繁琐。WASM则提供了一种更轻量、更快速的解决方案,尤其在结合无服务器架构如Cloudflare Workers后,其优势更加明显。虽然WASM目前在系统接口方面仍有不足,但其发展速度很快,未来有望成为主流。文章建议开发者学习Go或Rust等编译型语言,以适应未来的WASM时代。

开发

Jujutsu(jj)速查表:Git 的颠覆性替代品?

2025-02-12

本文介绍了 Jujutsu (jj) 的速查表和参考文档,jj 是一款与 git 兼容的版本控制系统。作者认为 jj 比 git 更易上手,并提供了学习资源,包括参考文档和直观的速查表,方便用户理解 jj 的仓库状态及其编辑操作。作者建议新手先阅读教程,避免因 git 的既有认知而影响学习。这些资料都简洁易懂,便于打印学习。

开发

Ohm: 一款基于PEG的解析工具包

2025-02-11

Ohm是一个强大的解析工具包,包含一个库和一种领域特定语言。它可以用于解析自定义文件格式,或快速构建编程语言的解析器、解释器和编译器。Ohm语言基于解析表达式语法(PEG),这是一种描述语法的形式化方法,类似于正则表达式和上下文无关文法。Ohm库提供了一个JavaScript接口,用于根据你编写的语法创建解析器、解释器等等。

开发

将Perl编译到WebAssembly:一个充满挑战的旅程

2025-02-11
将Perl编译到WebAssembly:一个充满挑战的旅程

作者在构建一个新的初创公司时,遇到了一个棘手的难题:如何在客户端提取文件元数据。ExifTool虽然强大,但其Perl语言特性导致难以在各种操作系统上进行静态编译和部署。作者尝试了各种方法,包括静态编译Perl,最终转向了WebAssembly。这个过程充满了挑战,包括与Perl的构建系统、Emscripten和WASI的斗争,以及对Perl源码的修改。最终,作者成功地构建了一个自包含的WebAssembly版本的Perl,并运行了ExifTool,但这个过程也暴露出WebAssembly运行时对异常处理的支持不足的问题。

开发 ExifTool

Craftax:基于JAX的超高速开放式强化学习基准

2025-02-11
Craftax:基于JAX的超高速开放式强化学习基准

Craftax是一个完全用JAX编写的强化学习环境,它重新实现并显著扩展了Crafter游戏机制,并从NetHack等Roguelike游戏中汲取灵感。Craftax兼容gymnax接口,易于与PureJaxRL和JaxUED等现有基于JAX的框架集成。它已在ICML 2024上作为重点论文被接收。Craftax提供CPU和GPU/TPU版本,并包含教程和基准测试代码。

开发 游戏环境

大型语言模型代码生成能力评估基准测试论文大爆发

2025-02-11
大型语言模型代码生成能力评估基准测试论文大爆发

最近arXiv上涌现出一批评估大型语言模型(LLM)代码生成能力的基准测试论文。这些论文涵盖了LLM解决真实世界GitHub问题、生成自调用代码、使用API、稳定性分析、以及针对软件开发生命周期各个阶段的评估等多个方面。研究者们开发了各种基准测试集,例如SWE-bench、HumanEval Pro、SEAL、DevEval等,并提出了相应的评估指标,旨在更全面地评估LLM的代码生成能力,推动该领域的发展。

开发

arXivLabs:与社区协作者合作的实验项目

2025-02-11
arXivLabs:与社区协作者合作的实验项目

arXivLabs是一个框架,允许合作者直接在我们网站上开发和分享新的arXiv功能。与arXivLabs合作的个人和组织都认同并接受了我们开放、社区、卓越和用户数据隐私的价值观。arXiv致力于这些价值观,并且只与遵守这些价值观的合作伙伴合作。如果您有想法可以为arXiv社区增值,请了解更多关于arXivLabs的信息。

开发

arXivLabs:与社区协作者共同开发实验项目

2025-02-11
arXivLabs:与社区协作者共同开发实验项目

arXivLabs是一个框架,允许合作者直接在arXiv网站上开发和分享新的功能。参与arXivLabs的个人和组织都认同并接受了arXiv的开放、社区、卓越和用户数据隐私的价值观。arXiv致力于这些价值观,并且只与遵守这些价值观的合作伙伴合作。如果您有想法能够为arXiv社区增值,请进一步了解arXivLabs。

开发

突破WebAssembly运行时限制:ZeroPerl的异步化实现

2025-02-11
突破WebAssembly运行时限制:ZeroPerl的异步化实现

作者先前因WebAssembly运行时缺乏对exnref的支持而导致ZeroPerl无法使用而感到沮丧。但他没有止步于抱怨,而是决定自己动手解决问题。通过使用Binaryen的Asyncify特性,作者从头实现了一个setjmp的替代方案,绕过了libsetjmp带来的兼容性问题。最终,经过移除官方库、编写汇编代码和使用wasm-opt优化后,ZeroPerl成功地在Wasmer、Wasmtime等多个WebAssembly运行时上运行。这标志着该项目取得了重大突破,实现了完全沙盒化且自包含的Perl WebAssembly模块。

AI赋能精神健康护理:Legion Health招募顶级工程师

2025-02-11
AI赋能精神健康护理:Legion Health招募顶级工程师

YC支持的初创公司Legion Health正在招聘顶级后端工程师,构建一个AI驱动的下一代精神健康护理系统。该系统利用AI优化预约、账单和患者互动等运营流程,而非诊断。工程师将负责使用Node.js、Supabase和AWS构建高度可扩展的事件驱动型后端,处理实时数据,确保HIPAA合规性和安全性。这是一个极具挑战性和影响力的机会,参与AI在医疗保健领域的未来发展。

开发 AI医疗

二十余年证书验证之战:libcurl的攻防与未来

2025-02-11
二十余年证书验证之战:libcurl的攻防与未来

从1998年curl支持SSL至今,默认证书验证已成为守护网络安全的基石。然而,多年来,开发者们仍然频繁禁用证书验证,导致安全漏洞频发。本文回顾了libcurl的演进历程,探讨了禁用证书验证的风险,以及如何通过改进API、加强文档和提交Bug报告等方式来提升网络安全。尽管挑战巨大,但守护网络安全,任重道远。

开发 证书验证
1 2 162 163 164 166 168 169 170 213 214