分类: 开发

200行代码构建的极简AI编程代理:mycoder-mini

2025-03-25

开发者利用Anthropic的Claude 3 LLM构建了一个名为mycoder-mini的极简AI编程代理,其核心代码仅200行TypeScript。该代理通过接收用户指令,使用Claude 3生成shell命令,执行命令并循环此过程直到任务完成。尽管它存在同步执行、缺乏浏览器集成和工具集有限等局限性,但它清晰简洁地展示了代理式编程的基本原理,为学习和探索更复杂的代理系统提供了良好的起点。

IngressNightmare:危及数千Kubernetes集群的严重漏洞

2025-03-25
IngressNightmare:危及数千Kubernetes集群的严重漏洞

Wiz Research 发现 Ingress NGINX Controller for Kubernetes 中存在一系列未经身份验证的远程代码执行漏洞(IngressNightmare),可导致攻击者未经授权访问 Kubernetes 集群中所有命名空间中存储的所有密钥,从而可能接管整个集群。研究发现约 43% 的云环境易受这些漏洞的影响,超过 6500 个集群(包括财富 500 强公司)的 Kubernetes 入口控制器公开暴露在公共互联网上,面临严重风险。建议尽快修补漏洞,并采取缓解措施,例如更新到最新版本的 Ingress NGINX Controller 或禁用 admission controller 组件。

开发

Freedesktop SDK移除OpenH264扩展:专利纠纷与安全风险的博弈

2025-03-25
Freedesktop SDK移除OpenH264扩展:专利纠纷与安全风险的博弈

本文讲述了Freedesktop SDK移除OpenH264扩展的来龙去脉。起初为了解决H.264专利问题,采用Cisco的libopenh264,通过Flatpak扩展实现,但存在证书失效、安全风险、更新困难等问题。后来,Freedesktop SDK将H.264解码功能整合进codecs-extra扩展,该扩展包含其他编解码库,并作为运行时扩展自动安装,最终解决了OpenH264扩展的诸多问题,减少了维护负担,提升了安全性。

从零开始构建C++标准库:Pystd项目

2025-03-25
从零开始构建C++标准库:Pystd项目

一名选择性失业的开源开发者,厌倦了C++标准库(STL)冗长的编译时间和代码难以阅读的问题,决定从头开始构建一个名为Pystd的替代方案。他以Python标准库为蓝本,逐步实现文件处理、字符串操作、UTF-8验证、哈希映射、向量和排序等功能,最终用不到1000行代码实现了与STL版本功能相当的应用。Pystd在编译速度和可执行文件大小方面均有显著优势,同时通过独特的版本命名策略(例如pystd2025),实现了完美的ABI稳定性,方便了未来升级和维护。

开发

重拾提交信息艺术:编写清晰有效的 Git 提交信息

2025-03-25

本文批判了开发者普遍存在的编写含糊不清的 Git 提交信息的习惯,例如“修复bug”、“更新代码”等。文章强调编写清晰的提交信息的重要性,因为它能帮助团队协作和未来的调试。文章详细介绍了提交信息的规范格式,包括类型(feat, fix, chore 等)、作用域、简短描述、详细说明和脚注等,并提供了多种示例。作者鼓励开发者养成编写高质量提交信息的习惯,使项目历史清晰易懂。

开发

Triforce:一款针对苹果硅芯片笔记本电脑的波束成形器

2025-03-25
Triforce:一款针对苹果硅芯片笔记本电脑的波束成形器

Triforce 是一款针对苹果 M1/M2 芯片 MacBook 的最小方差无失真响应自适应波束成形器。苹果笔记本电脑的麦克风阵列(三角形或直线排列)过于灵敏且全向,需借助波束成形来隔离所需信号并降低背景噪音。Triforce 项目旨在提供一个易于使用的波束成形器,虽然性能可能不如苹果官方实现,但其依赖项极少,并支持持续改进。

开发

Vibe-Eyes:让大型语言模型“看”懂浏览器游戏

2025-03-25
Vibe-Eyes:让大型语言模型“看”懂浏览器游戏

Vibe-Eyes是一个创新的MCP服务器,它允许大型语言模型(LLM)通过矢量化画布可视化和调试信息来“查看”基于浏览器的游戏和应用程序中发生的事情。它采用客户端-服务器架构,轻量级浏览器客户端捕获画布内容和调试信息,并通过WebSockets将其发送到Node.js服务器。服务器将图像矢量化为紧凑的SVG表示,并通过模型上下文协议(MCP)将其提供给LLM。这使得LLM能够“看到”应用程序中发生的事情,并提供更有效的调试帮助,极大地提升了“vibe coding”的效率。

开发

是时候停止构建 KV 数据库了

2025-03-25
是时候停止构建 KV 数据库了

作者痛斥 Key-Value 数据库过于简单,缺乏表达能力,使用起来十分痛苦。虽然 KV 数据库在存储引擎供应商中很流行,但其本质只是一个构建合理数据模型的基石,使用者需要从头构建数据模型,且效果往往不佳。作者提倡一种介于关系型数据库和 KV 数据库之间的方案:具有类型化记录的嵌入式数据库,逻辑和物理模式分离,但查询针对物理模式编写,避免了复杂的查询规划器,并支持异步模式更改和布局切换。这种方案在兼顾数据独立性的同时,避免了关系型数据库的复杂性,更适合嵌入式场景。

开发

Modelica建模语言:优雅地构建复杂系统

2025-03-25

Modelica是一种用于对信息物理系统进行建模的语言,它支持基于数学方程的组件的非因果连接,从而方便从第一性原理进行建模。它提供面向对象的结构,方便模型的重用,并且可以方便地用于对包含机械、电气、电子、磁力、液压、热力、控制、电力或过程导向子组件等复杂系统进行建模。学习资源包括在线指南、书籍和Modelica标准库,后者提供了代码规范和大量的现有模型,方便学习和实践。使用Modelica需要一个实现了该语言的工具和模型库。

MRubyD:一款用C#编写的mruby虚拟机

2025-03-24
MRubyD:一款用C#编写的mruby虚拟机

MRubyD是一个用纯C#实现的全新mruby虚拟机,旨在与基于C#的游戏引擎无缝集成。它利用C#的特性实现了高性能和高扩展性,并注重与Ruby API的兼容性。目前版本为预览版,部分功能仍在开发中,例如内置类型和方法的完整实现以及私有和受保护可见性的支持。开发者可以使用`dotnet add package MRubyD`安装,并通过提供的示例代码体验其功能。

开发 MRubyD

灵活的授权库:融合RBAC、ABAC和ReBAC

2025-03-24
灵活的授权库:融合RBAC、ABAC和ReBAC

一个灵活的授权库,结合了基于角色(RBAC)、基于属性(ABAC)和基于关系(ReBAC)的访问控制策略。它支持策略组合(AND、OR、NOT)、详细的评估跟踪和流畅的构建器API,并具有类型安全性和异步支持。你可以轻松添加RBAC、ABAC等多种策略,并使用PolicyBuilder创建自定义策略。示例包括RBAC、ReBAC和策略组合器的完整演示。

开发 RBAC

FaunaDB 停服:2700万美金融资后,转向开源

2025-03-24
FaunaDB 停服:2700万美金融资后,转向开源

曾获得2700万美元融资的数据库创业公司FaunaDB,宣布将于5月底停止其服务。这家公司承诺将核心技术开源。FaunaDB 结合了关系型数据库的强大功能和文档型数据库的灵活性,曾拥有25000名开发者用户。然而,由于在当前市场环境下难以筹集到足够的资金继续运营,最终选择停服,并开源其核心数据库技术,包括JSON文档存储、关系型特性(连接、外键、模式强制)以及FQL查询语言。一些评论员认为,如果FaunaDB一开始就采用开源模式,或许能获得更大的成功。

开发

Kubernetes Ingress-Nginx 严重漏洞:任意代码执行风险

2025-03-24

Kubernetes Ingress-Nginx 组件被发现存在多个严重漏洞,最高危漏洞(CVE-2025-1974)评分高达9.8分,可能导致任意代码执行,泄露集群内所有Secrets。所有低于v1.11.5、v1.12.1版本的Ingress-Nginx都受到影响。建议立即升级到最新版本或临时禁用其Validating Admission Controller功能以降低风险。

开发 Ingress-Nginx

程序员的田园牧歌梦:逃离代码,拥抱泥土?

2025-03-24

许多程序员都梦想过放下键盘,去从事体力劳动,例如木工或务农。这篇文章探讨了这种现象背后的原因,指出这可能源于对现代软件工作模式的倦怠,以及对美国文化中“自力更生”理想的重新审视。文章作者结合自身经历,分析了这种向往的复杂性,既包含对田园生活的浪漫想象,也承认其艰辛现实。最终,作者认为,寻找工作的意义并非仅仅在于经济产出,更在于参与社区建设和奉献精神。

开发 田园生活

Prospero挑战:极致性能的隐式曲面渲染

2025-03-24
Prospero挑战:极致性能的隐式曲面渲染

一个名为Prospero的挑战赛吸引了众多开发者,目标是用最快速度渲染一个由7866个数学表达式定义的隐式曲面。参赛者使用Python、Numpy、CUDA、JIT编译器等工具进行优化,探索了多种技术,包括预解析表达式、Numba加速、GPU计算、LLVM编译等,以提高渲染速度和降低内存占用。一些优秀方案将渲染时间缩短至毫秒级别,并有效降低了内存消耗。挑战赛鼓励开发者探索不同优化策略,并分享实验结果,推动隐式曲面渲染技术的进步。

开发

使用River构建幂等邮件API

2025-03-24

本文介绍了如何使用River构建一个幂等安全的邮件API。由于许多邮件服务缺乏保证幂等性的API,导致邮件发送出现重复或丢失的问题。作者通过利用River的特性,结合唯一的账户ID和幂等性密钥,实现了邮件发送任务的幂等性。即使出现网络错误导致请求重试,也能保证邮件只发送一次。文章详细阐述了实现过程,包括定义作业参数、编写工作程序、处理重复请求以及参数匹配安全等方面。最终构建的API简洁高效,具有生产级水平,避免了邮件发送的诸多问题。

开发 邮件API River

Lilly文本编辑器:精简版Vim/Neovim替代方案

2025-03-24
Lilly文本编辑器:精简版Vim/Neovim替代方案

Lilly是一个正在开发中的文本编辑器,旨在成为Vim和Neovim的轻量级替代品。它专注于提供核心功能,摒弃复杂的Lua插件生态系统,力求简洁易用。目前已发布预Alpha版本,并通过测试证明其内存泄漏为零。开发者欢迎用户反馈和贡献。

开发 Vim替代

Delphi 5 2025 注解版:25 年后的怀旧之旅

2025-03-24

Marco Cantu 发布了其经典著作《Mastering Delphi 5》的 2025 注解版,免费下载。这份 1139 页的巨著包含 475 个脚注,数十张新旧 IDE 和运行应用截图,比较了 25 年来的变化。尽管部分代码无法编译,但大部分程序仍可运行。这是一份献给 Delphi 30 周年的礼物,也是一次令人怀旧的 Delphi 发展史回顾。

开发

PicoRuby:一款适用于微控制器的轻量级Ruby实现

2025-03-24
PicoRuby:一款适用于微控制器的轻量级Ruby实现

PicoRuby是一个精简的mruby实现,其ROM占用空间仅为256KB,RAM占用空间小于128KB(32位架构下)。它可移植性强,仅依赖标准C库,并支持Raspberry Pi Pico等微控制器。该项目目前仍在开发中,但已提供API文档、示例视频和构建工具。用户可以使用`rake`命令编译生成三种可执行文件:`picorbc`(将Ruby代码编译成mruby虚拟机代码)、`picoruby`(直接执行Ruby代码)和`r2p2`(特定用途)。该项目由HASUMI Hitoshi和Monstarlab开发,并获得了Ruby协会的资助。

AI赋能的智能待办事项清单:Magic Todo

2025-03-24

Magic Todo 是一款智能待办事项清单应用,它不仅能像普通待办事项清单一样记录任务,还能根据你设定的辣度级别(🌶️)自动分解任务步骤,辣度越高,分解越细致。应用会自动为顶级任务分配类别(emoji标识),并提供筛选功能(按类别或完成状态)。每个任务项都提供编辑、删除、添加子任务和估算功能,并支持拖拽排序。此外,应用还支持设备间同步、导出、撤销/重做和批量操作等功能,极大提升了效率。

开发

LangGraph:构建灵活且注重最佳实践的AI编码助手

2025-03-24
LangGraph:构建灵活且注重最佳实践的AI编码助手

Qodo公司利用LangGraph框架构建了一个AI编码助手,该助手在灵活性和遵循编码最佳实践之间取得了平衡。最初,他们使用预定义流程处理编码任务,但随着Claude Sonnet 3.5等更强大的LLM出现,他们转向了LangGraph的图模型方法。LangGraph允许构建从完全开放式到完全结构化确定性流程的代理,这使得Qodo能够根据LLM能力调整其流程的结构化程度。该框架的简洁API、可重用组件和内置状态管理功能简化了开发流程,并支持持久性、检查点和分支点。虽然文档和测试方面存在一些挑战,但LangGraph为Qodo构建强大的AI编码助手提供了坚实的基础。

开发

Autology:一个能自我修改的Lisp解释器

2025-03-24
Autology:一个能自我修改的Lisp解释器

Autology是一个用Clojure编写的函数式Lisp解释器,其核心亮点在于它能够访问并修改自身的解释器。通过重新绑定变量*i*(指向解释器函数),程序可以在运行时动态地改变Autology的语法和行为,例如添加函数、修改求值策略等。虽然Autology本身效率不高,但它为探索Lisp元编程和语言运行时修改提供了独特的视角。

开发

Apidog MCP Server:让AI理解你的API文档

2025-03-24
Apidog MCP Server:让AI理解你的API文档

Apidog MCP Server 是一款将 Apidog API 文档与 AI 驱动的 IDE (如 Cursor) 集成的工具。它允许 AI 直接访问和使用你的 API 文档,从而加快开发速度并提高工作效率。开发者可以使用 AI 助手生成或修改代码、搜索 API 文档内容等。配置过程只需在 IDE 中添加 JSON 配置代码,包含 Apidog 访问令牌和项目 ID,即可连接你的 Apidog 项目或 Swagger/OpenAPI 文件。目前处于 Beta 阶段,欢迎反馈!

开发

命令行工具:OSGInt——GitHub 用户信息检索利器

2025-03-24
命令行工具:OSGInt——GitHub 用户信息检索利器

OSGInt 是一款强大的命令行工具,能够通过用户名或邮箱检索 GitHub 用户信息。它不仅能获取用户的基本信息(如用户名、头像、个人简介等),还能挖掘出用户的邮箱地址、GPG 密钥等更详细的数据。OSGInt 通过多种途径获取信息,包括分析用户的公开提交、GPG 密钥以及 GitHub 用户 API。项目灵感源于 Zen 项目,并持续迭代更新中,例如计划实现通过模拟提交来获取邮箱地址的功能。

Dennis Ritchie 的原始 C 编译器:一段科技史的回眸

2025-03-24
Dennis Ritchie 的原始 C 编译器:一段科技史的回眸

本文分享了已故传奇人物 Dennis Ritchie 编写的最早版本的 C 编译器源代码。这些代码如今无法用现代 C 编译器(如 GCC)编译,但它们代表了价值万亿美元产业的起点。文章还提供了 Aiju 的 PDP-11/Unix 模拟器链接,读者可以尝试编译这些代码,并附带了其他相关资源链接,例如 Research Unix 仓库,让读者可以一窥早期 Unix 系统的奥秘。

GCC 15.1 即将支持更强大的 Rust 编译器前端

2025-03-24

GCC 15.1即将发布,其Rust前端gccrs取得重大进展。Embecosm的Arthur Cohen提交了第三批补丁,包含对Rust "if let"语句的支持,以及对AST/HIR内部表示的重大改进,实现了Clone和Copy的完全支持。未来还将支持PartialOrd和PartialEq,这将使gccrs作为rustc的替代方案更实用。

开发

Deduce:一款用于教学的函数式程序正确性证明检查器

2025-03-24
Deduce:一款用于教学的函数式程序正确性证明检查器

Deduce 是一款面向教育的自动化证明检查器,旨在帮助学生轻松学习函数式程序的正确性证明,加深对逻辑的理解,并提高编写数学证明的能力。它适合具备基本编程技能(Java、Python 或 C++)和离散数学逻辑基础的学生。Deduce 提供了从安装、代码编写、证明程序到参考手册和速查表等一系列资源,并通过线性查找算法的示例证明,直观地展示了其使用方法。

Bootc:构建你自己的原子化Linux发行版

2025-03-24

厌倦了Linux发行版的繁琐配置?Bootc让你像构建应用一样构建操作系统!通过容器技术,你可以轻松创建原子化发行版,保证系统始终如一地运行。文章以Nginx为例展示了Bootc的简洁性,并介绍了Universal Blue项目,它通过Bootc构建了一个媲美SteamOS的优秀桌面体验。Bootc为构建稳定易用的Linux桌面开辟了新的道路,值得所有Linux爱好者学习。

ESM-only时代:JavaScript模块化的未来已来?

2025-03-24
ESM-only时代:JavaScript模块化的未来已来?

本文探讨了JavaScript模块系统ESM(ECMAScript Module)的普及现状以及向ESM-only迁移的必要性。作者回顾了三年前关于同时发布CJS和ESM版本的观点,并阐述了如今转向ESM-only的理由。随着Vite等现代前端构建工具以及Nuxt、SvelteKit等框架的兴起,ESM已成为主流。Node.js对require() ESM的支持进一步消除了CJS与ESM互操作的障碍。虽然双格式发布(CJS/ESM)曾是过渡机制,但维护成本高,且存在互操作性和依赖解析问题。作者建议新项目直接采用ESM-only,并针对不同类型的项目(浏览器端、CLI工具等)给出了迁移建议。最后,作者介绍了其开发的Node Modules Inspector工具,用于分析项目依赖的ESM采用情况。

告别 podman generate systemd:Quadlet 简化 Podman 容器的 systemd 管理

2025-03-24
告别 podman generate systemd:Quadlet 简化 Podman 容器的 systemd 管理

本文介绍了使用 Quadlet 来管理 Podman 容器的 systemd 服务,替代了已弃用的 `podman generate systemd` 命令。Quadlet 使用简洁的 `.container` 文件配置容器,支持自动更新、依赖管理和系统重启后自动启动等功能,比之前的 shell 脚本方法更灵活、强大且易于维护。作者详细对比了两种方法,并解释了 Quadlet 的优势,例如单个配置文件、可利用所有 systemd 功能以及更方便的依赖管理。文章还提及了 `podman auto-update` 功能以及 `podlet` 工具,方便用户迁移到 Quadlet。

开发
1 2 130 131 132 134 136 137 138 213 214