分类: 开发

逆向工程 Linear 的同步引擎:一篇详细研究

2025-05-31
逆向工程 Linear 的同步引擎:一篇详细研究

本文详细分析了 Linear 的同步引擎 (LSE),它巧妙地解决了任意数据模型的支持、丰富的功能(包括部分同步、权限控制、撤销/重做、离线可用性和编辑历史记录)以及良好的开发者体验等难题。作者通过逆向工程 Linear 的前端代码,深入探讨了 LSE 的模型定义、MobX 的使用、引导过程、本地数据库的构建、延迟加载数据、客户端与服务器的同步、撤销/重做等机制。文章还解释了 LSE 如何定义模型和元数据、执行引导和延迟加载,以及处理事务、增量更新和冲突解决。LSE 的设计目标是让开发者无需成为同步引擎专家就能构建协作应用程序。

Redis 8.0开源回归与Valkey性能对决

2025-05-31
Redis 8.0开源回归与Valkey性能对决

Redis Inc.去年关闭Redis开源曾引发社区震动,但开源社区迅速做出回应,诞生了Valkey分支。如今,Redis 8.0重新开源,并迎来了原作者Antirez的回归。文章通过性能测试比较了Valkey 8.1和Redis 8.0,结果显示Valkey在吞吐量和延迟方面均优于Redis 8.0,尤其是在开启I/O线程后优势明显。文章还探讨了通过核心分配优化性能的技巧,以及基准测试的局限性。

开发 Valkey

TestFlight Beta 测试指南:轻松参与应用内测

2025-05-31
TestFlight Beta 测试指南:轻松参与应用内测

想体验最新应用?TestFlight 是你的最佳选择!本文详细介绍了如何安装和测试 Beta 应用,包括通过邮件或公开链接邀请安装 iOS、iPadOS、macOS、tvOS、visionOS 和 watchOS 的 Beta 应用,以及如何管理自动更新、测试旧版本和构建组,甚至测试 iMessage 应用和 App Clips。TestFlight 还提供详细的测试周期说明和注意事项,确保你顺利参与应用内测,并为开发者提供宝贵的反馈。

开发 应用内测

Changefly ID:下一代用户身份验证系统

2025-05-30

Changefly ID 是一种新型的身份验证系统,它抛弃了传统的邮箱和手机号认证方式,为登录、支付、用户付费墙、机器人付费墙、忠诚度计划、评论、调查、表单等提供更安全的认证服务。该系统通过三步简单的步骤生成私钥和连接密钥,并使用户能够进行身份验证。Changefly ID 对个人项目免费,并为商业用途提供许可。其使命是通过高级安全功能,如匿名端到端加密和机器学习算法,帮助构建更安全的互联网。

开发

虚拟线程吞噬内存:一个网络爬虫的速度与内存之战

2025-05-30
虚拟线程吞噬内存:一个网络爬虫的速度与内存之战

作者使用Java虚拟线程构建了一个网络爬虫,起初速度大幅提升,但随后却遭遇了OutOfMemoryError。这篇文章讲述了作者如何利用虚拟线程提高爬虫速度,以及如何通过引入信号量限制并发任务数量来解决由虚拟线程导致的内存溢出问题。作者比较了使用平台线程和虚拟线程的爬虫性能,并探讨了在使用虚拟线程时需要注意的资源管理问题,提醒开发者虚拟线程虽然高效,但需要更精细的资源管理以避免内存问题。

开发

Notepad 的“进化”:简单易用不再?

2025-05-30
Notepad 的“进化”:简单易用不再?

微软正在为Notepad添加粗体、斜体、超链接等格式化功能,将其从极简文本编辑器转变为简易文字处理器。此举引发争议,许多用户认为此举破坏了Notepad一贯的简洁易用性,使其变得臃肿,并可能导致用户转向其他替代方案。虽然微软提供禁用格式化的选项,但这似乎是为问题寻找解决方案,而非真正满足用户需求。

开发

用J语言编写极简光线追踪器

2025-05-30

本文讲述了作者使用J语言编写一个极简光线追踪器的经历。J语言以其简洁的语法和基于数组的函数式编程范式而闻名。作者详细介绍了J语言中的一些关键概念,例如隐式动词、数组编程和动词组合,并展示了如何在J语言中实现光线追踪算法的关键部分,例如向量运算、光照计算和像素渲染。最终,作者成功地用J语言编写了一个高效且简洁的光线追踪器,并对J语言的编程体验和性能进行了评价。

开发

Stack AI招募10倍工程师,打造AI赋能应用平台

2025-05-30
Stack AI招募10倍工程师,打造AI赋能应用平台

Stack AI,一家由两位MIT博士创立,并获得Y Combinator和Gradient Ventures投资的AI公司,正在招聘10倍工程师!他们致力于通过一个用户友好的无代码平台,让每个人都能构建AI驱动的应用。该平台集成OpenAI、Anthropic等顶级AI模型和多种数据源,现已拥有超过8.5万用户和300多付费客户。此次招聘主要面向前端工程师,要求精通React、TypeScript等技术,并具备良好的用户体验设计能力。如果你对AI充满热情,并渴望在快速发展的初创公司工作,这将是一个绝佳机会。

开发

告别「氛围编程」:AI辅助编程的正确打开方式

2025-05-30
告别「氛围编程」:AI辅助编程的正确打开方式

近年来,「氛围编程」盛行,开发者依赖AI工具快速生成代码,却忽略了基础知识和安全风险。文章批判这种“只求快,不求稳”的编程方式,指出它可能导致严重的安全漏洞,例如暴露API密钥。作者倡导AI辅助编程,强调在使用AI工具的同时,仍需掌握编程基础知识,进行充分的规划和测试,确保代码质量和安全性。唯有如此,才能充分发挥AI的效能,构建稳定可靠的应用程序。

开发

Automattic重启WordPress贡献:一场商业策略的逆转?

2025-05-30
Automattic重启WordPress贡献:一场商业策略的逆转?

WordPress母公司Automattic在暂停对WordPress项目的贡献后,宣布重新加入。此举发生在Automattic上个月宣布2025年仅发布6.8版本之后,引发诸多猜测。内部消息指出,CEO Matt Mullenweg希望今年推出6.9版本,加入管理员界面更新和AI功能。一些人认为此举是迫于压力,或因意识到撤回贡献损害了其商业利益和声誉;另一些人则将其与Automattic与WP Engine的商标纠纷联系起来。Automattic指责WP Engine利用WordPress开源项目获利而不回馈社区,而WP Engine则反驳称Automattic曲解商标法。此次重启,其背后动机仍扑朔迷离,但无疑为WordPress的未来发展增添了新的变数。

开发

Wasp 和 PgBoss:轻量级任务调度的优雅解决方案

2025-05-30
Wasp 和 PgBoss:轻量级任务调度的优雅解决方案

本文介绍了如何使用 Wasp 和 PgBoss 在 React 和 Node.js 应用中实现轻量级任务调度。PgBoss 利用 PostgreSQL 的可靠性和可扩展性来管理后台任务,而 Wasp 简化了任务定义和配置。文章以一个网球比分追踪应用为例,演示了如何创建一次性调度任务(例如,发送每日比赛总结邮件)和循环任务(例如,每日发送比赛摘要)。对于小型项目或早期创业公司,这套方案足够高效,无需复杂的外部服务。但对于高负载或计算密集型任务,建议考虑更强大的专用任务处理系统。

开发 Wasp PgBoss

CatBench v0.3:Postgres向量搜索应用新增性能监控

2025-05-30

CatBench是一个基于Postgres和PgVector的演示应用,使用25000张宠物照片展示相似性搜索功能。最新版本CatBench v0.3增加了Postgres实例级别的吞吐量和平均查询执行延迟图表监控。用户可以浏览推荐引擎,查看猫的图片和产品推荐,并观察UI活动的后端SQL查询及其计划执行指标。新版本还增加了实例范围的活动和SQL延迟指标监控,方便用户观察性能变化。未来计划包括改进代码、增加照片数量、添加召回质量监控以及支持其他数据库。

开发

Asdf Overlay:超高速Windows窗口叠加库

2025-05-30
Asdf Overlay:超高速Windows窗口叠加库

Asdf Overlay是一个超高速、易于使用的Windows窗口叠加库,通过Hook渲染后端在窗口帧缓冲区上绘制。它利用GPU共享纹理避免CPU的帧缓冲区复制,从而能够渲染任意大小的叠加层而不会损失性能。支持OpenGL、DX9-DX12和Vulkan等多种API,并提供输入捕获控制等功能。目前已被多个项目使用,例如游戏内歌词叠加和游戏内叠加等。该库需要Node.js、pnpm、特定版本的Rust编译器和MSVC等环境。安装依赖后,通过pnpm build进行构建,并提供多种示例和调试方法。

开发 Overlay

Excel表格与Markdown表格互转工具

2025-05-30
Excel表格与Markdown表格互转工具

这是一个强大的在线工具,可以轻松实现Excel或Google Sheets表格与Markdown表格之间的相互转换。只需复制粘贴即可完成转换,结果会自动复制到剪贴板。该工具完全在浏览器端运行,保护用户数据隐私。此外,它还支持自定义列对齐方式,例如左对齐、居中对齐和右对齐。

开发 表格转换

Sequor:SQL驱动的API集成平台,释放现代数据栈的潜力

2025-05-30
Sequor:SQL驱动的API集成平台,释放现代数据栈的潜力

Sequor是一个以SQL为中心的流程平台,用于在现代数据栈中构建可靠的API集成。它提供了对黑盒SaaS连接器的开放替代方案,使数据团队能够完全控制其集成管道。Sequor将API执行与数据库融合,支持API和数据库表之间的双向数据流。通过在数据库中存储中间数据,您可以充分利用SQL的功能进行转换、分析和业务逻辑处理。这种统一的执行模型消除了iPaaS式应用程序集成和ETL式数据管道之间的传统界限。Sequor采用代码优先的方法(YAML用于流程,Jinja或Python用于动态参数,SQL用于逻辑),您可以将软件工程最佳实践应用于集成:版本控制、协作、CI/CD和本地开发。

开发

Cap:轻量级、私密的开源 CAPTCHA 替代方案

2025-05-30
Cap:轻量级、私密的开源 CAPTCHA 替代方案

Cap 是一款轻量级、现代化的开源 CAPTCHA 替代方案,它使用 SHA-256 工作量证明,速度快、隐私性强,易于集成。它由一个 JavaScript 组件 (@cap.js/widget) 和一个服务器端组件 (@cap.js/server) 组成,并提供多种扩展包,支持多种运行环境和编程语言,甚至可以在 Docker 中独立运行。与 hCaptcha 相比,Cap 的大小仅为其 1/250,并且由于采用工作量证明机制,无需追踪用户数据。Cap 完全开源,并提供多种模式以适应不同的需求,例如隐形模式和浮动模式。

开发

vrs: 一个基于Lisp的并发编程运行时

2025-05-30
vrs: 一个基于Lisp的并发编程运行时

vrs是一个雄心勃勃的个人软件运行时项目,旨在通过结合Emacs、Erlang、Unix等系统的优秀理念,提供一种充满乐趣且高效的编程体验。它使用一种名为Lyric的嵌入式Lisp方言,支持轻量级进程、消息传递和服务注册等特性,并可以运行数百万个进程而不会阻塞系统。开发者可以利用vrsctl命令行工具进行交互式编程和调试,以及emacs的lyric-mode插件进行高效开发。vrs目前仍在积极开发中,但其创新的并发模型和易于使用的Lisp方言使其极具潜力。

开发

利用AVX-512指令集加速Verifiable Delay Function,赢得5万美元奖金

2025-05-30
利用AVX-512指令集加速Verifiable Delay Function,赢得5万美元奖金

2025年5月,一支名为Crusaders of Rust的战队发现并利用了Linux数据包调度器中的一个use-after-free漏洞,并将其提交给Google的kernelCTF竞赛,角逐5万美元的奖金。文章作者详细描述了其如何通过优化Verifiable Delay Function (VDF)中的计算,将计算时间从1.4秒缩短到0.21秒,最终帮助战队以3.6秒的惊人速度赢得比赛的过程。其优化策略包括:数学优化、将代码转换为C++、利用AVX-512IFMA指令集进行加速以及内联汇编优化。这项工作充分展示了对底层硬件和汇编语言的深入理解,以及对性能优化的极致追求。

De Bruijn 索引和层级:解决 Lambda 演算中的变量捕获问题

2025-05-30
De Bruijn 索引和层级:解决 Lambda 演算中的变量捕获问题

本文介绍了 De Bruijn 索引和层级,这两种方法巧妙地解决了 Lambda 演算中令人头疼的变量捕获问题。通过使用自然数代替变量名,De Bruijn 索引和层级避免了变量重名带来的困扰,简化了替换操作,并方便了等价性比较。文章深入浅出地解释了这两种方法的工作原理,并比较了它们的优缺点,最终指出 De Bruijn 索引在局部操作中更具优势,而 De Bruijn 层级则在移动子表达式时更方便。 这篇文章适合对 Lambda 演算有一定了解的程序员阅读。

Microsandbox:安全运行不受信任代码的利器

2025-05-30
Microsandbox:安全运行不受信任代码的利器

Microsandbox 是一款安全运行不受信任代码的工具,解决了传统方法(本地运行、容器、虚拟机、云端方案)的不足。它快速启动,支持多种编程语言(Python、JavaScript、Rust),并提供SDK和项目管理工具,方便开发者安全地运行AI生成的代码、用户提交的代码或实验性代码。其独特的微型虚拟机技术,确保了代码执行的隔离性,即使恶意代码也无法威胁系统安全。无论是开发环境搭建、数据分析,还是构建AI助手,Microsandbox 都能提供安全高效的解决方案。

开发

神秘消失的编程语言W++开源了

2025-05-30
神秘消失的编程语言W++开源了

W++ 是一款用于学习、娱乐和创作 meme 的实验性编程语言,因其独特的“伪面向对象编程”(OOPSIE)原则和异步 lambda 表达式而备受关注。在 VSCode 市场获得超过 33,000 次下载后,W++ 离奇下架。现在,该项目的完整源代码已开源,包括用 C# 编写的词法分析器、解析器和解释器,以及配套的 VSCode 扩展。作者 Ofek Bickel 希望通过这个项目证明,即使是玩笑性质的编程语言也能教授严肃的编程技能。

开发

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

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

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

开发

开源对象存储MinIO社区版“阉割”引发争议

2025-05-30
开源对象存储MinIO社区版“阉割”引发争议

流行的开源对象存储解决方案MinIO对其社区版进行了重大更改,引发了用户的争议。该公司从免费版本中删除了关键的基于Web的管理功能,引导用户使用命令行工具或升级到付费计划。此举激怒了部分用户,他们认为这是对免费软件的“阉割”,并开始寻找替代方案,例如SeaweedFS、Garage和Zenko。MinIO则回应称此举是为了维持项目的持续发展。

开发 MinIO

Go语言实现的交互式Git添加工具

2025-05-30
Go语言实现的交互式Git添加工具

这是一个用Go语言编写的Git交互式添加工具,它重现了`git add -i`和`git add -p`的功能,并增加了强大的新特性,例如全局过滤器(使用正则表达式过滤代码块)、自动分割代码块以及增强的搜索和导航功能。该工具可以作为Git命令安装,方便用户使用。它还包含全面的单元测试,确保了其稳定性和可靠性。

开发

Rust/Axum 和 Svelte/SvelteKit 的单体部署:一种优雅的方案?

2025-05-30

本文介绍了一种在 Web 开发中部署单页应用 (SPA) 的非传统方法:将构建好的 SPA 直接嵌入到后端二进制文件中。这种方法优点在于简化部署(只有一个二进制文件)和代码(无需处理 CORS),但缺点是增加了二进制文件大小、内存使用以及略微降低了开发体验(没有前端热重载)。作者使用 Rust/Axum 和 Svelte/SvelteKit 作为示例,详细介绍了使用 monorepo 和 Moon 构建工具进行项目结构设置,以及如何使用 rust-embed 库将前端构建产物嵌入后端二进制文件。最终效果展示了一个简单的 SPA,能够从后端获取数据并进行页面导航。

开发

Racket 中 eval 函数的利与弊

2025-05-30

本文深入探讨了动态语言中 `eval` 函数的优缺点,特别是它在 Racket 语言中的应用。作者以生动的比喻,将 `eval` 函数比作向他人转述指令的过程,阐述了 `eval` 的使用会增加程序的复杂性和难以理解性,因为它引入了语言翻译和环境依赖的问题。作者认为,虽然 `eval` 在某些情况下是必要的,例如在与外部系统交互时,但应该谨慎使用,并尽可能明确其执行上下文。在 Racket 中,`eval` 的行为与程序执行环境密切相关,这使得开发者需要格外注意命名空间的管理。总而言之,`eval` 是一把双刃剑,需要小心谨慎地使用。

开发 eval

现代 C++ 中的 RAII:资源获取即初始化

2025-05-30

本文深入浅出地讲解了现代 C++ 中的 RAII(资源获取即初始化)机制。RAII 通过将资源管理与对象生命周期绑定,利用构造函数获取资源,析构函数释放资源,从而避免资源泄漏。文章以文件描述符为例,展示了如何通过 RAII 实现安全的文件操作,并解释了“三法则”、“五法则”以及“零法则”的概念,以及如何避免资源管理中的常见错误。最终,文章总结了 RAII 的优势和局限性,并提供了进一步阅读的资源。

开发

C++无锁队列:原子操作与内存排序的博弈

2025-05-30

本文深入探讨了C++中的原子操作和内存排序,并以此构建了一个简单的无锁队列。作者首先解释了原子操作的不可分割性和不同内存排序模式(relaxed, release-acquire, seq_cst)对并发编程的影响,并用多个例子说明了它们如何避免数据竞争。随后,作者尝试使用原子操作和内存排序构建一个基于链表的无锁队列,并解释了enqueue和dequeue操作的实现细节,但同时也指出了该实现未解决ABA问题。文章内容深入浅出,适合有一定C++并发编程基础的读者学习。

开发 无锁队列

OpenBao Secret Manager推出命名空间功能,增强安全性与可扩展性

2025-05-30
OpenBao Secret Manager推出命名空间功能,增强安全性与可扩展性

OpenBao Secret Manager发布了强大的命名空间功能,实现了强大的多租户和细粒度隔离。每个命名空间如同一个独立的OpenBao实例,拥有自己的策略、身份验证方法和密钥引擎。这增强了安全性,允许团队或组织独立管理其秘密,并简化了大规模部署的管理。未来,命名空间将进一步提升OpenBao的水平可扩展性,支持高效处理大量不常用资源,无需一次性加载整个系统状态。

开发

纯Bash实现的轻量级MCP服务器

2025-05-30
纯Bash实现的轻量级MCP服务器

这个项目用纯Bash实现了一个轻量级的Model Context Protocol (MCP)服务器,避免了Node.js或Python等重量级运行时的开销。它完整实现了JSON-RPC 2.0协议和MCP协议,支持动态工具发现、JSON配置文件和自定义工具扩展。通过简单的命令行即可运行,并提供详细的示例,演示如何创建自己的MCP服务器,例如一个天气信息服务器。虽然它没有并发处理、内存管理和流式响应等功能,但对于AI助手和本地工具执行来说已经足够。

开发 JSON-RPC
1 2 72 73 74 76 78 79 80 213 214