分类: 开发

QueryLeaf:将SQL查询轻松转换为MongoDB命令

2025-05-10
QueryLeaf:将SQL查询轻松转换为MongoDB命令

QueryLeaf是一个Node.js库,它能将SQL查询语句转换成MongoDB命令。它使用node-sql-parser解析SQL,将其转换为抽象命令集,然后使用MongoDB Node.js驱动程序执行这些命令。QueryLeaf支持基本的SQL操作(SELECT、INSERT、UPDATE、DELETE)以及高级查询功能,例如嵌套字段访问、数组元素访问、GROUP BY聚合函数和JOIN操作。它提供多种接口,包括库、CLI和Web服务器。测试和调试可以使用DummyQueryLeaf,无需实际数据库连接。

开发 SQL到MongoDB

利用JavaScript漏洞检测机器人?别做梦了!

2025-05-10
利用JavaScript漏洞检测机器人?别做梦了!

最近发现了一个Chromium浏览器漏洞:一段简短的JavaScript代码可以使Puppeteer和Playwright等无头浏览器崩溃。这看起来像是完美的机器人检测信号,但实际并非如此。文章分析了这个漏洞,探讨了将其武器化用于检测的可能性,并最终解释了为什么不建议在生产环境中使用它。虽然该漏洞可以造成浏览器崩溃,但它会破坏用户体验,产生副作用,并且容易被机器人开发者绕过。作者建议,有效的机器人检测应该安静、不影响性能且不易被攻破。

开发

Almquist Shell 家族史:从 1989 到今天

2025-05-10

本文详细追溯了 Almquist Shell(ash)及其众多变种的演变历史,从 1989 年的最初版本到如今在各种系统(包括 Android 和 BusyBox)中的应用。文章以清晰的家族树图示展现了 ash 的不同分支之间的关系,并对各个版本的主要改进、bug 修复以及与其他 Bourne Shell 的差异进行了深入探讨,堪称一部 ash 的编年史。

开发

Bonfire 1.0:慢软件宣言与去中心化社区构建

2025-05-10
Bonfire 1.0:慢软件宣言与去中心化社区构建

Bonfire 1.0并非简单的产品发布,而是一场关于慢软件、社区治理和去中心化网络的宣言。它反对硅谷“快速迭代,打破一切”的模式,提倡以关怀、倾听和集体管理为核心的慢速开发,致力于构建持久且有意义的数字社区。Bonfire 采用模块化设计、社会治理模式,并通过AGPL许可证和去中心化架构来抵制中心化控制,保障社区自治。它邀请用户参与治理、共同设计,构建一个由社区主导、基于共享和互助的数字公共空间。

开发 慢软件

Gmail邮件到SQLite数据库:终极邮箱分析利器

2025-05-10
Gmail邮件到SQLite数据库:终极邮箱分析利器

这个脚本可以将Gmail邮件下载到SQLite数据库,方便进行数据分析。你可以查询每个发件人收到的邮件数量、邮件大小以及未读邮件等信息。设置过程需要创建Google Cloud项目,启用Gmail API,并创建OAuth客户端ID。脚本运行后,可以使用sqlite3命令行工具查询数据库。支持增量同步和完整同步,方便管理邮件数据。

开发

效应系统:又一次完美的错误?

2025-05-10

本文作者,一位经验丰富的软件工程师,对当前热门的效应系统研究表达了担忧。他认为效应系统与异常处理一样,都存在动态作用域的缺陷,这会导致代码难以维护和理解。作者主张使用依赖注入等静态作用域方法,通过参数传递来管理资源和依赖关系,从而构建更易于测试和维护的系统。他以自身经验为例,说明了如何通过消除动态作用域的代码,提高团队的生产效率。

开发 依赖注入

极简文本预算应用PlainBudget发布Beta版

2025-05-10
极简文本预算应用PlainBudget发布Beta版

PlainBudget是一款极简的纯文本预算应用程序,现已发布macOS Beta版(售价9.99美元)。购买Beta版可以支持项目开发,并会在最终版本发布时获得免费升级。同时,该项目还提供免费开源的命令行界面版本。Beta版未签名,需要手动授权才能运行。

开发 预算应用

Zig语言的内存安全机制深度解析

2025-05-10
Zig语言的内存安全机制深度解析

Zig语言的核心设计理念之一是内存安全。本文深入探讨了Zig如何通过消除隐式控制流、全面错误处理、编译时安全检查、运行时边界检查、defer语句、可选类型、构建模式以及其他高级特性,例如哨兵终止数组和显式分配器,来防止常见的内存错误,同时保持手动内存管理带来的性能优势。Zig 的编译时系统允许在编译时评估函数,从而实现强大的元编程,同时保持安全性。通过这些机制,Zig 显著降低了内存泄漏、缓冲区溢出和悬空指针等问题的风险,为系统编程提供了安全可靠的保障。

开发

基于NATS JetStream的实时交通数据处理流水线

2025-05-10
基于NATS JetStream的实时交通数据处理流水线

这段代码描述了一个使用NATS JetStream构建的实时交通数据处理流水线。数据源为`traffic.light.events`主题的消息,通过`myqueue`队列进行处理。流水线首先根据`traffic_light_id`对数据进行分组,然后进行映射,计算每个交通灯的车辆总数和乘客总数,最后将结果以POST请求发送到`https://example.com/traffic_data`。使用了时间窗口和批量处理机制,提高了效率。

炫酷WebGL水体模拟:光线追踪与高度场模拟

2025-05-10

Evan Wallace创作的WebGL水体模拟演示令人惊艳。它利用光线追踪技术实现了逼真的反射和折射效果,并结合了分析环境光遮蔽和高度场水体模拟,呈现出波光粼粼、栩栩如生的水面。用户可以互动式地拨弄水面制造涟漪,拖动背景旋转摄像机,甚至控制光照和重力。该演示需要性能强大的显卡和最新的驱动程序,但其视觉效果令人叹为观止,堪称WebGL技术的一次成功展示。

开发

Screenshotbot:告别GitHub依赖,高效利用git-upload-pack

2025-05-09
Screenshotbot:告别GitHub依赖,高效利用git-upload-pack

Screenshotbot为了增强安全性并支持更多Git平台,最初选择不读取GitHub仓库数据。这虽然限制了功能,但提升了用户信任度和安全性审核通过率。文章详细介绍了Screenshotbot如何通过构建commit-graph和使用git-upload-pack协议来获取必要信息,从而高效支持浅克隆,解决了大型单体仓库克隆耗时的问题。新方法利用客户CI任务中已有的SSH访问权限,直接通过git-upload-pack协议获取commit信息,避免了依赖GitHub API,提高了效率和稳定性,并支持更多平台,包括自托管Git仓库。虽然git-upload-pack协议复杂,作者也总结了一些需要注意的细节,例如Packfile格式和不同Git服务器的限制,但这篇文章为开发者提供了宝贵的经验和参考。

开发 Screenshotbot

高效团队协作文档模板合集

2025-05-09
高效团队协作文档模板合集

这篇文章介绍了一套高效团队协作的文档模板,涵盖了决策记录、复盘记录、战略规划、项目追踪、问题调查、一对一汇报、全体会议以及职责说明等多个方面。这些模板旨在提高团队凝聚力、改进流程、清晰责任归属,最终提升团队效率和协作水平。无论是小型团队还是大型项目,都能从中受益,是提升团队生产力的实用工具。

开发 文档模板

Swift 6.2:并发性改进与实用特性升级

2025-05-09
Swift 6.2:并发性改进与实用特性升级

Swift 6.2带来了大量改进,其中最引人注目的是对并发性的增强和一系列提升开发效率的实用特性。新版本简化了并发编程的学习曲线,例如,通过`-default-isolation MainActor`编译器标志,开发者可以默认将代码运行在主actor上,直到需要使用并发性时再进行调整。此外,Swift 6.2还引入了原始标识符、字符串插值中的默认值、`enumerated()`对`Collection`的适配等,并对Swift测试框架进行了改进,加入了退出测试和附件功能,使得测试更加便捷和全面。这些改进将使Swift开发更加高效和易用。

开发 语言改进

37signals:告别AWS,年省百万美元

2025-05-09
37signals:告别AWS,年省百万美元

软件公司37signals(Basecamp和HEY的开发者)成功完成了从AWS云到本地存储的迁移,预计每年节省130万美元。此前,他们已将计算工作负载迁移到本地,每年节省200万美元。这次,他们将18PB的数据从AWS S3迁移到Pure Storage,AWS还免除了25万美元的数据导出费用。迁移完成后,37signals将关闭其AWS账户,每年节省150万美元的S3存储费用,整体基础设施成本将从每年320万美元降至不到100万美元。

开发

lsds: 一键查看Linux块设备设置

2025-05-09

管理Linux磁盘和I/O时,通常需要运行lsblk、lsscsi、nvme list等多个命令,再手动关联它们的结果。作者为此开发了一个名为lsds的Python程序,它直接读取`/sys/class/blocks/...`目录中的信息,将所有重要的磁盘信息汇总显示,包括设备名称、大小、类型、调度程序、旋转标志、型号、队列深度、请求数量和写缓存等。lsds支持自定义显示列,并提供详细模式显示信息来源,极大简化了Linux磁盘管理的复杂性。

开发 磁盘管理

Erlang构建的OpenAI API分布式框架

2025-05-09
Erlang构建的OpenAI API分布式框架

一个使用Erlang构建的强大分布式框架,用于与OpenAI API集成。它具有内置的监督树、动态API客户端生成和工具执行功能,支持所有OpenAI API端点,并具有容错、速率限制和流支持等特性。该框架采用分层监督树结构,确保了系统的稳定性和可靠性,开发者可以轻松注册和执行自定义工具,并通过简单的函数调用直接访问OpenAI API。

Hydra:让Postgres数据库性能提升5倍的利器

2025-05-09
Hydra:让Postgres数据库性能提升5倍的利器

Hydra,一个基于Postgres的开源数据库解决方案,赢得了众多用户的赞誉。用户反馈显示,Hydra性能卓越,无需调优即可稳定运行一年;其数据压缩率高达5倍,显著降低了存储成本;此外,Hydra拥有完善的文档和积极的社区支持,团队响应迅速,为用户提供便捷高效的技术支持。轻松上手,高效可靠,Hydra正成为大型数据分析的理想选择。

开发

Rollstack:AI赋能的数据报告自动化平台

2025-05-09
Rollstack:AI赋能的数据报告自动化平台

Rollstack 是一家由 Y Combinator 孵化的公司,致力于自动化数据报告生成。他们连接 BI 工具(如 Tableau、Looker)和内容平台(如 Google Slides),通过 AI 驱动(OpenAI、Gemini 等)的自动化技术,解决数据呈现的“最后一公里”问题。该公司服务于 SoFi、1Password 等知名企业,并提供远程友好的工作环境和具有竞争力的薪酬。目前正在招聘经验丰富的软件工程师,要求精通 TypeScript、React、Node.js 和 Prisma 等技术。

BlenderQ:命令行Blender渲染队列管理器

2025-05-09
BlenderQ:命令行Blender渲染队列管理器

BlenderQ是一个命令行界面工具,用于管理本地Blender渲染队列。你可以添加多个.blend文件到队列中,并在终端监控它们的渲染进度。它使用Node.js和Ink构建,支持主题和Nerd Fonts图标,安装方便快捷。作者选择Node.js而非Python或Go,是因为其现有的组件更符合需求,能够快速交付功能完善且易于维护的终端UI。

开发

TestFlight Beta 测试指南:安装、更新和测试

2025-05-09
TestFlight Beta 测试指南:安装、更新和测试

这篇指南详细介绍了如何使用 TestFlight 安装和测试 beta 应用。从邮件或公开链接邀请安装应用,到管理自动更新、测试旧版本和构建组,以及处理 iMessage 应用和 App Clips 的测试,应有尽有。TestFlight 支持 iOS、iPadOS、macOS、tvOS 和 visionOS,指南涵盖了各个平台的具体操作步骤。需要注意的是,测试期间的应用内购买不会转移到 App Store 版本,并且订阅的续订速度会加快。

开发 Beta 测试

Sorbet的语法丑陋?但这不妨碍它成为优秀的Ruby类型检查器

2025-05-09

Sorbet,Stripe公司开发的Ruby静态类型检查器,其语法饱受诟病。作者Jake在演讲中解释了Sorbet语法设计背后的权衡。尽管语法不够优雅,但语义(类型含义)远比语法重要十倍。Sorbet的设计目标并非强迫开发者接受静态类型,而是响应Stripe工程师对提高生产力和代码可维护性的需求。文章回顾了Sorbet的设计历程,探讨了多种语法设计方案,最终选择在现有Ruby语法基础上扩展DSL的方式。文章还展望了Sorbet未来的语法改进方向,包括改进现有语法、探索与Ruby RBS规范的整合等,目标是让Sorbet更易用、更强大。

实时渲染引擎架构:走向成熟

2025-05-09

实时渲染领域正走向成熟,文章呼吁摆脱对炫技的执着,关注底层架构设计。作者提出构建实时渲染引擎分类体系的必要性,以产品特性、生产流程和技术需求三个维度,对引擎进行更全面的描述,例如用户类型、平台支持、内容抽象、迭代速度、延迟、动态性等。文章认为,只有基于具体情境分析,才能做出最佳的架构选择,例如线程模型、API 抽象、数据结构等。这对于提升效率,满足不同行业日益增长的需求至关重要。

开发 引擎架构

Hyper:挑战React霸权的标准优先型React替代方案

2025-05-09
Hyper:挑战React霸权的标准优先型React替代方案

Hyper是一个以标准优先的标记语言,用于构建用户界面。它允许开发人员(和AI模型)使用简洁的语法生成复杂的UI。与React的复杂架构和设计目标相反,Hyper旨在将逻辑、结构和样式分离,回归HTML、CSS和JavaScript的标准,从而构建更简洁、可扩展和易于维护的UI。文章比较了Hyper和React在构建简单和复杂组件方面的差异,展示了Hyper在设计系统解耦方面的优势,并介绍了其未来的发展规划,包括全栈应用和生成式UI。

开发

Rust 依赖包的恐惧:360万行代码的噩梦

2025-05-09

作者热爱 Rust,但其依赖管理却让他担忧。一个简单的 Web 服务项目,依赖了几个 crates 后,总代码量竟达到 360 万行,其中大部分来自依赖包。这引发了代码审计的难题,以及对依赖包维护状况的担忧。作者尝试了代码量统计和 vendor 功能,但问题依然存在。文章探讨了 Rust 依赖管理的挑战,以及如何平衡性能、安全性和代码体积。

开发 代码量

Sep 0.10.0: AVX-512优化,CSV解析速度飙升至21GB/s

2025-05-09

Sep 0.10.0 版本在 AMD 9950X 处理器上实现了惊人的 21 GB/s 的 CSV 解析速度。这一速度是 2023 年首次发布以来的 3 倍提升!文章深入探讨了 .NET 9.0 的 AVX-512 代码生成问题,以及如何通过绕过掩码寄存器问题来优化 Sep 的性能。新版本的 AVX-512-to-256 解析器性能优于 AVX2 和旧的 AVX-512 解析器。多线程测试中,Sep 在 9950X 上仅用 72 毫秒就解析了一百万行数据,速度高达 8 GB/s。

开发

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

2025-05-09
arXivLabs:与社区协作者的实验性项目

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

开发

Linux内核PGP密钥信任链危机:SHA-1签名淘汰引发的信任风暴

2025-05-09

Linux内核的开发依赖于PGP签名,维护者需向Linus Torvalds提交签署的pull request。由于密钥服务器机制存在问题,Konstantin Ryabitsev维护了一个包含相关密钥的git仓库。目前,移除SHA-1签名后,将有485个公钥失去与Linus Torvalds的信任路径,其中包括许多核心开发者。这将严重影响内核的开发流程,甚至可能导致一些重要的贡献者被排除在外。为了解决这个问题,将在Embedded Recipes 2025会议上举办一次密钥签名活动,以重建信任链。

开发

C++26 反射:构建高性能的结构体数组向量

2025-05-09

本文介绍了如何利用C++26反射特性实现一个高性能的结构体数组向量(SoaVector)。通过将结构体的成员变量分别存储在不同的数组中,SoaVector避免了内存浪费,提高了访问效率。文章详细讲解了SoaVector的实现过程,包括内存管理、元素添加、读取和引用等关键环节,并与Zig语言中的类似实现进行了比较,展示了C++26反射的强大功能和潜力。

深入浅出Python异步编程:async/await背后的秘密

2025-05-09

本文深入探讨了Python异步编程模型async/await的底层机制。作者从并发和并行的概念出发,逐步讲解了如何构建一个高并发TCP服务器,比较了使用线程池和I/O多路复用等方法的优缺点。文章的核心在于解释async/await是如何基于生成器、协程以及yield/yield from等机制实现的,并详细分析了生成器和协程的底层实现细节,最后对比了asyncio和其他异步编程库的差异。

开发
1 2 92 93 94 96 98 99 100 213 214