分类: 开发

告别Arc,拥抱Dia:浏览器公司转型AI之路

2025-05-27
告别Arc,拥抱Dia:浏览器公司转型AI之路

The Browser Company 宣布放弃其浏览器项目 Arc,转而全力开发基于 AI 的新浏览器 Dia。文章解释了 Arc 尽管拥有良好用户基础,但由于增长瓶颈、对 AI 技术应用犹豫以及沟通不足等问题而未能达到预期目标。作者坦言,Dia 并非对 Arc 的简单迭代,而是基于对未来浏览器发展趋势的判断——AI 将重塑人机交互方式,传统浏览器将被 AI 浏览器取代。Dia 旨在解决 Arc 的不足,以更简洁、快速、安全的特性,成为下一代浏览器。文章也提到 Arc 的未来规划,暂时不会开源,但会持续维护。

开发

极客自制安静型家用服务器:基于ThinkCentre Tiny的OpenShift集群

2025-05-27
极客自制安静型家用服务器:基于ThinkCentre Tiny的OpenShift集群

作者用几台二手ThinkCentre Tiny组建了一个安静、节能的家用服务器集群。这些小巧的机器运行Red Hat Enterprise Linux,并通过Ansible等工具进行管理,足以运行OpenShift、Kubernetes或其他容器化应用。整个系统功耗低,噪音小,适合放置在客厅。文章详细列出了硬件清单和成本,并分享了3D打印的机架安装方案。

Cline:抛弃RAG,AI代码助手的新范式

2025-05-27
Cline:抛弃RAG,AI代码助手的新范式

Cline是一款AI代码助手,它摒弃了流行的RAG(检索增强生成)技术,转而采用一种更符合开发者思维方式的方法。文章指出,RAG在处理代码时存在三大问题:代码逻辑被分割、索引与代码演变不同步以及安全风险。Cline通过理解代码结构(AST),逐文件探索代码逻辑,构建上下文,从而提供更准确、更安全的代码建议。它利用强大的现代语言模型,直接在本地读取和理解代码,无需创建向量数据库或嵌入,从而避免了RAG的诸多弊端,并能提供更优质的代码建议。

开发

DuckLake:轻量级数据湖和目录一体化解决方案

2025-05-27
DuckLake:轻量级数据湖和目录一体化解决方案

DuckLake 提供了一个轻量级的多合一解决方案,用于构建数据湖和目录。它支持多个 DuckDB 实例读写同一数据集,实现“多人版 DuckDB”的并发模型,这是普通 DuckDB 不具备的。即使只使用 DuckDB 作为 DuckLake 的入口点和目录数据库,你仍然可以受益于 DuckLake 提供的时间旅行查询、数据分区和多文件数据存储等功能,避免使用单个大型数据库文件。

开发

AWS Aurora DSQL:一次从JVM到Rust的数据库架构革命

2025-05-27
AWS Aurora DSQL:一次从JVM到Rust的数据库架构革命

AWS在re:Invent上发布了Aurora DSQL,这篇文章深入探讨了其开发历程。为了解决传统数据库横向扩展写入的难题,AWS团队最初尝试使用JVM,但遇到了严重的性能瓶颈,特别是垃圾回收导致的尾部延迟问题。最终,他们决定将数据平面重写为Rust,这显著提升了性能,降低了尾部延迟。此外,团队还将控制平面也迁移到Rust,避免了多语言带来的复杂性。这个项目证明了,质疑既有方案并尝试新技术(即使是代价高昂的语言迁移),能带来巨大的回报。

开发

LiveStore事件定义:一个简洁的待办事项管理系统

2025-05-27
LiveStore事件定义:一个简洁的待办事项管理系统

这段代码定义了LiveStore框架下用于管理待办事项的事件。它包含四个事件:创建待办事项 (todoCreated),标记为已完成 (todoCompleted),标记为未完成 (todoUncompleted),以及删除待办事项 (todoDeleted)。每个事件都使用Schema.Struct定义了其数据结构,确保数据的一致性和完整性。这展现了一个简洁高效的待办事项管理系统设计,其核心在于利用事件驱动架构来跟踪待办事项状态变化。

AI辅助开发:程序员的未来是架构师

2025-05-27
AI辅助开发:程序员的未来是架构师

从无代码到AI辅助开发,技术革新并未淘汰程序员,而是不断重塑他们的角色和技能需求。过去无代码、云计算等技术浪潮,都并非取代程序员,而是催生了新的专业领域,如NoCode专家、DevOps工程师等,并提升了薪资水平。如今,AI辅助开发同样如此。AI擅长代码编写,但它无法胜任系统架构设计。因此,未来软件工程中最宝贵的技能将是系统架构设计,这恰恰是AI难以取代的。AI加速了开发效率,但同时也增加了系统维护的复杂性,更需要经验丰富的架构师来管理和规避风险。

开发

LumoSQL:SQLite 的安全增强版

2025-05-27

LumoSQL并非SQLite的复制项目,而是对SQLite进行了改进,添加了安全、隐私、性能和测量功能,并支持可插拔的后端存储引擎(例如LMDB)。它使用独特的“非分叉”工具管理多个上游代码库,并与SQLite项目合作,以一种不影响SQLite核心稳定性的方式引入新的特性。LumoSQL旨在为SQLite带来性能提升和新功能,尤其针对那些需要更高安全性和性能要求的用户,但因SQLite本身的保守策略而无法很快实现这些功能。

开发

Mesa 25.1.1 Windows 版本发布及常见问题解决

2025-05-27
Mesa 25.1.1 Windows 版本发布及常见问题解决

Mesa 25.1.1 的 Windows 版本(基于 Visual Studio 和 MSYS2 Mingw-w64 编译)已发布。该版本得到了 Petrosky 公司的赞助,提供了构建机器。本版本修复了许多常见问题,例如缺少 libgallium_wgl.dll、libEGL.dll 和 libvulkan-1.dll 等错误,这些问题通常可以通过重新部署应用程序或运行提供的修复工具来解决。此外,文档详细解释了 MSVC 和 MinGW 版本包之间的差异、包内容、各种驱动程序(如 llvmpipe、GLonD3D12、zink 等)的配置和使用,以及旧版软件兼容性、OpenGL 上下文配置覆盖等问题,并提供了相应的解决方案和环境变量设置方法。

开发 Mesa

Clojure MCP:AI赋能的REPL驱动开发

2025-05-27
Clojure MCP:AI赋能的REPL驱动开发

Clojure MCP是一个alpha阶段的项目,它通过连接AI模型到Clojure nREPL,提供了一套完整的工具来辅助Clojure项目的开发。它不仅包含Claude Code的所有功能,还集成了clj-kondo、parinfer等工具,并支持与Claude Desktop无缝集成。开发者可以利用AI进行增量式开发,在REPL中实时验证代码,并通过一系列工具(如智能文件读取、结构感知编辑、代码评估等)提高效率。此外,该项目还提供了一个完善的流程来维护LLM友好的项目文档,方便AI助手理解代码库结构。该项目遵循GNU Affero General Public License v3.0开源协议。

开发

arXivLabs:与社区协作者共建arXiv新功能

2025-05-27
arXivLabs:与社区协作者共建arXiv新功能

arXivLabs是一个开放平台,允许开发者与arXiv社区协作,直接在arXiv网站上开发和分享新功能。参与者必须认同arXiv的开放、社区、卓越和用户数据隐私等价值观。你有好的想法吗?加入arXivLabs,为arXiv社区创造价值!

开发

yes-rs:用Rust重写Unix命令yes,速度飞快且内存安全

2025-05-27
yes-rs:用Rust重写Unix命令yes,速度飞快且内存安全

厌倦了C语言版本的yes命令的内存不安全和容易溢出?Rust爱好者们发布了yes-rs,一个用Rust编写的yes命令替代品。它不仅速度惊人,而且保证内存安全,完全没有不安全的代码块。相比于C语言的50行代码,Rust版本达到了1302行,但性能提升显著,并且具有现代错误处理和零成本抽象。yes-rs支持自定义输出字符串,并兼容Cargo构建系统。如果你追求极致性能和安全,不妨试试yes-rs!

开发

Stalwart v0.12发布:全功能通信协作平台

2025-05-27
Stalwart v0.12发布:全功能通信协作平台

Stalwart v0.12 版本重磅发布!它不再只是一个邮件服务器,而是进化成了一个完整的、集成的通信和协作平台。此版本最大的亮点是原生支持日历、联系人以及文件存储,无需任何第三方集成。用户可以使用任何标准客户端管理他们的日程、通讯录和文档,所有这些都连接到同一个后端。此外,它还改进了垃圾邮件过滤,优化了性能,并支持灵活的集群协调,适应各种规模的部署。未来版本还将支持 CalDAV 调度、事件通知以及 JMAP 扩展,进一步提升用户体验。

开发

Sqawk:基于SQL的命令行工具,轻松处理分隔符文件

2025-05-26
Sqawk:基于SQL的命令行工具,轻松处理分隔符文件

Sqawk 是一款基于 SQL 的命令行工具,它受到经典 awk 命令的启发,能够高效地处理 CSV、TSV 等分隔符文件。它将数据加载到内存表中,使用 SQL 查询进行处理,并将结果写入控制台或文件。Sqawk 支持多种 SQL 操作,包括 SELECT、INSERT、UPDATE 和 DELETE,以及各种过滤、排序和聚合函数。它还支持多表操作、自定义分隔符和数据类型推断,并提供安全操作模式,防止意外修改文件。无论是数据清洗、转换还是分析,Sqawk 都能提供强大的功能和便捷的操作体验。

开发

Dav1d性能优化:通过结构体内存对齐提升解码速度

2025-05-26
Dav1d性能优化:通过结构体内存对齐提升解码速度

一位开发者通过优化Dav1d视频解码器中结构体的内存对齐,显著提升了其解码性能。他通过调整结构体成员的顺序和数据类型,减少了内存碎片,并将64位处理器上的8字节对齐优化到极致。测试结果显示,在处理1080p和4K视频时,解码时间分别减少了约0.5%和2.8%。这项优化充分展现了细致的内存管理对性能提升的重要性,也为其他C/C++项目的优化提供了借鉴。

CSMWrap:在UEFI系统上模拟遗留BIOS

2025-05-26
CSMWrap:在UEFI系统上模拟遗留BIOS

CSMWrap是一个巧妙的工具,可在仅支持UEFI的系统上模拟传统的PC BIOS。它利用SeaBIOS项目的CSM(兼容性支持模块)和VESA VBIOS来模拟传统的BIOS环境,从而支持在QEMU和部分真实硬件上启动FreeDOS、Windows XP和Windows 7。CSMWrap通过解锁遗留BIOS内存区域、加载SeaBIOS CSM模块、配置内存映射等步骤实现这一功能。需要注意的是,该工具需要禁用安全启动和4G以上解码,并且可能存在Windows视频模式设置问题。

开发 SeaBIOS

模块化编程难题:如何在脚本语言中优雅地处理公私成员?

2025-05-26

一位开发者在构建一个幻想主题的控制台项目时,苦思冥想如何为其脚本语言添加模块系统。他尝试了多种方法来区分公有和私有声明:修饰符关键字(如Java的public和private)、修饰符区块(如C++)、标识符中的特殊符号(如Python的下划线)、导出清单(如Scheme)以及在声明中使用特殊符号(如Oberon的*)。最终,他倾向于在声明关键字前添加下划线来区分公私成员,例如`rec_`表示私有记录,`def_`表示私有函数,虽然这种方式不常见,但也简洁易懂,避免了在每个使用点都添加符号的冗余。

开发 模块系统

CSS Paint Worklet:自定义背景图像的炫酷玩法

2025-05-26
CSS Paint Worklet:自定义背景图像的炫酷玩法

这个例子展示了如何使用CSS Paint Worklet创建动态背景图像。通过定义自定义属性`--boxColor`和`--widthSubtractor`,并结合CSS选择器`nth-of-type`,我们可以为列表项生成不同颜色和宽度的背景。JavaScript代码注册外部的paint worklet脚本`boxbg.js`,该脚本包含了绘制背景图像的逻辑。最终效果可以通过修改自定义属性值在开发者工具中进行调整,实现个性化的背景图像定制。

Determinate Nix 3.5.2 引入懒惰树,显著提升 Nix 性能

2025-05-26
Determinate Nix 3.5.2 引入懒惰树,显著提升 Nix 性能

Determinate Nix 3.5.2 版本发布,引入了备受期待的“懒惰树”功能。该功能通过虚拟文件系统优化文件复制,显著提升了 Nix 在大型仓库(尤其是在大型单体仓库)中的效率。测试表明,“懒惰树”可以将 Nixpkgs 仓库的评估时间缩短 3 倍以上,磁盘使用量减少 20 倍以上。用户可以通过在自定义 Nix 配置中启用 `lazy-trees = true` 来开启该功能。虽然目前该功能处于可选状态,但 Determinate Nix 团队已提交请求将其合并到上游 Nix 中。未来,他们还计划进一步提升 Nix 的评估性能,包括改进评估缓存、将并行评估应用于更多 Nix 操作以及提供多线程解压功能。

开发 懒惰树

超越Zig和Rust:一种更友好的元编程方法

2025-05-26

本文探讨了一种新的编程语言设计,它结合了Rust的Hindley-Milner类型系统和Zig的编译时计算能力,同时避免了Zig中类型作为值带来的复杂性。通过引入`@`运算符强制编译时执行、`Abstract`类型表示编译时抽象、`TypeInfo`和`Field`类型描述类型信息以及`Code`和`parse`函数处理代码对象,该设计实现了强大的元编程能力,例如自动生成代码、实现类似TypeScript的`Partial`类型等,并保持了代码的可读性和易于推理性。 这是一种在保持类型系统友好性的同时,获得强大元编程能力的新尝试,为未来的编程语言设计提供了新的思路。

开发

Mutmut:Python代码变异测试利器

2025-05-26
Mutmut:Python代码变异测试利器

Mutmut是一个易于使用的Python代码变异测试工具。它可以帮助开发者识别测试套件中的漏洞,提高代码质量。Mutmut支持增量式测试,并行执行,并提供交互式终端界面。用户可以通过简单的命令行操作运行测试、浏览变异体、应用变异体以及配置测试参数,例如指定需要变异的代码路径、测试目录以及排除文件等。Mutmut也支持在大型代码库中优化测试效率,并提供多种配置选项以满足不同的需求。

开发

用Monad实现FizzBuzz:优雅的函数式编程

2025-05-26

本文介绍了一种使用Monad实现FizzBuzz算法的函数式编程方法。核心思想是利用guard-sequence模式,分别判断数字是否能被3、5、7整除,生成对应的字符串“fizz”、“buzz”、“zork”,若不能整除则返回Nothing。最后,使用mconcat将结果合并,并用fromMaybe处理Nothing值,最终输出正确的FizzBuzz结果。这种方法简洁优雅,充分体现了函数式编程的魅力。

开发 FizzBuzz

2025年创建Debian软件包的最佳工作流程

2025-05-26
2025年创建Debian软件包的最佳工作流程

本文演示了在2025年创建新的Debian软件包的最佳工作流程,并保留上游Git历史记录。该流程降低了与上游共享改进的门槛,并通过使用标准Git工具轻松检查任何级别的每一个更改来改进软件来源和供应链安全性。关键要素包括:使用上游存储库的Git fork/clone作为创建Debian打包存储库的起点;一致地使用相同的git-buildpackage命令,所有特定于包的选项都在gbp.conf中;DEP-14标签和分支名称用于最佳的Git打包存储库结构;原始tar和上游签名用于供应链安全;在debian/copyright文件中使用Files-Excluded过滤掉Debian中不需要的文件;修补队列以便轻松地跨Debian和上游分支重新设置基准和挑选更改;有效使用Debian的GitLab实例Salsa,用于来自CI系统的自动化反馈和来自同行评审的人工反馈。文章以Entr命令行工具为例,详细讲解了每个步骤。

开发 软件打包

用BQN实现Scheme解释器:精简的代码,强大的功能

2025-05-26

本文介绍了使用BQN语言实现一个Scheme解释器的尝试。作者巧妙地利用BQN的简洁语法和强大的数组操作能力,实现了Scheme子集的解释功能,包括一些基本的算术运算、列表操作和元编程功能。虽然该实现尚未完全符合R5RS标准,并且缺乏完善的错误处理,但其精简的代码和强大的功能仍然令人印象深刻。这篇文章为BQN语言的应用提供了新的视角,也展现了函数式编程的魅力。

开发

PgDog:一款用 Rust 编写的 PostgreSQL 事务池和逻辑复制管理器

2025-05-26
PgDog:一款用 Rust 编写的 PostgreSQL 事务池和逻辑复制管理器

PgDog 是一个用 Rust 编写的快速、安全且可扩展的 PostgreSQL 事务池和逻辑复制管理器,能够处理数百个数据库和数十万个连接。它支持数据库分片,提供负载均衡、健康检查和故障转移功能,并具有事务池和会话池功能,可以高效地管理大量的客户端连接。PgDog 还支持使用 OpenMetrics 进行监控,并提供 CSV 解析器和逻辑复制功能,方便数据导入和数据库分片。

开发

Nix:解决软件开发中可复现性问题的利器

2025-05-26
Nix:解决软件开发中可复现性问题的利器

现代软件开发工具繁多,环境差异导致代码在不同系统上的构建和运行结果不一致。Nix通过其独特的不可变`/nix/store`机制和内容寻址存储方式,解决了软件开发中的可复现性问题。它虽然学习曲线陡峭,需要学习函数式编程概念,但其带来的好处,如消除依赖冲突、简化环境管理、保障构建可复现性,以及提升安全性,足以弥补学习成本。Nix flakes进一步简化了项目管理,并通过强大的缓存机制提升了构建速度。虽然Nix并非完美无缺,存在学习成本高、调试困难等问题,但在处理复杂项目、跨平台开发和安全性要求高的场景中,Nix的优势明显,值得一试。

开发

Emilua:一款基于C和Lua的通用容器运行时

2025-05-26

Emilua是一款创新的容器运行时,它采用C语言编写,并使用Lua脚本进行配置,支持Linux namespaces和FreeBSD jails等多种内核技术。不同于传统的基于CLI的容器运行时,Emilua利用Lua的编程能力,提供了高度的灵活性和安全性,避免了使用BASH脚本的诸多风险,例如同步问题和安全漏洞。它还特别关注安全性,例如防止从容器镜像调用二进制文件,以及安全地清除临时缓冲区的内容。此外,Emilua还可以用于创建Capsicum沙箱,展现了其强大的灵活性和适应性。总而言之,Emilua为容器管理提供了更安全、更灵活的解决方案,尤其适用于需要自定义容器设置阶段的复杂场景。

开发

Rust 1.88 将 i686-pc-windows-gnu 降级为二等目标

2025-05-26
Rust 1.88 将 i686-pc-windows-gnu 降级为二等目标

Rust 1.88.0 版本将 i686-pc-windows-gnu (32 位 GNU-based Windows 编译目标) 从 Tier 1 降级到 Tier 2。这意味着该目标的测试频率将降低,未来可能积累更多 bug。此举主要是因为该目标缺乏维护者,且存在较多难以调试的问题。虽然标准库和编译器的构建仍会继续提供,但用户应注意潜在的风险。Rust 团队呼吁有相关经验的开发者加入维护。

开发

用timeout避免Bash脚本死循环

2025-05-26
用timeout避免Bash脚本死循环

一个Bash脚本使用`until`循环检查web服务器是否启动,但如果服务器启动失败,会陷入无限循环。文章介绍了使用`timeout`命令避免此问题的两种方法:一是将`until`循环用`bash -c`包裹,二是将`until`循环放到单独的脚本中再用`timeout`命令执行。这两种方法都能有效地防止脚本因服务器启动失败而无限循环,保证脚本的健壮性。

开发 timeout

WebGPU赋能:浏览器中的粒子生命模拟

2025-05-26
WebGPU赋能:浏览器中的粒子生命模拟

作者利用WebGPU API在浏览器中实现了粒子生命模拟,该模拟基于一个非物理模型,粒子间作用力可以是非对称的,从而模拟出类似生物的活动。文章详细介绍了模型原理、WebGPU实现、空间哈希优化和渲染技术,包括高效的并行前缀和算法。最终效果令人惊艳,可生成各种有趣的生命形态,并支持自定义规则和分享。

开发
1 2 75 76 77 79 81 82 83 213 214