分类: 开发

Rust GPU:用Rust编写GPU着色器

2025-04-12

Rust GPU项目允许开发者使用Rust编写GPU程序(着色器)。开发者将几个流行的Shadertoy着色器移植到Rust,过程顺利。Rust GPU将Rust代码编译成SPIR-V,方便集成到Vulkan工作流程中。该项目支持Rust特性,例如trait、泛型和宏,简化了CPU和GPU之间的数据共享。此外,该项目还修复了wgpu和naga的一些问题,为Rust生态系统做出了贡献。

开发

配置语言的五个层次:从简单字符串到图灵完备

2025-04-12

本文探讨了配置语言的五个层次,从简单的文件字符串到功能完备的编程语言。作者认为,选择合适的层次至关重要,应尽量选择最低层次以保持简单性,避免过度设计。文章以实际案例详细解释了每个层次的特点、优缺点以及潜在问题,例如循环依赖等,并建议在不同情况下合理选择,避免陷入不必要的复杂性。

开发

arXivLabs:与社区协作者共同探索实验性项目

2025-04-12
arXivLabs:与社区协作者共同探索实验性项目

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

开发

Zod 4 Beta 发布:更快、更小、更高效的类型校验

2025-04-12
Zod 4 Beta 发布:更快、更小、更高效的类型校验

经过一年多的开发,Zod 4 beta 版终于发布!它更快、更小、更符合 TypeScript 的编译效率,并实现了诸多期待已久的功能。Zod 4 使用全新的内部架构,解决了长期存在的设计限制,为一些长期请求的功能奠定了基础,并关闭了 Zod 10 个最受好评的开放问题中的 9 个。此外,还推出了新的 @zod/mini 库,提供更轻量级的、可 tree-shaking 的 API,显著减小了包大小。Zod 4 还引入了新的元数据系统、JSON Schema 转换、改进的判别联合支持以及其他许多改进。

开发 类型校验

Evidence:一个强大的可视化数据应用构建框架

2025-04-12
Evidence:一个强大的可视化数据应用构建框架

Evidence是一个构建数据可视化应用程序的强大框架,提供丰富的组件库,包括各种图表(折线图、柱状图、散点图、热力图等)、地图、输入组件和UI元素。它支持多种数据源,包括SQL查询,并提供多种部署选项,例如云服务(AWS Amplify、Azure Static Apps等)和自托管。开发者可以轻松创建交互式数据可视化应用,并通过自定义组件和插件扩展其功能。

开发

亚马逊Prime Video用Rust和WebAssembly重构客厅设备UI

2025-04-12
亚马逊Prime Video用Rust和WebAssembly重构客厅设备UI

亚马逊工程师分享了他们如何使用Rust和WebAssembly重构Prime Video客厅设备UI的历程。面对客厅设备(机顶盒、游戏机等)性能差异巨大、硬件能力参差不齐、原生代码更新困难等挑战,他们采用了一种混合架构:使用Rust和WebAssembly构建低层UI引擎,业务逻辑代码则使用React和JavaScript编写,并通过消息总线进行通信。为了进一步提升性能和响应速度,他们最终将UI层完全迁移到Rust,并开发了一个新的Rust UI SDK。新的架构显著降低了输入延迟,并实现了以前无法实现的动画效果。虽然WebAssembly生态系统仍处于发展阶段,存在一些挑战,例如panic处理,但整体结果令人满意,开发者效率也有所提高。

开发

使用SVG打造炫酷动画目录

2025-04-12
使用SVG打造炫酷动画目录

本文介绍了如何使用SVG和CSS动画创建一个类似Clerk的动态目录。首先,作者通过SVG路径和mask属性创建了动画线条效果。然后,为了实现目录高亮部分的动画,作者巧妙地利用SVG路径生成mask map,再结合CSS `mask-image` 属性和动画,最终实现了流畅的目录高亮效果。整个过程充分展现了SVG在前端动画中的强大能力,同时也体现了作者的巧思和对细节的追求。

Kilo Code:不创新,只整合!开源AI编码助手的新策略

2025-04-12
Kilo Code:不创新,只整合!开源AI编码助手的新策略

Kilo Code团队摒弃了AI工具领域的创新竞争模式,选择整合现有最佳开源AI编码助手(如Roo Code和Cline)的功能。通过“快速跟进”策略,Kilo Code迅速成为Cline和Roo Code的超集,并持续集成更多功能,致力于成为一个集所有最佳功能于一身的工具。团队的目标不是赢得市场竞争,而是构建一个真正有用的工具,提升开发者效率。Kilo Code采用开源模式,鼓励其他项目借鉴和贡献,旨在通过快速迭代和社区协作,不断完善产品,最终超越专有工具。

开发 快速跟进

Tunarr:打造你自己的个性化直播电视平台

2025-04-12

Tunarr 是一款强大的软件,允许你利用 Plex、Jellyfin 等服务器上的媒体内容创建直播电视频道。通过易用的 Web UI,你可以自定义频道、节目、广告和设置。你可以将模拟的 Tunarr HDHomerun 调谐器添加到 Plex、Jellyfin 或 Emby 中观看频道,或者使用生成的 M3U 文件与任何第三方 IPTV 播放器应用程序一起使用。Tunarr 基于 dizqueTV 进行了改进,目标是现代化堆栈、提供迁移路径、提高稳定性和性能,并美化 Web UI,同时添加大量新功能。

开发

安全工程师的SAP 0day漏洞挖掘记

2025-04-12
安全工程师的SAP 0day漏洞挖掘记

一位安全工程师在为客户进行SAP相关项目时,成功挖掘了两个SAP setuid二进制文件中的0day漏洞,并将其利用实现本地提权。文中详细描述了漏洞挖掘过程,包括目标识别、漏洞分析以及利用方法,并最终成功获得root权限。他还开发了一个名为SAPCARve的工具用于解析和操作SAP SAR归档文件,辅助漏洞利用。这两个漏洞最终被SAP分配了CVE-2024-47595。

开发 安全工程 SAP

Charts.css:无需JavaScript的响应式图表框架

2025-04-12

Charts.css是一个轻量级、开源的图表框架,无需JavaScript即可创建各种响应式图表,例如面积图、柱状图和折线图。它使用语义化的HTML结构,方便自定义样式和访问数据,并且具有良好的可访问性。该框架体积小巧(76kb,压缩后7kb),性能卓越,完全没有外部依赖,是构建轻量级网页应用的理想选择。

AI代码生成工具的幻觉风险:软件供应链的新威胁

2025-04-12
AI代码生成工具的幻觉风险:软件供应链的新威胁

AI代码生成工具的兴起改变了开发人员编写软件的方式,但也为软件供应链带来了新的风险。这些工具有时会“幻觉”出不存在的软件包,攻击者可以利用这一点,创建恶意软件包,并将其上传到软件包注册表(如PyPI或npm),从而在AI再次“幻觉”出该名称时,安装依赖项并执行恶意代码。研究表明,商业模型中约5.2%的软件包建议不存在,开源模型则高达21.7%。安全公司Socket指出,这种“幻觉”具有双峰模式,一些虚构的名称反复出现,另一些则完全消失。这种利用虚构包名的攻击类似于错字抢注,安全人员称之为“slopsquatting”。开发人员应仔细检查AI生成的代码,避免因轻信而造成安全隐患。Python软件基金会等组织也在积极努力,降低恶意软件的风险。

开发

Python 编译器:速度媲美 Rust

2025-04-12
Python 编译器:速度媲美 Rust

本文介绍了一种名为 Function 的 Python 编译器,它能够将 Python 代码编译成原生代码,从而显著提升执行速度。文章以矩阵乘法为例,展示了如何通过符号追踪构建中间表示 (IR) 图,再将 IR 图转换成原生代码(例如 C 代码),最终实现与 Rust 速度相当的性能。Function 虽然仍在概念验证阶段,但已在实际应用中用于单目深度估计和实时姿态检测等任务,未来目标是实现设备上的大语言模型推理。

开发

InstantDB招募资深TypeScript工程师:构建下一代实时数据库

2025-04-12
InstantDB招募资深TypeScript工程师:构建下一代实时数据库

实时数据库InstantDB正在招聘一位资深TypeScript工程师,加入其位于旧金山的四人的团队。理想候选人对TypeScript类型系统有着深入的理解,热衷于打造用户体验极佳的UI,并渴望参与构建一个能够支持类似Figma和Notion的同步引擎。工作内容涵盖改进TypeScript类型系统、优化用户界面和提升同步引擎性能等多个方面,是一个充满挑战和机遇的岗位。

Yakread个性化推荐算法改进

2025-04-12
Yakread个性化推荐算法改进

Yakread重写了其核心推荐算法,该算法将用户的订阅和书签文章合并到一个个性化信息流中。算法首先根据用户与书签文章的交互次数(跳过次数和书签时间)排序并进行轻微随机化处理,以避免单调性,同时限制每个网站的推荐数量。对于订阅内容,算法计算每个订阅源的“亲和力评分”,该评分基于用户对每个订阅源的最近十次交互(查看、跳过、点赞/点踩)计算得出。算法还优先考虑用户手动固定的订阅源。最后,算法通过加权随机选择的方式,将订阅内容和书签文章交错排列,以平衡推荐多样性和用户偏好。

Shorty:让C++ Lambda更简洁的库

2025-04-12
Shorty:让C++ Lambda更简洁的库

Shorty是一个C++库,旨在提供比C++原生lambda表达式更简洁的语法,而非完全替代C++。它允许使用更直观的符号进行排序、过滤、zip操作以及调用外部函数,并支持多种参数访问方式和类型转换。例如,`std::ranges::sort(subject, $lhs > $rhs);`可以简洁地进行排序,`subject | std::views::filter(($i % 2) == 0);`可以过滤偶数。其设计理念是提升开发效率,减少冗余代码。

开发

AI编程工具:高效与焦虑的未来

2025-04-12

作者在体验了Claude Code等AI编程工具后,感受到了前所未有的效率提升,但同时也产生了深深的焦虑。他将这种感受比作儿时玩游戏作弊的经历:虽然更容易获胜,但却失去了游戏的乐趣。作者担忧,AI编程工具的普及会使得编程成为一项只有少数人才能负担得起的昂贵技能,加剧技术鸿沟,并引发环境问题。虽然AI编程工具的发展不可避免,但他对编程的未来充满担忧,认为它将变得不再那么有趣。

开发 技术焦虑

高效团队:拥抱冲突,而非和谐

2025-04-12
高效团队:拥抱冲突,而非和谐

高绩效团队并非表面和谐,而是拥有心理安全感,能够坦诚讨论,有效解决冲突。真正的安全感并非避免冲突,而是允许挑战性想法,让团队更强大。作者指出,健康的团队会尽早发现问题,认真辩论,专注于问题本身,而非个人攻击,并把错误转化为学习机会。相反,“友善”但缺乏坦诚沟通的团队,问题会暗藏,最终导致失败。构建这种环境的关键在于:领导者展现脆弱性,设定辩论规则,并奖励那些提出挑战性问题的人。最终,一个心理安全的团队,虽然会有冲突,但能有效解决问题,避免积怨,最终创造出更优质的产品。

Rust 到 C 编译器取得重大进展:96% 的核心测试通过!

2025-04-12

作者在 Rust 到 C 编译器项目上取得了显著进展,核心测试通过率达到 95.9%,并在 Rust Week 大会上进行了演讲。文章详细介绍了修复 128 位整数内在函数、检查算术运算和子切片错误等问题,并讨论了对 C 编译器兼容性的改进,以及对内存效率更高的内部 IR 的迁移。尽管遇到了一些挑战,例如在某些平台上获取编译器存在困难,但作者仍致力于提高 C99 兼容性并支持更多平台。

开发

Sentient:在约束求解器中处理无限性

2025-04-12
Sentient:在约束求解器中处理无限性

本文探讨了在约束求解器Sentient中处理无限性的挑战。Sentient 是一种编程语言,它通过将问题转化为布尔方程来解决约束满足问题。由于整数在计算机中表示为有限位数,Sentient 无法直接处理数学意义上的无限整数。作者提出了一种基于近似的解决方法,通过逐步增加整数的位数来逼近无限空间,并讨论了如何利用增量 SAT 求解器 IPASIR 来提高效率,避免重复搜索。文章还探讨了如何将此方法扩展到更复杂的场景,例如处理数组和优化问题,并最终探讨了Sentient未来可能实现图灵完备性的可能性。

Awe:ALGOL W 编译器的全新实现

2025-04-12
Awe:ALGOL W 编译器的全新实现

Awe 是一款针对 ALGOL W 编程语言的全新编译器,它完整实现了 1972 年 6 月 ALGOL W 语言描述文档中所述的语言特性。Awe 能够编译为 OS/360 ALGOL W 编译器设计的代码,几乎无需修改。Awe 基于 ALGOL 60,并加入了动态分配记录、字符串处理、复数和标准 I/O 系统等功能。该项目感谢 Hendrick Boom 等人的贡献。

开发 ALGOL W

虚拟机克隆与Linux随机数生成器:安全隐患与解决方案

2025-04-12
虚拟机克隆与Linux随机数生成器:安全隐患与解决方案

本文探讨从单个快照恢复多个虚拟机克隆的安全性问题。Linux内核提供/dev/random、/dev/urandom和getrandom系统调用三种主要的随机数生成器接口。克隆虚拟机时,由于多个参数(如计时器数据或CPU HWRNG指令的输出)与每个结果混合,导致不同克隆的随机数生成器状态不一致。文章分析了新旧内核版本中随机数生成器的不同实现,并提出了多种解决方案,包括在恢复后重新初始化随机数生成器,使用virtio-rng设备,以及利用Linux 5.18及以上版本引入的VMGenID机制来解决克隆后随机数生成器状态不一致的问题。

PyReason:基于图的解释性推理软件

2025-04-12
PyReason:基于图的解释性推理软件

PyReason是一个使用逻辑规则和事实对图结构进行推理的可视化工具。它支持带注释的实值图和时态逻辑,提供Python库安装、多核并行支持(仅限Python 3.9和3.10版本),以及详细的文档和代码示例。该软件已发表论文,并获得亚利桑那州管理委员会/亚利桑那州立大学的商标许可。

你真的需要 WebSocket 吗?或许 HTTP 流式传输就够了

2025-04-11
你真的需要 WebSocket 吗?或许 HTTP 流式传输就够了

本文探讨了 WebSocket 的局限性,特别是其在处理需要事务性保证的消息时的不足。作者指出,WebSocket 消息缺乏事务性,难以可靠地关联命令和响应,处理错误和并发请求也更复杂。相比之下,HTTP 流式传输提供了一种更简洁的替代方案,可以有效地处理实时数据流,避免了 WebSocket 的复杂生命周期管理和服务器端复杂性。文章还介绍了作者开发的 eventkit 库,简化了 HTTP 流式传输的实现。

开发 HTTP流传输

Servo拒绝AI代码生成工具:维护开源项目的纯洁性

2025-04-11
Servo拒绝AI代码生成工具:维护开源项目的纯洁性

Servo浏览器项目的技术指导委员会(TSC)最初投票决定放宽对AI代码生成工具(如GitHub Copilot)的禁令,但随后因社区强烈反对而撤销该决定。作者认为,AI工具生成的代码存在逻辑错误和不可预测性,会降低代码质量,增加维护负担,并损害项目的声誉。文章详细分析了AI工具的潜在风险和社区反馈,最终呼吁TSC明确禁止使用AI生成代码,维护项目的完整性和可信度。

开发

AI 编码的瓶颈:清晰的沟通胜过精准的提示词

2025-04-11
AI 编码的瓶颈:清晰的沟通胜过精准的提示词

作者在AI开发中取得了显著进展,利用AI工具快速构建了多个产品。然而,他发现AI工具如同一个缺乏产品背景和用户洞察力的初级开发者,在处理非标准任务时容易出错。这让他回想起大学里教授用制作三明治的例子来讲解编程指令清晰度的课程。如今的AI虽然比过去强大,但依然需要开发者提供清晰、精确的指令,才能避免出现“满地狼藉”的结果。作者认为,未来AI时代的成功,将取决于开发者清晰地理解并解释如何将模糊的想法转化为实际可行的产品的能力,而非单纯的编码速度。

开发

Datastar:一个颠覆传统Web开发的超媒体框架

2025-04-11

Datastar是一个新型超媒体框架,它简化并提高了实时Web应用的构建效率。它优先处理服务器端逻辑,使用“信号”自动更新UI,并利用服务器发送事件(SSE)实现闪电般的性能。作者在尝试HTMX后,发现其在复杂应用中的结构和前端交互性方面存在不足,最终转向Datastar。Datastar通过“信号”实现响应式编程,简化代码并避免了对JavaScript框架的依赖,为追求高效、简洁的开发者提供了一种新选择。

Erlang的精髓:并非轻量级进程和消息传递,而是行为模式

2025-04-11

本文重新审视了Erlang编程语言的核心思想。作者认为,Erlang的成功并非仅仅依赖于其轻量级进程和消息传递机制,更重要的是其独特的“行为”(behaviours)模式。行为模式类似于其他语言中的接口,它提供了一组预定义的函数签名,开发者只需实现这些签名即可获得并发、容错等高级功能。这使得开发者可以专注于业务逻辑,而无需处理底层并发细节。文章通过gen_server、gen_event、supervisor等行为模式的例子,阐述了其在构建可靠分布式系统中的重要性,并探讨了如何在其他语言中借鉴Erlang的行为模式思想,最终提升软件的可靠性和可测试性。

开发

WebRTC 探索之旅:一本面向好奇者的开源书籍

2025-04-11

《WebRTC For The Curious》是一本由 WebRTC 实施者创作的开源书籍,旨在分享他们积累的宝贵经验。本书关注协议和 API,而非特定软件,总结了 RFC 并收集了未公开的知识,采取了厂商无关的方法。它并非教程,代码量极少,适合 WebRTC 新手、寻求更深入理解的开发者、需要调试帮助的开发者以及需要澄清特定部分的 WebRTC 实施者。本书结构清晰,章节独立,可随意阅读,每个章节都以问答形式,分三个层次讲解问题、解决方案和学习资源。它虽然不深入细节,但能帮助你理解整个 WebRTC 系统。

开发 开源书籍

Rust CUDA 项目:赋能 Rust 高速 GPU 计算

2025-04-11
Rust CUDA 项目:赋能 Rust 高速 GPU 计算

Rust CUDA 项目旨在将 Rust 打造为使用 CUDA 工具包进行高速 GPU 计算的一流语言。该项目提供将 Rust 编译为高速 PTX 代码的工具,以及用于与现有 CUDA 库交互的库。它克服了以往 Rust 与 CUDA 集成困难的问题,提供了一套全面的库,涵盖 CUDA 生态系统的各个方面,包括用于 GPU 端函数、CUDA 驱动程序 API 包装器以及用于光线追踪的 OptiX 支持等。该项目目前处于早期开发阶段,但其目标是推动 Rust GPU 计算产业向前发展。

开发 GPU计算
1 2 114 115 116 118 120 121 122 213 214