分类: 开发

Rust 正则表达式引擎新增无捕获后向查找功能

2025-07-15
Rust 正则表达式引擎新增无捕获后向查找功能

Rust官方正则表达式引擎添加了对无捕获后向查找的支持,这是一种强大的正则表达式功能,允许在不捕获匹配的情况下对文本进行断言。该功能的实现涉及到对正则表达式自动机状态机和编译器的修改,并克服了性能挑战,如避免不必要的扫描到文本末尾以及在匹配所有模式搜索中的二次时间复杂度。最终的基准测试显示,该实现的性能良好,并且在大多数情况下与Python的re库相比具有竞争力。

开发 后向查找

AI 翻译工具:轻松跨越语言障碍

2025-07-15
AI 翻译工具:轻松跨越语言障碍

厌倦了因为语言障碍而无法与外国朋友或伴侣顺畅沟通?这款AI驱动的翻译工具能够帮你轻松解决这个问题!只需输入你想表达的内容,并用大括号{}标注你不确定的词汇,AI就能提供精准的修正和解释,并配以语音朗读,帮助你掌握正确的发音和节奏。所有修正记录都会被保存,方便你回顾学习,持续提升语言能力。无需注册,即可免费使用,让你随时随地都能用目标语言进行自然流畅的交流。

开发

Crimson:颠覆法律行业的AI平台招募全栈工程师

2025-07-15
Crimson:颠覆法律行业的AI平台招募全栈工程师

Crimson 是一家专注于高风险诉讼的AI平台公司,正与英美顶级律师事务所合作,简化复杂纠纷的处理流程。他们开发的平台可以起草诉状和提交文件,分析判决和命令,几秒钟内总结笔录并定位关键证据。目前,Crimson 正在寻找一位优秀的全栈工程师加入他们的团队,参与平台的开发和维护,有机会参与到改变法律行业未来的工作中。

开发

恶意开源软件包攻击:50万美金的加密货币被盗

2025-07-15
恶意开源软件包攻击:50万美金的加密货币被盗

一名俄罗斯区块链开发者遭遇了50万美元加密货币被盗的网络攻击。攻击源于一个伪造的Solidity语言扩展程序,该程序在Open VSX注册表中排名靠前,下载量达5.4万次。该恶意扩展程序下载并执行恶意代码,最终安装ScreenConnect远程管理软件,允许攻击者窃取数据。攻击者还发布了另一个恶意软件包“solidity”,模仿合法扩展程序的名字,下载量高达200万次。此事件突显了恶意开源软件包日益增长的威胁,以及搜索结果排名算法可能被利用的风险。

开发

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

2025-07-15
arXivLabs:与社区协作者的实验性项目

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

开发

PostgreSQL复制槽位创建中的一个棘手Bug及修复

2025-07-15
PostgreSQL复制槽位创建中的一个棘手Bug及修复

ClickPipes团队在使用PostgreSQL的逻辑复制槽位创建时遇到一个奇怪的bug:一个本来只需几秒钟的查询却耗时数小时,且无法终止。经过调查,发现这是PostgreSQL自身的一个bug,该bug在读副本上创建逻辑复制槽位时,由于等待主库事务完成而陷入长时间的休眠循环,导致无法中断。团队提交了一个补丁到PostgreSQL社区,该补丁添加了中断检查,有效解决了这个问题。此案例说明即使是成熟的数据库系统,也可能存在一些意想不到的边缘情况,开源社区的协作对于解决这些问题至关重要。

开发 逻辑复制

分布式缓存基准测试:Memcache, Redis, Valkey, Dragonfly 和 Garnet 的性能对比

2025-07-15
分布式缓存基准测试:Memcache, Redis, Valkey, Dragonfly 和 Garnet 的性能对比

这项研究对Memcache、Redis、Valkey、Dragonfly和Garnet五种分布式缓存进行了全面的性能基准测试,测试指标包括吞吐量、延迟和CPU周期。测试环境为AWS c8g.8xlarge实例,使用memtier_benchmark工具,并考虑了不同的管道数量(1, 10, 25, 50)。结果显示,不同缓存的性能在不同指标上存在差异,这项测试将有助于开发者选择最适合其应用场景的缓存方案。

Bedrock:一款可移植的8位永恒计算机系统

2025-07-15

Bedrock是一个紧凑且可移植的8位计算机系统,旨在永恒运行。它并非真实的物理设备,而是一个规范,定义了任何计算设备的接口,允许程序在任何设备上运行,无需考虑底层硬件的特殊性。它仅有32条指令和12个设备,易于学习和使用。目前已支持Windows、Linux、网页和任天堂DS等平台。其演示程序包括像素画程序、贪吃蛇游戏、微波炉风格时钟等,展现了其强大的能力。Bedrock源于Uxn虚拟机和Varvara计算栈,但进行了大幅简化和改进,目标是提升极端资源受限系统上的性能。

开发 8位计算机

高效线程安全的std::future到asio::awaitable转换

2025-07-15

本文介绍了一种高效、线程安全的将`std::future`转换为`asio::awaitable`的方法,特别适用于现代C++异步编程中使用Boost.Asio的情况。通过`asio::async_initiate`和线程池,该方法巧妙地避免了阻塞IO线程,并实现了完善的异常处理机制,保证了程序的高性能和稳定性。这种设计模式可扩展到其他异步场景,为构建高性能协程应用奠定了坚实基础。

开发 Boost.Asio

aiosqlitepool: 异步SQLite连接池,提升性能72%

2025-07-15
aiosqlitepool:  异步SQLite连接池,提升性能72%

aiosqlitepool是一个高性能的异步SQLite连接池,通过复用数据库连接避免连接开销,显著提升查询速度。它与aiosqlite等异步驱动配合使用,并非替代品。测试表明,在高并发场景下,aiosqlitepool可将查询速度提升72%,平均延迟降低41%。尤其对于高吞吐量应用或追求低延迟的场景,aiosqlitepool能有效提升性能,解决因写操作冲突导致的SQLITE_BUSY错误。

开发

Voil: 像文本编辑器一样管理文件系统

2025-07-15
Voil: 像文本编辑器一样管理文件系统

Voil 是一款 VS Code 扩展,它允许你像编辑文本一样管理文件系统。告别鼠标点击和繁琐的快捷键,直接在编辑器中创建、重命名、移动文件和目录,就像在文本编辑器中编辑文本一样高效。Voil 使用隐藏的 ID 来追踪文件,并提供丰富的命令和自定义选项,例如递归列表、排序、过滤、运行自定义 shell 命令等。支持 Vim 扩展,并提供详细的配置说明和示例。

开发

Android 15将使用16KB内存页大小,开发者需注意

2025-07-15
Android 15将使用16KB内存页大小,开发者需注意

Android系统将从4KB内存页大小迁移到16KB,以提升性能。从2025年11月1日起,所有面向Android 15及以上设备的包含原生C/C++代码的新应用和更新都必须支持16KB页大小。这将带来更快的应用启动速度、更低的功耗和更快的相机启动速度等好处。Android Studio提供了工具帮助开发者检测并解决兼容性问题,包括APK Analyzer、对齐检查和Lint。开发者需要重新编译原生代码,并避免硬编码页面大小假设。Android模拟器和部分设备也支持16KB页面大小测试。

开发

PHP 许可证更新:告别混乱,拥抱 BSD-3-Clause

2025-07-15

历经多年许可证混乱,PHP 终于迎来简化。此 RFC 建议将 PHP 许可证和 Zend 引擎许可证统一为 Modified BSD License (BSD-3-Clause)。此举不会改变贡献者和用户的权利,并使 PHP 与 GPL 兼容,消除了与 OSI 审批和 GPL 兼容性相关的问题,也解决了长期以来与 Debian 等发行版之间的许可证争议。PHP 9.0.0 将全面采用新许可证。

开发 BSD-3-Clause

Kiro:AI IDE助力规范化AI应用开发

2025-07-15
Kiro:AI IDE助力规范化AI应用开发

Kiro 是一款AI IDE,它通过规范驱动的开发流程,帮助开发者将AI原型转化为可投入生产的应用。Kiro 利用“规格”(specs)明确需求,生成用户故事、设计文档(包括数据流图、接口等),以及细化的任务清单,确保开发过程的清晰性和一致性。同时,“钩子”(hooks)功能则在开发过程中自动执行测试、更新文档等任务,确保代码质量和一致性。Kiro 支持多种编程语言,并与VS Code兼容,简化了AI应用的开发和维护流程。

CallFS:高性能分布式REST API文件系统

2025-07-15
CallFS:高性能分布式REST API文件系统

CallFS是一个超轻量级、高性能的分布式REST API文件系统,可在本地存储、Amazon S3和分布式点对点网络等多种后端上提供精确的Linux文件系统语义。它旨在实现速度、可靠性和水平可扩展性。CallFS采用模块化设计,包括API服务器、核心引擎、多种存储后端(本地文件系统、S3等)、元数据存储(PostgreSQL)、分布式锁管理器(Redis)和链接管理器等组件。它支持丰富的文件和目录操作、安全的单次使用下载链接以及全面的安全性和可观察性功能。

开发

GitHub代码审查建议应用限制

2025-07-15
GitHub代码审查建议应用限制

本文列举了GitHub代码审查中应用建议时可能遇到的多种限制,例如代码无改动、Pull Request关闭、仅查看部分改动、单行只能应用一个建议、应用于已删除行、建议已被应用或标记为已解决、来自待审阅的建议、多行注释以及Pull Request排队合并等情况。这些限制旨在维护代码审查的完整性和效率。

开发 建议应用

Apache Parquet 文件中嵌入用户自定义索引

2025-07-15

Apache Parquet 文件格式通常被认为仅支持基本的 Min/Max/Null Count 统计信息和布隆过滤器。然而,本文介绍了一种在 Parquet 文件中嵌入用户自定义索引结构的方法,而无需更改规范或创建新的文件格式。通过利用页脚元数据和基于偏移量的寻址,可以将自定义索引(例如,用于特定列的唯一值列表)直接嵌入到 Parquet 文件中,同时保持与其他 Parquet 读取器的兼容性。这对于提高查询性能,特别是处理高选择性谓词时,具有显著意义。文章详细解释了该方法,并提供了使用 Apache DataFusion 的示例代码。

Active Storage Dashboard: 一款基于Rails引擎的Active Storage管理面板

2025-07-14

作者在十年Rails开发经验中,发现管理Active Storage数据很繁琐。于是,他开发了Active Storage Dashboard,一个可挂载的Rails引擎,提供现代化的界面来监控和管理Active Storage数据。该引擎具有实时存储统计、可浏览的界面、高级过滤功能、直接下载功能、清理孤立文件的功能等特性,并支持多种数据库和Rails版本。文章还深入探讨了Rails引擎的优势,以及构建高可用引擎的最佳实践,包括命名空间、配置选项、文档、最小化依赖、可扩展性设计、错误处理和安全性等方面。

程序员的牢笼:逃离软件工具的膨胀与互操作性困境

2025-07-14

本文探讨了软件工具膨胀的困境:工具为了避免用户流失,不断扩张功能,最终导致臃肿不堪。作者提出了几种解决方法:限制工具增长(不可行)、降低切换成本(通过向后兼容和标准化)、利用FFI(外部函数接口)和IPC(进程间通信)。文章指出,Unix shell通过IPC实现工具组合,但数据流单向且缺乏结构化。PowerShell和NuShell等尝试引入结构化数据,但存在互操作性和版本稳定性问题。RPC(远程过程调用)提供了一种具有结构化接口的方案,但需要大量代码修改。最终,作者总结道,程序本身如同牢笼,限制了数据流动和互操作性,并预告下一篇文章将探讨逃离困境的方案。

Purple Garden Lexer 性能优化:从 0 到 580MB/s 的速度飞跃

2025-07-14

本文讲述了作者如何优化 Purple Garden 语言的词法分析器,使其速度提升到惊人的 580MB/s。作者通过使用计算 goto、零拷贝零分配字符串、内存分配器接口、令牌驻留和预计算关键字哈希等技术,显著提高了词法分析器的性能。此外,作者还对词法分析器的架构进行了优化,并使用mmap提高了文件读取速度。一系列的优化使得 Purple Garden Lexer 的性能大幅提升,最终实现了从几十毫秒到几毫秒的处理时间,堪称速度的飞跃。

告别拖延:一个帮你戒掉坏习惯的Bash脚本

2025-07-14
告别拖延:一个帮你戒掉坏习惯的Bash脚本

厌倦了沉迷于时间杀手应用?这个轻量级的Bash脚本`ban`可以帮你解决这个问题!只需几行命令,你就能禁止自己使用指定的命令直到特定日期,并可添加原因和友好的提醒。安装方便,使用简单,还能自定义禁用期限(默认为40天)。快来试试,重拾专注力!

开发

超越OpenEXR?浮点数图像压缩新方法横空出世

2025-07-14

博主ArasP深入研究了浮点数图像(尤其多通道图像)的无损压缩方法。测试了OpenEXR(含新HTJ2K压缩)、JPEG-XL和一种基于Mesh Optimizer的自定义方法。结果显示,OpenEXR的ZIP压缩足够实用,HTJ2K压缩率略高但性能较差。JPEG-XL压缩率较高但速度极慢。令人惊喜的是,自定义方法(Mesh Optimizer + zstd)在压缩率和速度上都显著优于其他方法,成为浮点数图像压缩的新选择。

TIOBE 编程语言指数7月报告:老牌语言争夺前十

2025-07-14

TIOBE 7月编程语言指数报告显示,前七名语言多年来保持不变,但排名8至12位的语言却持续争夺,老牌语言如Visual Basic、SQL、Fortran等竞争激烈。报告预测,新兴语言可能取代这些老牌语言进入前十,其中Ada因其在安全关键领域的优势而被看好。TIOBE指数基于全球工程师数量、课程和第三方供应商等数据计算,并非评判编程语言优劣的绝对标准,但可用于评估技能和技术决策。

开发

Django 20周年庆:开源框架的持续辉煌

2025-07-14
Django 20周年庆:开源框架的持续辉煌

2005年7月13日,Jacob Kaplan-Moss提交了Django的第一个公开版本。20年后的今天,Django迎来了20岁生日!官方启动了庆祝活动网站,收录全球各地线上线下庆祝活动,并发起为期20天的捐赠活动,目标是吸引200位新捐赠者,每人捐赠20美元或以上,其中至少20位为月捐。目前已筹集到76707美元,达到目标的25.6%。Django表示将继续努力,在未来20年为开发者提供更多新版本、强大的生态系统和积极的社区支持。

开发 20周年

cURL漏洞报告泛滥:AI生成的垃圾报告压垮安全团队

2025-07-14
cURL漏洞报告泛滥:AI生成的垃圾报告压垮安全团队

cURL项目的安全团队正被大量低质量的漏洞报告淹没,其中大部分是由AI生成的“垃圾报告”。这些报告不仅浪费了团队的时间和精力(平均每个报告需要3-4人耗时30分钟到3小时),还严重降低了真实漏洞的发现效率。2025年至今,约20%的提交报告为AI生成的垃圾信息,有效漏洞报告比例大幅下降。团队正在考虑取消漏洞奖励计划,或采取其他措施来减少低质量报告的提交,以维护团队的健康和项目的安全性。

开发

并发编程中的临界区:从错误尝试到Peterson算法

2025-07-14

本章探讨了并发编程中临界区的实现。作者首先介绍了临界区概念及意义,然后通过几个错误的尝试(例如,简单的锁机制和标志位机制)逐步引出问题,例如竞争条件和死锁。最终,作者介绍了Peterson算法,一个优雅地解决了互斥和进展问题的算法,并解释了其正确性证明的复杂性以及在实际应用中可能面临的挑战,例如非原子操作和指令重排序。

快速构建软件的技巧:从粗略草稿到精益求精

2025-07-14

本文作者分享了多年软件开发经验,总结了快速构建高质量软件的技巧。他强调根据项目需求设定代码质量标准,建议采用“粗略草稿”方法,先快速构建一个功能性原型,再逐步完善。文中还提到要尝试简化需求,避免分心,并进行小的、集中的代码更改。此外,作者还分享了一些提升效率的技能,例如阅读代码、数据建模、脚本编写和使用调试器等,以及如何有效利用大型语言模型辅助开发。

开发

GParted Live 1.7.0 发布:告别32位系统,增强安全性

2025-07-14
GParted Live 1.7.0 发布:告别32位系统,增强安全性

GParted Live 1.7.0 版本正式发布,告别32位系统支持,仅提供64位版本。此更新还包含 GParted 1.7.0 和 Linux 内核 6.12.37,并新增机制避免启动时磁盘顺序混乱,防止用户误选磁盘。GParted Live 是一款轻量级磁盘分区管理工具,无需安装即可使用,非常适合用于修复系统和紧急情况。如果图形界面无法显示,可以使用安全图形设置选项。

Arch:模块化边缘和AI网关,加速Agent应用开发

2025-07-14
Arch:模块化边缘和AI网关,加速Agent应用开发

Arch是一个模块化的边缘和AI网关代理服务器,旨在简化Agent应用的构建。它处理诸如应用防护、模糊用户输入的澄清、提示路由以及统一访问任何LLM等底层工作,从而帮助开发者更快地构建和发布Agent应用。Arch支持多种语言和框架,并提供路由、防护、可观测性等核心功能,基于Envoy构建,具有高性能和可扩展性。 一个简易的货币兑换Agent示例展示了Arch的易用性,开发者可以使用curl命令与之交互。Arch还支持基于模型和基于偏好的两种LLM路由策略,并提供详细的日志和可观测性信息。

老牌编程语言Ada逆袭?Tiobe CEO看好其未来

2025-07-14
老牌编程语言Ada逆袭?Tiobe CEO看好其未来

Tiobe CEO Paul Jansen近日表示,诞生于20世纪70年代末的系统编程语言Ada,可能在编程语言流行度竞争中比Visual Basic、Perl和Fortran等同龄语言更持久。虽然过去两年主流编程语言如Python、C#和Java排名变化不大,但像Visual Basic、SQL、Fortran、Ada、Perl和Delphi等老牌语言则波动较大。Jansen认为,Ada凭借其在安全关键领域的优势,在对安全需求日益增长的今天,很可能成为这些老牌语言中生存下来的佼佼者。目前Ada在Tiobe指数中排名第十,与Delphi/Object Pascal并列。

开发
1 2 41 42 43 45 47 48 49 213 214