分类: 开发

Docker 推出 Model Runner:简化本地 AI 模型运行

2025-04-14
Docker 推出 Model Runner:简化本地 AI 模型运行

Docker 发布了 Model Runner,一个简化本地 AI 模型运行和测试的工具。它解决了开发者在本地运行 AI 模型时遇到的工具碎片化、硬件兼容性问题和工作流程割裂等难题。Model Runner 集成了 llama.cpp 推理引擎,支持 Apple Silicon 的 GPU 加速,并使用 OCI Artifacts 标准化模型打包,方便模型共享和版本控制。此外,Docker 还与 Google、Hugging Face 等公司合作,提供丰富的模型和工具,构建了强大的生态系统,让开发者能够更轻松地进行本地 AI 开发。

开发

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

2025-04-14
arXivLabs:社区协作的实验性项目

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

开发

用元规则驯服你的LLM编程助手:Cursor规则的终极技巧

2025-04-14
用元规则驯服你的LLM编程助手:Cursor规则的终极技巧

在使用Cursor等LLM辅助编程工具时,你会发现AI每次会话都像得了失忆症,需要不断重复项目规范和个人偏好。作者提出了一种元规则方法:创建一个模板规则,指导AI生成其他规则,从而系统化地教会AI你的编程习惯。这不仅提高了效率,也避免了重复劳动,让AI成为你真正的编程伙伴。

开发

垂直分库:一场噩梦?

2025-04-13
垂直分库:一场噩梦?

作者以自身经历讲述了垂直分库(功能分库)的痛点。垂直分库虽然能缓解数据库负载,但它会将应用拆分成碎片,导致应用层需要处理原本由数据库负责的连接操作,大幅增加代码复杂度和维护成本,并降低系统可用性。文章以幽默的口吻,并通过计算可用性公式说明了垂直分库如何降低系统稳定性,最终导致产品路线图延误和工程师士气低落。作者最后介绍了PgDog项目,一个旨在解决Postgres分库问题的开源项目。

开发 垂直分库

Model Context Protocol (MCP): 构建强大LLM应用的行业标准

2025-04-13

本文介绍了Model Context Protocol (MCP),一个用于构建企业级大型语言模型(LLM)应用的开放协议。MCP解决了LLM应用与企业工具集成缺乏标准的问题,它允许LangChain等框架与各种数据源和工具(如数据库、GitHub)无缝集成。文章详细讲解了MCP的核心组件(MCP服务器、客户端和宿主)、安装设置和Python实践,包括使用Ollama和LangChain构建一个计算简单利息和复利息的应用,以及使用stdio和sse两种传输模式与多个MCP服务器交互的示例。通过MCP,LLM应用可以更有效地利用企业数据和工具,实现更强大的功能。

开发 工具集成

GNU Radio:开源软件无线电开发利器

2025-04-13

GNU Radio是一个免费开源的软件开发工具包,它提供信号处理模块来实现软件无线电。它可以用现成的低成本外部射频硬件来创建软件定义的无线电,或者在模拟环境中无需硬件。它广泛用于研究、工业、学术界、政府和业余爱好者环境中,以支持无线通信研究和现实世界的无线电系统。它提供了一个模块化的、面向流图的框架,带有一个全面的处理模块库,可以轻松地组合起来创建复杂的信号处理应用程序。

开发 GNU Radio

轻量级GRPO训练:无需Transformer和vLLM

2025-04-13
轻量级GRPO训练:无需Transformer和vLLM

本项目实现了轻量级的GRPO (Group Relative Policy Optimization) 训练框架,几乎从零开始构建,仅依赖分词器和PyTorch。它改进了原算法,去除了KL散度,并加入了超长episode过滤机制,提升了训练稳定性和GPU内存利用率。该项目使用Qwen2.5-3B-Instruct模型在CountDown任务上进行训练,该任务要求模型根据给定的数字生成数学表达式以达到目标值。模型通过学习在答案前生成链式思维推理来解决该问题,并通过格式奖励和答案奖励来进行强化学习。整个过程简单易复现,只需几行命令即可在单A40 GPU上运行。

开发 GRPO

使用BCC工具追踪Linux内核函数解决测试失败难题

2025-04-13

作者在修补开源项目时,遇到测试间歇性失败的问题。通过BCC工具中的`trace`程序,作者监控了内核函数`touch_atime`的调用,最终发现是文本编辑器的后台线程扫描项目文件导致文件访问时间改变,从而引发测试失败。这个案例生动地展现了BCC工具在Linux内核调试中的强大功能,以及深入理解系统行为的重要性。

开发 BCC工具

Emacs神器:EXWM窗口管理器

2025-04-13
Emacs神器:EXWM窗口管理器

EXWM是一款基于XELB构建的,功能齐全的Emacs窗口管理器,完全通过键盘操作。它支持混合布局模式(平铺和堆叠)、动态工作区以及ICCCM/EWMH兼容性。此外,还可选配RandR(多显示器)、系统托盘、输入法、背景设置和XSETTINGS服务器支持。想了解更多?请查看截图和用户指南!

开发

Odin语言中Arena分配器与动态数组的陷阱

2025-04-13
Odin语言中Arena分配器与动态数组的陷阱

在Odin编程语言中使用Arena分配器和动态数组时,存在一些容易被忽视的陷阱。Arena分配器用于管理具有相同生命周期的内存分配,一次性释放。然而,当与动态数组结合使用时,由于动态数组的增长机制,旧的内存块不会被释放,导致内存浪费。文章分析了这个问题的根本原因:Arena分配器不支持单个内存块的释放,动态数组的增长会留下旧的内存块“墓地”。文章提出了几种解决方法:使用默认分配器、预先分配最大大小的内存或使用虚拟增长Arena。虚拟增长Arena可以避免内存块移动,但仍然存在内存浪费的可能。文章最后建议,如果程序对内存使用量要求动态变化大,则不建议使用Arena分配器。

开发

别把家里的服务器当作小型云服务卖了!

2025-04-13
别把家里的服务器当作小型云服务卖了!

一位在中型主机公司工作的技术人员分享了在家搭建小型服务器出租服务的风险。文章指出,这不仅需要额外的硬件、更快的网络、公网IP、更安全的场地、法律保护和完善的计费系统,还需要处理客户支持、数据备份、安全漏洞、合规性等诸多问题,包括GDPR、CCPA等隐私法规的遵守,以及应对DDoS攻击、数据泄露等风险。文章建议,与其冒险,不如将多余的计算资源用于个人用途、朋友共享或捐赠给科研项目等更安全可靠的方式。

开发

Gatehouse-TS:一款灵活的TypeScript授权库

2025-04-13
Gatehouse-TS:一款灵活的TypeScript授权库

Gatehouse-TS 是一个用 TypeScript 编写的灵活的、零依赖的授权库,它结合了基于角色(RBAC)、基于属性(ABAC)和基于关系(ReBAC)的访问控制策略。它是 Rust 语言 Gatehouse 授权库的移植版本。该库具有多范式授权、策略组合、无运行时依赖、易于嵌入、详细的评估跟踪、流畅的构建器 API 和类型安全等特性,并提供了详细的文档和示例代码,方便开发者快速上手和集成到项目中。

开发

Fennel:Lua 的 Lisp 式增强

2025-04-13

Fennel 是一种运行在 Lua 运行时的编程语言,它继承了 Lua 的高效和轻量级特性,并通过 Lisp 风格的语法和改进的设计解决了 Lua 的一些不足。Fennel 采用括号优先的语法,消除了运算符优先级和早期返回的问题,并通过更严格的变量管理避免了意外使用全局变量的情况。此外,Fennel 还改进了表格表示法和循环结构,并引入了函数参数检查、数据结构解构和模式匹配等特性,提升了代码的可读性和可维护性。虽然 Fennel 提供了强大的宏系统,但这通常并非必需。总而言之,Fennel 为 Lua 提供了一种更安全、更清晰的编程方式。

开发

Linux Mint Debian Edition 7:紧急备用还是未来主力?

2025-04-13
Linux Mint Debian Edition 7:紧急备用还是未来主力?

Linux Mint团队正在为其Debian版本LMDE 7添加OEM支持,这引发了人们的猜测。LMDE 7一直被描述为紧急备用系统,但新增的OEM支持暗示其可能承担更大角色。此举可能与Canonical对Ubuntu的策略(例如Snap包和遥测)有关,一些用户对此不满。LMDE基于纯Debian,避免了这些问题,因此OEM支持的加入,或许预示着Linux Mint未来战略的转变,甚至可能成为主力系统。

开发 LMDE OEM

FreeDOS 1.4 发布:为古老的 DOS PC 带来稳定性更新

2025-04-13
FreeDOS 1.4 发布:为古老的 DOS PC 带来稳定性更新

沉寂已久的 FreeDOS 迎来了 1.4 版本的更新。此次更新专注于稳定性,包含更新的安装程序、fdisk 和 format 等常用工具的新版本,以及 edlin 文本编辑器和 HTML 帮助文件的更新。值得一提的是,FreeDOS 1.4 依然提供适用于老式 PC 的软盘版,方便老用户升级。

开发

在低配硬件上高效编程:我的终端工作流

2025-04-13

作者分享了如何在配置低的硬件(例如Intel Celeron N4000和Intel Atom x5-Z8350处理器)上高效编程的经验。秘诀在于:使用轻量级的Linux发行版(作者使用Arch Linux),搭配i3wm等轻量级窗口管理器,以及Neovim等终端文本编辑器和Alacritty终端。这种组合不仅资源占用低,而且在不同机器上具有良好的可移植性,即使在低配或过时的硬件上也能提供舒适的编程体验。此外,作者提倡轻量级编程理念,尽量减少依赖项,从而提高编译速度和二进制文件大小。

开发

Rust代码突变测试工具:cargo-mutants

2025-04-13
Rust代码突变测试工具:cargo-mutants

cargo-mutants是一个Rust工具,通过生成代码变异体来测试代码的健壮性。它能发现测试无法覆盖的潜在bug,从而提升代码质量。与传统的代码覆盖率测试不同,它关注测试是否真正检查了代码的行为。该工具易于使用,支持多种测试框架,并提供CI集成方案。目前处于活跃维护状态,未来将持续改进并添加更多变异类型。

开发

用多模型AI自动修复Bug:低成本高效益的未来开发模式

2025-04-13
用多模型AI自动修复Bug:低成本高效益的未来开发模式

本文介绍了一种利用多个大型语言模型(LLM)自动修复代码Bug的新方法。通过将Asana项目管理工具与Aider编码代理和Sublayer代理集成,系统能够自动触发多个LLM(GPT-4o,Claude 3.5 Sonnet和Gemini 2.0 Flash)尝试修复同一个Bug。每个LLM的尝试都在单独的Git分支中进行,最终生成多个PR,从中选择最佳方案。此方法证明了“浪费推理”的低成本和高效率,即使单个模型失败,其他模型也能提供解决方案,并为开发者提供多种选择。这项实验表明,这种基于多模型、自动化、低成本的代码修复方法具有巨大的潜力,预示着未来开发模式的变革。

开发

Osprey浏览器扩展:你的网络安全卫士

2025-04-13
Osprey浏览器扩展:你的网络安全卫士

Osprey是一款浏览器扩展程序,能有效保护你免受恶意网站的侵害。它通过检查网址来识别恶意网站,并阻止其加载,同时显示警告信息。你可以从Chrome网上应用店或Microsoft Edge附加组件商店安装Osprey,也可以手动安装。Osprey支持自定义保护选项,并提供详细的安装指南和支持渠道。

DragonFlyBSD 的下一代磁盘加密:dm_target_crypt_ng

2025-04-13

DragonFlyBSD 迎来了激动人心的更新:dm_target_crypt_ng,一个下一代磁盘加密实现。开发者 Michael Neumann 重构了 DM-crypt 代码,提升了性能和交互性。新版本不再依赖 opencrypto 或 cryptodev,改用简化的对称分组密码 API,并使用两个工作池提高效率。目前支持 AES-CBC 和 AES-XTS 加密,未来计划加入 Twofish 和 Serpent 支持。此更新显著改善了系统响应速度,为 DragonFlyBSD 用户带来了更流畅的磁盘加密体验,有望在即将发布的 DragonFlyBSD 6.4 版本中成为默认设置。

个人Unix软件包管理方案

2025-04-13

作者分享了其在Unix系统上管理个人软件包的巧妙方法。他使用`~/lib/`目录树存储不同架构的软件,每个软件安装在独立的版本化子目录中(例如,`emacs-30.1`)。`~/bin/bin.`目录则存放指向这些软件的符号链接或启动脚本,方便切换使用不同版本。对于像pipx和Cargo这类工具,作者选择保留其默认安装路径,并在`~/bin/bin.`中创建链接,避免路径冲突。该方案并非完美无缺,但对于管理那些无法通过系统包管理器获取或版本较旧的软件非常实用。

开发 软件管理

Go语言的信道:利弊权衡

2025-04-13

本文作者,一位资深Go开发者,对Go语言中的信道机制进行了深入探讨。他认为,尽管Go语言的理论基础建立在CSP模型上,并以信道和goroutine为核心特性,但实际应用中,Go信道的实现方式存在一些问题,例如容易导致goroutine泄漏、性能不如传统同步原语、与其他并发原语的组合使用复杂等。作者建议开发者谨慎使用信道,并在合适的情况下选择更有效的同步机制,如互斥锁和回调函数。他同时提出了改进Go信道机制的建议,例如允许选择条件变量、改进垃圾回收机制以清理无用信道等。

开发 信道

Python 的高性能、类型安全日期时间库:Whenever

2025-04-13
Python 的高性能、类型安全日期时间库:Whenever

厌倦了 Python 的 `datetime` 库带来的各种陷阱?Whenever 库闪亮登场!它提供类型安全、DST 安全的日期时间操作,性能远超其他第三方库,甚至标准库。无论是 Rust 版本的高性能还是纯 Python 版本的易用性,Whenever 都能满足你的需求。它解决了标准库中关于DST处理和类型检查的不足,并提供清晰易懂的API,让你轻松编写正确的日期时间代码。

开发

Chonky:基于Transformer的智能文本分割库

2025-04-13
Chonky:基于Transformer的智能文本分割库

Chonky是一个Python库,它利用微调的Transformer模型将文本智能地分割成有意义的语义块。这个库可用于基于检索的增强生成系统(RAG)。它能够处理大量的文本,并将其分解成更易于管理和理解的片段,方便后续的文本处理和分析。示例代码展示了如何使用Chonky将一段文本分割成多个语义块。

开发 文本分割

ArcoLinux项目创始人8年后功成身退

2025-04-13

经过8年的辛勤耕耘,ArcoLinux项目创始人宣布退休。他创建ArcoLinux的初衷是教育和赋能Linux用户,期间制作了5000多个教学视频,开发了ArcoInstall等工具,并积极帮助社区用户解决问题。如今,面对年龄增长带来的精力下降,他选择在项目巅峰时期功成身退,将项目成果留给社区继续发展。未来他将享受生活,并以轻松的心态继续享受Linux的乐趣。

开发

Git 20 周年:Linus Torvalds 回顾其诞生与影响

2025-04-13
Git 20 周年:Linus Torvalds 回顾其诞生与影响

为庆祝 Git 诞生 20 周年,GitHub 举办了与 Linus Torvalds 的问答活动。Linus 回顾了 Git 的起源,它最初是为了解决 Linux 内核版本控制的混乱局面而诞生,仅仅用了 10 天就完成了早期版本的开发。尽管初期 Git 使用起来比较困难,但它迅速发展并成为如今软件开发中不可或缺的工具。Linus 强调,他本人对 Git 的兴趣在满足自身需求后就减弱了,并很快将维护工作移交给 Junio Hamano。如今,Git 的广泛应用也带来了新的挑战,例如大量被遗弃的项目。Linus 表示,他未来的工作将仍然聚焦于 Linux 内核的持续发展,而非开发新的项目。

开发

iOS 18.4 环境音效:无需 Apple Music 订阅

2025-04-13
iOS 18.4 环境音效:无需 Apple Music 订阅

iOS 18.4 推出了新的控制中心环境音效功能,提供睡眠、放松、专注和健康等模式。令人惊喜的是,无需 Apple Music 订阅即可使用该功能。作者在尝试使用该功能的过程中,发现需要安装音乐App,并且其不支持*.flac文件。文章介绍了使用ffmpeg命令行工具或XLD/Audio Converter软件将*.flac文件转换为Apple的无损格式*.m4a的方法,并分享了一个转换脚本。最终,作者通过有线连接,将转换后的音乐同步到iPhone,并建议为了避免Apple Music对音乐文件的潜在干扰,使用有线传输音乐。

p2panda:构建本地优先、隐私保护的P2P应用的模块化工具集

2025-04-13

p2panda是一个模块化的开源项目,旨在帮助开发者构建现代化、隐私保护且安全的本地优先应用程序。它采用模块化设计,允许开发者灵活选择所需组件,并与现有系统轻松集成。p2panda利用现有的库和标准(如BLAKE3、Ed25519、STUN等),确保即使在不稳定或短暂的连接下,也能实现协作、加密和访问控制。其核心是“广播式”架构,使其不仅支持离线优先模式,还兼容短波、分组无线电等后互联网通信基础设施。p2panda 提供了多种工具,包括用于发现节点、同步数据、传输大文件、存储数据以及处理数据流的库。

开发

YAML 的“挪威问题”:为什么 NO 会被解析为 False?

2025-04-12
YAML 的“挪威问题”:为什么 NO 会被解析为 False?

YAML 解析布尔值的方式存在一个令人头疼的问题,被称为“挪威问题”。由于 YAML 将 ISO 3166-1 ALPHA-2 代码 NO(挪威)解析为布尔值 false,导致数据解析错误。这篇文章讨论了这个问题,并建议使用双引号转义或使用 StrictYAML 等库来避免此问题。YAML 中的其他问题还包括版本号(如 1.0)被转换为数字和类似 Null 的字符串被转换为 NULL 等。

开发 编程问题

深入浅出汇编语言:在LLM时代学习汇编的理由

2025-04-12
深入浅出汇编语言:在LLM时代学习汇编的理由

即使在大型语言模型(LLM)时代,学习汇编语言仍然具有重要意义。文章探讨了在DeepSeek使用Nvidia的PTX中间语言加速网络操作的背景下,学习汇编语言的必要性。虽然高级语言和LLM可以生成代码,但理解汇编语言有助于深入理解计算机的工作原理,并在调试高级语言代码时提供帮助。文章还比较了七种不同架构的汇编语言(包括复古的6502、Z80、8086、68000和现代的x86-64、ARM、RISC-V),并从学习材料、学习曲线、易用性、可访问性和趣味性等方面进行了评估,最终建议RISC-V作为学习汇编语言的最佳选择,因为它具有学习路径清晰、资源丰富且未来发展前景广阔等优点。

开发
1 2 113 114 115 117 119 120 121 213 214