分类: 开发

npm 包 nx 遭恶意代码攻击:凭据泄露和系统关机风险

2025-08-27
npm 包 nx 遭恶意代码攻击:凭据泄露和系统关机风险

近日,npm 包 nx 的多个版本(包括 21.5.0、20.9.0 等)遭到恶意攻击,攻击者利用被盗取的 npm 令牌发布了包含恶意代码的软件包。恶意代码会扫描用户文件系统,收集凭据(包括GitHub、系统密码等),并将这些信息上传到攻击者控制的 GitHub 仓库。此外,恶意代码还会修改用户的 `.zshrc` 和 `.bashrc` 文件,在终端启动时执行 `sudo shutdown -h 0` 命令,导致系统立即关机。受影响的用户应立即更新 nx 包到最新版本,并检查 GitHub 仓库是否被上传了恶意文件。Nx 官方已采取措施移除恶意软件包,并增强安全措施,例如强制所有 npm 包启用 2FA 和新的 Trusted Publisher 机制。

开发

用函数指针实现内核服务的C语言面向对象设计

2025-08-27
用函数指针实现内核服务的C语言面向对象设计

本文讲述了作者如何在自己的操作系统内核中,巧妙地运用C语言的函数指针和结构体来实现类似面向对象编程中的“虚函数表”(vtable)机制。通过这种方法,作者实现了对内核服务的统一管理,例如启动、停止和重启,以及灵活地更换调度策略,而无需修改大量代码。作者以设备驱动和服务管理为例,详细解释了vtable的实现和应用,并讨论了这种方法的优缺点。虽然C语言的语法使得代码略显冗长,但这种方式增强了代码的可读性和可维护性,并提升了内核的灵活性和可扩展性。

开发

Delphi下的TensorFlow Lite图像分类器

2025-08-27
Delphi下的TensorFlow Lite图像分类器

这段Delphi代码实现了一个简单的TensorFlow Lite图像分类器。它加载一个模型文件,预处理来自Image1组件的图像数据,并将数据传递给TensorFlow Lite解释器进行推理。推理结果,即各个类别的概率,会显示在ListView1组件中。代码包含错误处理和资源释放机制,确保程序的稳定性。

警惕!nx构建工具恶意软件窃取GitHub密钥

2025-08-27
警惕!nx构建工具恶意软件窃取GitHub密钥

近日,流行的nx构建工具中发现了一个恶意软件,它通过后安装命令在用户的GitHub账户中创建名为s1ngularity-repository的仓库,窃取钱包和API密钥等敏感信息。该恶意软件利用telemetry.js运行恶意代码,并巧妙地利用Claude Code CLI或Gemini CLI等大型语言模型工具来规避检测,将大部分可识别代码转移到提示符中。受影响的nx版本已从npm移除,用户应立即检查GitHub账户,更新nx至最新安全版本,并轮换受影响的密钥。

故意放慢程序:提升开发者工具精度的意外之举

2025-08-27
故意放慢程序:提升开发者工具精度的意外之举

程序性能研究通常专注于加速程序,但一项新研究探索了故意放慢程序的益处。通过在程序基本块中插入NOP或MOV指令,研究人员实现了对程序的细粒度控制,从而更精确地检测竞态条件、模拟加速效果以及评估性能分析器的准确性。实验结果表明,在Intel Core i5-10600处理器上,NOP和MOV指令最适合此目的,为未来开发更高级的开发者工具提供了新的思路。

开发

QEMU 10.1 发布:新架构支持和性能改进

2025-08-27

QEMU 10.1 版本发布,带来了对多个架构(包括RISC-V、Arm、x86等)的增强支持,以及一系列性能改进。此版本新增了对SME2、SVE2等指令集的支持,并引入了新的主板模型和虚拟化功能。此外,还对现有功能进行了改进,例如改进浮点异常模拟、优化块设备操作和网络性能等。值得关注的是,对Rust的支持得到了提升,但仍处于实验阶段。

开发

Monodraw应用系统要求及常见问题解答

2025-08-27

Monodraw应用最低要求macOS 11 Big Sur或更高版本,旧版macOS用户可下载v1.3(兼容macOS 10.10 Yosemite)或v1.5(兼容macOS 10.14 Mojave)。只有从官网直接下载和购买的版本包含命令行工具,App Store版本因沙盒限制无法包含。用户可通过邮件或推特@Monodraw反馈意见。开发者承诺不会与第三方共享用户邮箱,仅用于重要更新和产品信息通知。官网提供新闻资料包,并支持教育优惠。Monodraw不收集任何用户数据。

开发 Monodraw

FilterQL:一款微型结构化数据过滤查询语言

2025-08-27
FilterQL:一款微型结构化数据过滤查询语言

FilterQL是一个轻量级的查询语言,用于过滤结构化数据。它包含一个TypeScript库和FilterQL语言规范,并支持其他语言的实现。用户可定义数据模式,使用简洁的语法进行过滤、排序和限制操作,例如`genre == Action`或`year >= 2008 && rating >= 8.5 | SORT rating desc`。FilterQL支持多种比较运算符和逻辑运算符,并允许自定义操作,扩展其功能。

开发 数据过滤

AI时代:适应你的工具将胜出

2025-08-27
AI时代:适应你的工具将胜出

在AI时代,成功的关键不再是适应工具,而是工具适应你。文章以Linear和Fibery为例,对比了僵化工具和灵活工具在AI时代的不同命运。僵化的Linear难以融入AI,而灵活的Fibery则能通过LLM快速配置,将复杂的设置转化为简单的提示。LLM改变了软件的使用方式,焦点从设计解决方案转移到定义问题,用户可以用自然语言描述需求,AI则负责实现。这使得可塑性软件的优势凸显,配置和设置变得快速简易,用户可以根据需求随时调整,而僵化工具则会被淘汰。文章预测,未来几年,可塑性软件将逐渐取代僵化工具,成为主流。

优雅的重试循环:避免代码冗余和意外休眠

2025-08-27

作者探索如何编写一个优雅的重试循环,该循环能清晰地限制重试次数、避免最后一次尝试后的无用休眠、在重试失败时报告原始错误,且避免代码冗余。文章比较了几种方法,最终采用了一个 `try while` 循环,并通过添加循环上限来保证循环的终止,解决了之前的方案中存在的边界问题和潜在的无限循环风险。最终方案虽然仍有不完美之处,但相比之前的尝试,在简洁性和可靠性上有了显著提升。

开发

Async:AI 驱动的代码协同工作流

2025-08-27
Async:AI 驱动的代码协同工作流

Async 是一款开源开发者工具,它将 AI 编码、任务管理和代码审查集成到一个简洁的工作流程中。它通过整合 Claude Code、Linear 和 GitHub PR,自动调研编码任务,在云端执行代码更改,并将工作分解为可审查的子任务,最终实现从 GitHub issue 到合并 PR 的完整流程。Async 尤其适用于成熟的代码库,它强制进行前期规划,消除上下文切换,简化任务跟踪,并内置代码审查功能。该工具基于 FastAPI、Claude Code 和 Google Cloud Platform 等技术构建,并支持桌面和移动端。

开发

开源LLM网关LiteLLM招募创始级全栈工程师

2025-08-27
开源LLM网关LiteLLM招募创始级全栈工程师

LiteLLM是一个拥有27000+GitHub星标的开源LLM网关,已被NASA、Rocket Money等公司采用。现寻求一名创始级全栈工程师,帮助扩展平台。工作内容包括统一不同LLM API(如OpenAI、Azure、Bedrock等)的调用格式,并优化平台性能和可靠性。技术栈包括Python、FastAPI、JS/TS、Redis、Postgres等。要求1-2年后端或全栈开发经验,熟悉高性能基础设施维护和扩展,并对开源软件充满热情。

开发

spaCy 3.8发布:工业级NLP库的强大升级

2025-08-27
spaCy 3.8发布:工业级NLP库的强大升级

spaCy 3.8发布了!这是一个用于Python和Cython的高级自然语言处理库,基于最新的研究成果,专为实际产品应用而设计。它支持70多种语言的标记和训练,拥有最先进的速度和神经网络模型,涵盖命名实体识别、文本分类等任务,并支持多任务学习和预训练Transformer模型,例如BERT。spaCy还是一个生产就绪的训练系统,易于模型打包、部署和工作流管理。此次更新带来了诸多改进,详情请查看发布说明。

开发 spaCy

Regolith: 一个防范 ReDoS 攻击的线性时间正则表达式库

2025-08-27
Regolith: 一个防范 ReDoS 攻击的线性时间正则表达式库

Regolith 是一个用 Rust 编写的服务器端 TypeScript 和 JavaScript 库,它通过使用线性正则表达式来防止正则表达式拒绝服务 (ReDoS) 攻击。与 TypeScript 和 JavaScript 中默认的 RegExp(具有指数级最坏情况时间复杂度)相比,Regolith 的最坏情况时间复杂度为线性,从而有效避免了 ReDoS 攻击。该库旨在作为 RegExp 的直接替代品,最大限度地减少迁移成本,帮助开发者构建更安全的软件。Regolith 目前尚处于早期开发阶段,欢迎开发者参与贡献。

开发 ReDoS

rv: Ruby 的全新语言管理器,告别繁琐的依赖管理

2025-08-27

Bundler 作者历经十年,终于开发出 rv——一款全新的 Ruby 管理工具。rv 不仅能管理 gem 依赖,还能管理 Ruby 版本,并能快速安装预编译的 Ruby,避免冗长的编译过程。更重要的是,rv 简化了运行任何 Ruby 脚本或工具的过程,即使这些脚本或工具需要不同的 Ruby 版本。rv 借鉴了 uv (Python 的类似工具) 和 cargo、npm 等优秀工具的设计理念,实现了快速、可靠的功能,包括 rv tool run 和 rv tool install 等,能让开发者更轻松地管理 Ruby 环境和依赖,极大提高开发效率。

开发

PostgreSQL 哈希分区性能优化:绕过目录查找的 20 倍提速

2025-08-27
PostgreSQL 哈希分区性能优化:绕过目录查找的 20 倍提速

PostgreSQL 的哈希分区在高吞吐量应用中存在目录查找开销。本文介绍了一种通过在应用层预计算分区索引,从而绕过 PostgreSQL 目录查找的优化方法。使用 Ruby gem `pg_hash_func` 或直接调用 PostgreSQL 的哈希函数,可以将查询速度提升 20 倍以上,显著降低延迟。这种方法适用于对性能要求极高的场景,在权衡简单性和性能之间提供了更多选择。

开发 哈希分区

逆向工程苹果M1 GPU:开源驱动让Linux游戏飞起来

2025-08-27

从2020年开始,一位多伦多大学计算机系学生Hector Martin开启了Asahi Linux项目,目标是让Linux运行在苹果M1芯片上。他与一位在Collabora工作的工程师合作,通过逆向工程苹果M1的GPU,逐步实现了图形加速,最终完成了对OpenGL 4.6、Vulkan 1.4以及OpenCL 3.0的完整支持,并成功运行了Proton游戏。这不仅打破了Vulkan不适合苹果硬件的传言,也为开源社区贡献了一个高质量的驱动程序,为M1芯片上的Linux游戏体验带来了质的飞跃。

开发 M1 GPU

Android开发者验证计划引发的争议:匿名与安全之间的博弈

2025-08-27

一篇博客文章质疑了谷歌即将推出的Android开发者验证计划。文章以ICEBlock应用开发者因公开身份而遭受的威胁为例,指出该计划可能对需要匿名保护的开发者造成伤害。文章提出了五个关键问题:如何处理开发者匿名性的合法需求?谷歌与哪些民权组织合作审查了该计划?谷歌隐私政策中允许共享个人信息的条款如何解读?该计划如何处理应用开发中常用的调试密钥库和重复包名?该计划对Android应用开发学习者有何影响?文章呼吁谷歌与相关组织讨论这些问题,并提供了反馈表单。

开发

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

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

arXivLabs是一个全新的合作框架,允许开发者直接在arXiv网站上开发和分享新功能。参与其中的个人和组织都认同arXiv的开放、社区、卓越和用户数据隐私的价值观。arXiv致力于这些价值观,只与遵守这些价值观的合作伙伴合作。如果你有想法能够提升arXiv社区的价值,那就来了解一下arXivLabs吧!

开发

TTY 解密:Linux 控制台的幕后故事

2025-08-26

本文深入浅出地解释了 Linux 中 TTY 子系统的运作机制。从 19 世纪末的股票行情机到现代的虚拟终端,文章追溯了 TTY 的历史,并详细阐述了 UART 驱动、行规程、TTY 驱动以及信号机制在其中的作用。文章还解释了进程状态、作业和会话管理,以及流控制和阻塞 I/O 的原理。通过清晰的图表和具体的例子,本文揭开了 Linux 控制台背后复杂而精妙的设计,为开发者和高级用户提供了深入的理解。

开发 TTY

John McPhee 的写作方法:从零散笔记到优秀作品的炼金术

2025-08-26

本文介绍了著名作家 John McPhee 的写作方法,该方法的核心在于:先进行充分的资料收集和整理,然后构建文章结构,最后才开始写作。他先收集大量的笔记,然后将笔记分类整理成不同主题,再根据主题构建文章结构,最后才开始写作。这种方法避免了面对空白页的恐惧,让写作过程更加高效和流畅。作者还分享了自己的“McPhee 模式”,即利用 Emacs 的 org-mode 来管理笔记,提高了笔记整理和分类的效率。

SSL证书管理的噩梦:47天有效期?

2025-08-26

随着SSL证书验证机制的收紧,一家公司的SSL证书管理员面临着越来越大的挑战。从最初的季度或半月任务,如今变成了每周的任务。更糟糕的是,证书有效期将缩短至47天!这不仅增加了管理负担,也迫使企业寻找替代方案,例如转向平台自带的证书管理或免费的Let's Encrypt,这可能导致传统CA失去市场份额。作者质疑这些变化是否真的提高了安全性,还是仅仅增加了IT部门的工作负担。

开发 证书管理

线性扫描寄存器分配算法改进:处理生命周期空洞

2025-08-26
线性扫描寄存器分配算法改进:处理生命周期空洞

本文介绍了如何改进线性扫描寄存器分配算法以处理生命周期空洞。作者首先解释了生命周期空洞的成因,即由于控制流图简化为指令列表,导致虚拟寄存器的生命周期区间可能出现间断。然后,作者通过修改区间数据结构,使其支持多个不相交的区间,从而能够识别和利用这些空洞。最后,作者修改了线性扫描算法,使其能够在分配寄存器时考虑这些空洞,从而提高寄存器利用率。这项改进使得编译器能够更好地利用寄存器资源,从而提高代码性能。

让你的多项式特征与数据分布完美对齐

2025-08-26
让你的多项式特征与数据分布完美对齐

本文探讨了在机器学习中使用多项式特征时,如何使特征与数据分布对齐以提高模型性能。作者指出,正交基产生的特征在数据均匀分布时信息量最大,但实际数据并非如此。文章介绍了两种方法:一是通过映射技巧,将数据映射到均匀分布后再使用正交基;二是通过乘以一个精心选择的函数,改变正交基的权重函数,使其与数据分布对齐。第一种方法更实用,只需使用Scikit-Learn的QuantileTransformer即可实现;第二种方法更复杂,需要更深入的数学知识和更细致的调整。实验结果表明,使用第一种方法生成的近似正交特征,在加州房屋数据集上的线性回归模型中表现优于传统的最小-最大缩放方法。

危险的职业建议:高效工程师的利器

2025-08-26

本文作者认为,有效的职业建议如同锋利的工具,既能带来巨大帮助,也能造成严重损害。很多职业建议过于表面,缺乏实际操作性。作者鼓励工程师们勇于尝试“危险的建议”,打破常规,高效完成工作。虽然这种做法存在风险,但对能力强的工程师而言,收益远大于风险。作者同时强调,这种建议不适用于能力较弱的工程师。

开发

从Ruby到Python:一位程序员的语言偏好转变

2025-08-26

一位资深Ruby程序员分享了他对编程语言偏好的转变历程。起初,他钟爱Ruby的简洁优雅,但随着时间的推移,Python的改进,特别是类型提示和模式匹配的引入,让他逐渐改变了看法。他认为Python在团队协作方面更具优势,并最终选择将Python作为主要开发语言,这反映了程序员对编程语言实用性和团队协作需求的重视。

开发

timep:一款高效的Bash代码性能分析器

2025-08-26
timep:一款高效的Bash代码性能分析器

timep是一款先进的基于陷阱的Bash代码性能分析器,它能生成每个命令的执行时间剖析,并基于函数和子Shell嵌套深度以分层方式记录命令运行时间和元数据,重构完整的Bash代码调用栈树。最新版本(v1.3)内置可加载二进制文件和flamegraph生成器,显著提升了性能,将67000个命令的测试时间从20分钟缩短到5分钟。timep支持多种输出格式,包括详细和汇总的性能报告,以及可视化的火焰图,方便用户分析和优化Bash代码性能。

Fenster: 极简跨平台2D绘图库

2025-08-26
Fenster: 极简跨平台2D绘图库

Fenster是一个极简的跨平台2D绘图库,让你想起Borland BGI或QBASIC的绘图方式。它提供单窗口应用、24位RGB帧缓冲区、跨平台键盘鼠标输入和音频播放,只需少量代码即可实现。使用简单的轮询API,无需回调或多线程。它支持C99、Go、Zig和Lua绑定,甚至可以运行Doom!

开发 2D绘图
1 2 16 17 18 20 22 23 24 213 214