arXivLabs:与社区协作者一起进行实验性项目
arXivLabs是一个框架,允许协作者直接在arXiv网站上开发和分享新的功能。参与arXivLabs的个人和组织都秉持着开放、社区、卓越和用户数据隐私的价值观。arXiv致力于这些价值观,并且只与遵守这些价值观的合作伙伴合作。如果你有想法能为arXiv社区增值,那就了解更多关于arXivLabs的信息吧!
arXivLabs是一个框架,允许协作者直接在arXiv网站上开发和分享新的功能。参与arXivLabs的个人和组织都秉持着开放、社区、卓越和用户数据隐私的价值观。arXiv致力于这些价值观,并且只与遵守这些价值观的合作伙伴合作。如果你有想法能为arXiv社区增值,那就了解更多关于arXivLabs的信息吧!
OBNC是一款用于编译Niklaus Wirth的Oberon编程语言的编译器,实现了2016年最终版本的语言规范。它将Oberon源代码转换为C语言,然后使用宿主机操作系统的C编译器和链接器进行编译和链接。OBNC编译器遵循GNU通用公共许可证,而库则遵循Mozilla公共许可证,方便项目发布。该软件包包含编译器、构建工具、文档生成器和一个小型基础库,还包含一个扩展库ext,增加了访问命令行参数、环境变量等功能。OBNC支持POSIX兼容操作系统,需要Boehm-Demers-Weiser垃圾收集器。Windows用户可下载预编译版本。
本文介绍了作者在任天堂64上实现实时光照和法线贴图的惊人技术。通过巧妙地利用调色板纹理和CPU端着色,作者绕过了N64硬件的限制,实现了令人印象深刻的视觉效果。该技术涉及将漫反射和法线信息压缩到共享调色板中,并在运行时通过CPU更新调色板以模拟光照效果。虽然该方法存在一些局限性,例如不支持点光源和阴影,但其创新性令人瞩目,为N64平台上的图形渲染开辟了新的可能性。
Meta发布了Pyrefly的alpha版本,这是一个用Rust编写的开源Python类型检查器和IDE扩展。Pyrefly旨在提高Python代码的类型一致性,并在运行前尽早发现错误。它支持IDE集成和命令行使用,并注重性能和类型推断,即使对于未加类型注解的代码也能有效工作。Pyrefly是Meta在Pyre基础上改进而来,目标是打造一个更强大、更易扩展的类型检查器,并与Python社区共同改进Python类型系统。
我曾痴迷于NixOS,它承诺通过一次性代码配置实现完美的系统可复现性。然而,一年后,我放弃了它。NixOS的学习曲线陡峭,文档不足,错误信息晦涩,配置方式繁多。虽然它能创建稳定的系统,但我不得不花费大量时间解决各种问题,例如Thunderbolt坞站的兼容性问题以及跨技术栈开发环境的搭建。最终,我转向基于Fedora Silverblue的Bazzite和Bluefin,它们通过Flatpak、Homebrew和Distrobox提供更便捷的应用管理和开发环境,保留了系统不变性的优点,同时显著提升了易用性。NixOS适合追求极致可复现性的服务器环境,但对于普通桌面用户而言,其高昂的学习成本和复杂性并不值得。
本文介绍了提升代码效率的两个实用技巧:将if条件上移和for循环下移。将if条件上移到调用函数处,可以减少代码分支,简化控制流程,并提升代码可读性。将for循环下移到处理批量数据的地方,可以利用批量处理的优势,提升性能,并可能开启向量化操作。这两个技巧互相补充,可以有效提高代码效率,尤其在处理大量数据时效果显著。
一个名为“开放问题项目”的网站汇集了超过75个计算几何及其相关领域的未解难题。该项目始于2001年,最初发表了30个问题,现已涵盖多个类别,例如凸包、图论、Voronoi图等。网站允许用户更新现有问题,特别是已解决(部分或全部)的问题,鼓励研究者参与解决这些挑战性的问题,推动计算几何学领域的发展。
本文记录了作者在Starina操作系统中构建一个基于RISC-V H扩展的轻量级虚拟机的历程。作者首先利用QEMU模拟RISC-V H扩展进行测试,逐步实现了进入访客模式、处理系统调用、运行简单的Hello World程序以及最终启动Linux内核。过程中,作者克服了页面映射、设备树、定时器支持以及MMIO等挑战,并详细介绍了解决这些问题的步骤和方法,最终成功在Starina虚拟机上运行Linux。
Publisher是一个开源的语义模型服务器,它使用Malloy数据语言,为你的数据构建丰富的语义模型,定义数据背后的含义、关系和上下文。它通过服务器接口公开这些模型,允许应用程序、AI代理和用户以一致可靠的方式查询数据。Publisher解决了现代数据和AI系统中日益增长的一个问题:如果数据背后的含义不明确,你将无法信任答案。它利用Malloy查询,在幕后将其编译成SQL,从而获得可靠的答案,无需在每个工具中重新定义数据的含义。Publisher由服务器、SDK和应用程序三个主要组件组成,支持多种数据库和AI应用。
Popcorn是一个新颖的库,允许在Web浏览器中执行Elixir代码。它利用AtomVM运行时在客户端执行编译后的Elixir代码,并提供API来处理Elixir和JavaScript之间的交互、序列化和通信,同时确保浏览器响应速度。该库目前仍在开发中,API尚不稳定,但已经提供了三个可运行的示例,包括一个简单的Elixir REPL、一个交互式教程和一个生命游戏示例。通过在mix.exs文件中添加依赖项并设置JS和Elixir WASM入口点,开发者可以开始使用Popcorn。Popcorn利用消息传递机制连接JS和Elixir代码,并允许从Elixir直接执行JS代码。Elixir端使用Popcorn.Wasm模块处理与JS的通信,而JS端则使用Popcorn类。
本文作者就MCP协议(一种用于LLM工具调用的协议)的批评文章进行了回应。作者认为,批评文章过分关注传输方式(例如WebSockets),而忽略了MCP协议的核心价值——通过OAuth 2.0实现身份验证,并允许LLM与真实世界交互。作者承认MCP存在一些问题,例如工具安全性和多租户服务器的兼容性,但也强调了MCP协议的快速发展和广泛采用,以及社区在解决这些问题上的努力。作者最后呼吁开发者积极参与,确保MCP协议安全可靠地发展。
在大型语言模型热潮过后,一股创造新型操作系统的浪潮悄然兴起。本文列举了一系列新兴操作系统,例如基于UXN/Varvara堆栈的个人计算系统、面向Web研究的Nette.io操作系统、以及使用Lisp语言构建的Interim和ChrysaLisp操作系统等。这些项目展现了对操作系统设计理念的创新探索,例如DesktopNeo对桌面界面的重新思考,以及MercuryOS基于意图的操作系统设计。这些尝试,如同对计算未来的一次次大胆探索,重燃了人们对操作系统创新和发展的热情。
Fahmatrix 是一个轻量级的现代 Java 库,用于处理表格数据,其灵感来自 Python 的 Pandas,旨在简化 JVM 上的数据理解。它提供直观的 API,支持 CSV 读取和预览、行过滤和列选择,以及聚合、分组和排序等功能(即将推出)。Fahmatrix 没有外部依赖项,可以直接从 GitHub 下载 JAR 文件使用,或通过 Maven/Gradle 使用(未来版本添加)。它支持 CSV 文件加载、数据打印、head()/tail() 函数、多种聚合函数、行过滤和列选择、分组和透视表、数据导出以及类型推断和转换等功能。Fahmatrix 为 Java 开发者提供了一个高效处理表格数据的工具,无需离开 JVM。
一位内核开发者花费一年时间体验Home Assistant,这款开源的居家自动化系统。文章探讨了Home Assistant 的项目健康度,包括其商业模式与开源社区的平衡,以及活跃的开发者社区和向Open Home Foundation的转移。安装方面,虽然官方推荐使用专用操作系统,但在普通Linux系统上的安装也相对简单,但需要一定的动手能力。Home Assistant 通过集成来连接各种家用设备,其质量参差不齐,但整体功能强大。安全性方面,文章指出虽然存在潜在风险,但项目本身的安全策略和审计机制在一定程度上降低了风险。总而言之,Home Assistant 为用户提供了对家庭网络和设备的掌控,是云服务之外的一个优秀替代方案。
rapidhash 是一款极速、高质量且跨平台的哈希函数,是 wyhash 的官方继任者,在速度、质量和兼容性方面均有所提升。它在 SMHasher 和 SMHasher3 的所有测试中均通过,碰撞概率极低,接近理想值。性能测试显示,其速度在各种 CPU 架构上均表现出色,例如在 Apple M4 芯片上超过 70GB/s。此外,它支持多种编译器和架构,无需依赖特定指令集,兼容性极佳。
xtool 是一款跨平台工具,可在 Linux、Windows 和 macOS 上使用 SwiftPM 构建和部署 iOS 应用,无需 Xcode。它提供了 Xcode 的核心功能,例如构建 SwiftPM 包、签名和安装 iOS 应用,以及以编程方式与 Apple 开发者服务交互。xtool 还包含一个名为 XKit 的库,可方便开发者在自己的应用中与 Apple 开发者服务和 iOS 设备进行交互。
微软悄然发布了 Windows 系统的全新命令面板应用——Command Palette,它作为 PowerToys Run 的升级版,提供对命令、应用和开发工具的快速访问。Command Palette 不仅能够搜索应用、文件夹和文件,执行计算和系统命令,还能快速打开网站、进行网络搜索,甚至切换窗口。更重要的是,它支持扩展,允许用户自定义添加更多命令和功能,使其成为开发者和高级用户的强大工具。
一位内核开发者分享了使用Home Assistant开源系统管理其智能家居的经验。文章讲述了如何利用Home Assistant解决实际问题,例如:替代SunPower破产后失效的太阳能面板监控系统,自行收集和分析数据;通过“Helper”功能创建虚拟传感器,计算家庭能耗;集成Mitsubishi热泵,实现本地控制,摆脱对云服务的依赖;使用Refoss电力监控器,精准追踪家用电器能耗,及时发现问题。Home Assistant赋予用户对智能家居的完全控制权,但同时也需要一定的技术门槛。
Rustls,一个注重性能的内存安全TLS实现,近期发布了重大性能改进。通过优化会话恢复机制,特别是替换了互斥锁以减少并发连接握手中的竞争,以及减少默认发送的无状态恢复票据数量,Rustls 0.23.17 版本在多核服务器上的性能得到了显著提升,几乎实现了线性扩展,且握手延迟比OpenSSL低约2倍。这使得Rustls成为一个更具竞争力的TLS解决方案,为互联网带来更安全、高效的连接体验。
作者挑战了构建代码编辑代理的难度,并使用Ruby和RubyLLM gem在短短94行代码内实现了这一目标。该代理通过与大型语言模型(LLM)交互,并利用三个工具(读取文件、列出文件和编辑文件)来完成代码编辑任务。文章详细介绍了每个工具的实现过程,并通过一个构建ASCII扫雷游戏的例子展示了代理的能力。最终,作者还添加了一个执行Shell命令的工具,进一步增强了代理的功能,并成功地构建了一个可以自我测试的代码编辑代理。
Solidis 是一个现代化的 RESP 客户端,遵循 SOLID 原则,零依赖,并注重企业级性能。它支持 RESP2 和 RESP3 协议,并针对现代 JavaScript/TypeScript 应用程序进行了优化。Solidis 提供了两种客户端实现:基础客户端和特性客户端,前者体积小,后者预加载所有 RESP 命令。它还支持事务、管道、发布/订阅、自动重连等高级功能,并具有强大的类型安全性和可扩展性。
自2019年以来,Google Closure Library(GCL)的稳定性持续下降,最终Google停止了对它的维护。为了维护ClojureScript的生态系统,一个团队接管了GCL的维护,回退了一些破坏性改动,并使其与最新的Google Closure Compiler版本兼容。这使得许多旧的ClojureScript库恢复了运行,并为ClojureScript在各种JavaScript环境(不仅仅是浏览器)中的应用提供了坚实的基础,使其成为一个无需依赖大型框架即可完成各种任务(例如DOM操作、国际化、动画等)的强大工具。
KVSplit 是一种针对苹果硅芯片优化的工具,通过对大型语言模型 (LLM) 的注意力机制中的键值缓存 (KV cache) 应用不同的量化精度(键和值分别量化),从而减少内存使用并提高推理速度。研究表明,键比值对量化更敏感,K8V4 配置(8 位键,4 位值)在内存节省 (59%) 和精度损失 (0.86%) 之间取得了最佳平衡,并能提升推理速度。KVSplit 提供易于使用的安装程序和基准测试套件,方便用户评估和应用不同的量化配置,从而在苹果设备上运行更长上下文窗口和更大型的 LLM。
Hatchet团队通过一系列优化,将PostgreSQL的插入速度提升了31倍,从每秒2000次写入提升到92000次。他们发现,连接池、批量插入和COPY命令是关键。连接池数量并非越多越好,需要找到最佳平衡点。批量插入显著提高吞吐量,但也会增加延迟,需要调整批量大小和刷新间隔以优化性能。COPY命令则在不需要返回数据时效率更高。文章还提到了其他高级优化技巧,例如多表事务插入和UNNEST的使用,将在后续文章中详细介绍。
Workflow Use是一个革命性的项目,旨在通过录制浏览器交互来创建确定性、可自我修复的工作流。用户只需向录制器展示工作流程,系统便会自动生成可重复使用的自动化脚本。该项目目前仍处于早期开发阶段,但其目标是让计算机能够一次性学习任务,并无限次地执行,无需人工干预。未来规划包括改进LLM回退机制、实现自我修复功能以及与其他工具集成。
Foundry公司正在构建用于浏览器代理的核心基础设施,而不是构建GPT包装器。他们认为,未来所有没有API的SaaS应用和企业工具都将由浏览器代理自动化,而目前的浏览器代理技术还处于早期阶段。Foundry的目标是构建超现实的确定性Web模拟、全面的标注框架、可靠的基准测试以及强大的强化学习训练环境,以提高浏览器代理的可靠性和效率。他们正在寻找一位资深的软件工程师,能够从零开始构建核心机器学习系统和强化学习基础设施。
arXivLabs是一个允许协作者直接在arXiv网站上开发和分享新功能的框架。参与其中的个人和组织都认同arXiv的开放、社区、卓越和用户数据隐私的价值观。arXiv致力于这些价值观,只与坚持这些价值观的合作伙伴合作。如果你有想法能为arXiv社区增值,那就了解更多关于arXivLabs的信息吧!
LPython 是一款能够将带类型注解的 Python 代码编译成优化后的机器码的编译器,支持 LLVM、C、C++、WASM、Julia 和 x86 等后端。它具有快速编译和运行速度的特性,在基准测试中表现出色。LPython 还支持即时 (JIT) 编译,并能与 CPython 无缝互操作。目前已发布 alpha 版本,用户可能遇到 bug。
rv 是一种革命性的 R 包管理工具,它以可重复、快速且声明式的方式管理和安装 R 包。通过配置文件(rproject.toml)指定 R 版本、仓库和依赖项,rv 的 `sync` 命令即可同步库、配置文件和锁文件,而 `plan` 命令则提供预览。它支持自定义包和仓库设置,例如,安装特定包及其建议的包。rv 使用 Rust 编写,并提供详细的安装和使用文档。
本文作者通过分析历代Rust稳定版本的编译器错误信息,展现了Rust编译器错误信息十年来的进化历程。从Rust 1.0到最新版本,错误信息在清晰度、可读性和用户体验方面都有了显著提升,这离不开数百位贡献者持续的设计、实现、审查和测试工作。文章特别指出1.26.0版本引入的彩色错误信息和`rustc --explain`提示功能,以及错误信息在不同版本间细微变化的趣闻。作者的分析生动地展现了Rust社区对细节的极致追求,以及持续改进的决心。