分类: 开发

纯JS打造:CSV转可搜索HTML表格神器

2025-05-22
纯JS打造:CSV转可搜索HTML表格神器

还在为处理CSV数据而烦恼?这个纯JavaScript项目能帮你轻松将CSV文件转换成一个漂亮、可搜索、可过滤的HTML表格!只需几行代码,就能将你的数据可视化,并支持自定义格式化、下载和嵌入。还在等什么,快来体验吧!

开发

从COBOL代码中挖掘出的传奇故事

2025-05-22

作者在维护20万行COBOL代码时,发现了许多巧妙的技巧和历史痕迹。例如,COBOL使用基于10的数值系统,通过REDEFINES语句实现多语言支持,并利用数据定义的特性进行字符串解析。此外,作者还发现了用于提前结束批处理作业的技巧,以及一个包含前800个自然数的奇特文件。最后,作者指出UNIX的dd命令源于COBOL中的DD语句。这些发现揭示了老旧系统中隐藏的智慧与历史。

开发

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

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

arXivLabs是一个开放平台,允许协作者直接在arXiv网站上开发和分享新功能。参与者必须认同arXiv的开放、社区、卓越和用户数据隐私等价值观。你有好的想法吗?加入arXivLabs,为arXiv社区增值!

开发

iText Core表格渲染性能优化:从5分钟到7秒

2025-05-21
iText Core表格渲染性能优化:从5分钟到7秒

Apryse工程师Guust优化了iText Core表格渲染性能。通过避免重复的边框合并计算和不必要的标签开销,5万单元格的表格渲染时间从5分钟缩短到7秒。优化主要集中在`CollapsedTableBorders#getVerticalBorder`函数和标签处理上,通过缓存计算结果、移除冗余函数调用和批量添加标签等方式显著提升了性能。这项优化已包含在iText Core 9.1.0版本中。

开发 PDF渲染

Rocky Linux 10正式支持RISC-V架构

2025-05-21

Rocky Linux 10即将发布,令人兴奋的是,它将正式支持RISC-V架构!这得益于Fedora RISC-V社区和Rocky的AltArch SIG团队的辛勤工作。该版本将包含一个riscv64gc构建,目标平台与Fedora相同,例如StarFive VisionFive 2 (VF2)、QEMU和SiFive HiFive Premier P550。虽然部分功能在P550等平台上可能受限,但VisionFive 2和QEMU上的开箱即用体验令人期待。这个项目始于2024年初,与Fedora RISC-V项目紧密合作,体现了开源社区的强大力量。

开发

开源项目ACE-RISCV:面向RISC-V的可信计算框架

2025-05-21
开源项目ACE-RISCV:面向RISC-V的可信计算框架

ACE-RISCV是一个开源项目,旨在提供一个具有形式化验证安全监视器的可信计算框架。它基于规范架构,目标是RISC-V,并可移植到其他架构。其形式化验证工作重点在于安全监视器的实现。该项目支持本地认证,并使用后量子密码学(PQC),包括ML-KEM、SHA-384和AES-GCM-256。目前基于RISC-V 64位架构,并提供详细的构建和运行指南。

开发 可信计算

PSPACE vs P:空间复杂度超越时间的可能?

2025-05-21
PSPACE vs P:空间复杂度超越时间的可能?

计算理论的核心问题之一是P与PSPACE复杂度类之间的关系。P包含可在合理时间内解决的问题,而PSPACE则对应空间复杂度。长期以来,人们普遍认为PSPACE比P更大,因为空间可以复用,而时间却无法逆转。然而,证明这一猜想需要找到PSPACE中无法在多项式时间内解决的问题。文章回顾了Hopcroft, Paul和Valiant在1975年取得的突破,他们证明了空间比时间略强,但随后进展停滞。直到Ryan Williams打破了僵局,他的研究为解决P vs PSPACE问题提供了新的思路。

开发 P vs PSPACE

Appwrite Sites: 一站式网站部署与托管

2025-05-21
Appwrite Sites: 一站式网站部署与托管

Appwrite 推出了全新产品 Sites,让你可以直接在 Appwrite 中部署和托管网站和 Web 应用。告别多平台切换和繁琐配置,只需构建、部署,即可上线。Sites 支持静态站点和 SSR 应用,并集成 Git、全球 CDN、DDoS 保护等功能,可与 Appwrite 的数据库、函数、存储和身份验证等服务无缝集成。同时提供多种一键式部署模板,并支持自托管。Appwrite Sites 目前免费使用,直到 2025 年 7 月 1 日。

开发 Appwrite

Google AI Studio:Gemini 2.5 Pro赋能的AI应用开发利器

2025-05-21
Google AI Studio:Gemini 2.5 Pro赋能的AI应用开发利器

Google AI Studio迎来重大更新,集成Gemini 2.5 Pro模型,显著提升代码生成能力。开发者可通过简单的文本、图片或视频提示,快速构建和部署AI驱动型网页应用。新版本还整合了Imagen、Lyria RealTime和Veo等多模态模型,支持一键部署至Cloud Run,并提供便捷的代码版本比较和回滚功能。此外,新增原生音频支持和URL Context工具,进一步增强了应用的交互性和信息获取能力。

Go调度器:从简陋到强大

2025-05-21
Go调度器:从简陋到强大

本文深入探讨了Go语言调度器的演进历程,从早期的单一全局运行队列的低效模型,到如今高效的GMP模型(Goroutine、Machine、Processor)。文章详细解释了GMP模型中各个组件的角色和运作机制,包括goroutine的创建、预取、系统调用处理以及netpoll在网络I/O和文件I/O中的作用,并阐述了协作式和非协作式抢占机制。通过对Go运行时源码的分析,读者可以更深入地理解Go并发模型的精妙之处,从而编写更高效的并发程序。

开发

Shopify 推出 Storefront Web Components:简化电商集成

2025-05-21
Shopify 推出 Storefront Web Components:简化电商集成

Shopify发布了Storefront Web Components,这是一个基于HTML组件的套件,允许开发者轻松地将Shopify的电商功能集成到任何网站。通过几行HTML代码,即可展示产品、系列和结账流程。该组件处理了与Shopify Storefront API交互的复杂性,开发者无需编写复杂的JavaScript代码,即可创建定制化的购物体验。无论是嵌入现有内容还是构建新页面,Storefront Web Components都适用。

开发 电商集成

LlamaIndex 的 monorepo 管理工具 LlamaDev:从 Poetry+Pants 到 uv+LlamaDev 的进化

2025-05-21
LlamaIndex 的 monorepo 管理工具 LlamaDev:从 Poetry+Pants 到 uv+LlamaDev 的进化

LlamaIndex 项目拥有 650 多个 Python 包,维护如此庞大的 monorepo 是一项挑战。最初使用 Poetry 管理单个项目,Pants 协调测试,但随着规模扩大,构建速度和缓存服务器成为瓶颈。为了解决这些问题,LlamaIndex 团队开发了 LlamaDev,它用 uv 替换了 Poetry,并自行处理依赖关系图和测试触发。LlamaDev 显著提高了构建速度,简化了调试过程,并改善了开发者体验,使贡献者更容易参与项目。

开发

Langfuse推出自定义仪表盘:释放LLM使用数据的强大功能

2025-05-21
Langfuse推出自定义仪表盘:释放LLM使用数据的强大功能

Langfuse在第三天发布了可自定义的仪表盘,为直接在Langfuse UI中可视化LLM使用提供了强大的方法。无论您是想追踪延迟趋势、监控用户反馈,还是将成本与性能关联起来,新的仪表盘都能让您构建所需的图表。对于那些更喜欢使用自己的分析工具的人,我们通过API提供了相同的查询功能。这篇文章详细介绍了从产品理念到技术实现、测试和发布的全过程,以及在构建灵活的实时洞察LLM管道的过程中学到的经验教训。通过抽象数据模型、构建灵活高效的查询引擎和仪表盘构建器,Langfuse成功实现了可自定义的仪表盘,并通过beta测试和用户反馈不断迭代改进,最终提供了更多图表组件、可调整大小的小部件和更便捷的工具支持,还推出了Langfuse管理的仪表盘,为用户提供有价值的预设主题。

开发

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

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

arXivLabs是一个开放平台,允许开发者与arXiv社区合作,直接在arXiv网站上开发和分享新功能。参与者必须认同arXiv的开放、社区、卓越和用户数据隐私的价值观。如果你有提升arXiv社区价值的想法,欢迎了解arXivLabs。

开发

Chromium包含图可视化:一个150MB的GraphML文件

2025-05-21
Chromium包含图可视化:一个150MB的GraphML文件

本文作者使用其clang-include-graph工具,可视化了Chromium项目的包含图。这需要构建Chromium以生成compile_commands.json文件,然后使用clang-include-graph生成GraphML文件。生成的GraphML文件大小达150MB,包含14万个节点和130万条边。作者使用Gephi软件进行可视化,并通过Python脚本进行数据分析,展示了Chromium代码库的包含关系,以及一些有趣的统计数据,例如最大的强连通分量包含92个节点,却贡献了99%的循环。

开发

LLM函数调用难以扩展:代码编排更简单高效

2025-05-21
LLM函数调用难以扩展:代码编排更简单高效

直接将工具调用的完整输出反馈给大型语言模型(LLM)成本高且速度慢。文章指出,使用输出模式获取结构化数据,让LLM通过生成的代码来编排处理过程,是一种更简单高效的方法。传统方法中,将工具输出作为消息反馈给LLM,让其决定下一步操作,在数据量小时有效,但面对真实世界的大量数据(例如,从Linear和Intercom的MCP服务器获取的JSON数据),这种方法会迅速失效。文章建议使用代码执行作为数据处理的基本方式,利用变量作为内存,通过代码编排多个函数调用,实现可扩展的数据处理,并解决LLM处理大量数据时存在的成本高、速度慢和可能丢失数据的问题。 这需要构建安全的、无状态的AI运行时环境,目前仍处于早期阶段。

开发 代码编排

Devstral:开源LLM在软件工程基准测试中超越GPT-4.1-mini

2025-05-21
Devstral:开源LLM在软件工程基准测试中超越GPT-4.1-mini

Mistral AI和All Hands AI合作推出了Devstral,一个用于软件工程任务的自主式大型语言模型(LLM)。Devstral在SWE-Bench Verified基准测试中表现出色,得分超过46.8%,比之前的开源模型高出6%以上,甚至超过了GPT-4.1-mini。它能够处理复杂的软件工程问题,例如理解大型代码库中的上下文关系和识别细微的bug。Devstral轻量级,可在单RTX 4090或32GB RAM的Mac上运行,并支持本地部署、企业级应用和Copilot集成。该模型已开源,并提供API和多种下载方式。

开发

无需CRDT或OT的协同文本编辑

2025-05-21

本文介绍了一种无需冲突免费复制数据类型(CRDT)或操作转换(OT)的协同文本编辑方法。该方法通过为每个字符分配全局唯一ID,并使用“在…之后插入”操作来解决并发编辑问题。服务器根据操作字面意思更新状态,客户端使用服务器协调来处理乐观本地更新。这种方法简单易懂,且比CRDT/OT更灵活,允许自定义操作和功能,例如处理富文本和权限控制。作者还开发了一个名为Articulated的npm库来辅助实现该方法。

开发 OT

Windows 11跨设备续接:告别中断体验

2025-05-21
Windows 11跨设备续接:告别中断体验

微软在Build 2025大会上展示了Windows 11的全新跨设备续接功能,类似于苹果的Handoff功能。该功能允许开发者在其应用中实现跨设备无缝续接,例如在手机上播放Spotify歌曲,然后在Windows电脑上点击任务栏图标即可继续播放。演示中还包括WhatsApp,未来更多第三方应用将支持此功能,为用户提供更流畅的跨设备体验,这似乎也是对之前Project Rome项目的延续和升级。

Ruby中的块、Proc和Lambda:闭包的微妙差异

2025-05-21
Ruby中的块、Proc和Lambda:闭包的微妙差异

本文深入探讨了Ruby中块(blocks)、Proc和Lambda的区别。它们都是用于分组代码的工具,但各有特点:Proc是对象,可以赋值和调用方法,而块只是方法调用的一部分;一个方法调用最多只能有一个块,但可以有多个Proc;Lambda会检查参数数量,Proc不会;Lambda和Proc处理`return`关键字的方式也不同。文章还解释了闭包的概念,以及Proc和Lambda名称的由来,并简要介绍了Lambda演算和匿名函数的背景知识。

开发

链接时优化 (LTO): 编译器优化的下一步?

2025-05-21
链接时优化 (LTO): 编译器优化的下一步?

本文探讨了链接时优化(LTO)技术,它通过在链接阶段进行优化来提升程序性能。传统编译器在单个文件内进行优化,而LTO则能跨越多个文件进行更全面的优化,例如内联函数和代码局部性改进。虽然LTO能带来显著的性能提升(例如文中ProjectX项目测试结果显示运行时间减少9.2%,二进制文件大小平均减少20%),但它也需要更长的编译和链接时间以及更多的内存。作者通过对ProjectX和ffmpeg两个项目的实验对比,说明了LTO的优缺点,并建议在未经深度优化的项目中尝试使用LTO,最终的性能提升取决于具体项目情况。

evolved.lua: 一个快速灵活的Lua ECS库

2025-05-21
evolved.lua: 一个快速灵活的Lua ECS库

evolved.lua是一个为Lua设计的快速而灵活的实体组件系统(ECS)库。它采用原型方法存储实体和组件,并使用SoA方式存储组件,从而实现高效的迭代和处理。该库还支持查询、延迟操作和批量操作,并提供实体构建器等功能,方便开发者创建复杂系统。通过luarocks安装或克隆仓库即可使用,文档包含概述、示例和速查表。

开发

Lune:一个独立的Luau运行时

2025-05-21
Lune:一个独立的Luau运行时

Lune是一个用Rust编写的独立Luau运行时,它提供了一个类似于Node.js、Deno或Bun等其他语言运行时的环境。Lune具有完全异步的API,体积小巧(压缩后约5MB),并包含对文件系统、网络和标准IO的全面支持。它还提供了一流的文档,并为Roblox开发者提供了熟悉的运行环境和一个1:1的任务调度器端口。此外,Lune还包含一个可选的库,用于操作Roblox场景和模型文件及其实例。虽然它可以运行一些Roblox游戏,但其主要目标并非完全兼容Roblox,而是提供一个高效、简洁的Luau开发环境。

开发 Luau

arXivLabs:与社区协作者共同开发实验性项目

2025-05-21
arXivLabs:与社区协作者共同开发实验性项目

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

开发

X用户笔记:记下你屏蔽用户的理由

2025-05-21
X用户笔记:记下你屏蔽用户的理由

这是一款名为"X用户笔记"的浏览器扩展程序,它能帮你记住在X平台(前身为Twitter)上屏蔽或静音用户的原因。它会在你屏蔽或静音用户时自动保存链接和当时查看的推文,方便你日后查看。此外,它还允许你为每个用户添加私人笔记,只有你才能看到。你的笔记和屏蔽/静音日志都安全地存储在你的浏览器同步存储中,数据会在你的浏览器配置文件登录的设备间同步。

开发 用户屏蔽

Roto:Rust的嵌入式静态类型脚本语言

2025-05-21
Roto:Rust的嵌入式静态类型脚本语言

Roto是一个为Rust应用程序设计的嵌入式脚本语言,它静态类型,JIT编译,支持热重载,旨在为Rust应用程序提供快速可靠的脚本能力。它源于对Rotonda(一个Rust编写的BGP引擎)的需求,用于编写复杂的路由过滤规则。Roto允许在运行时将Rust类型和方法注册到脚本中,实现无缝集成,避免了类型转换的开销。目前Roto仍处于开发阶段,但已具备基本功能,并提供文档和示例代码。

开发

属性测试胜过单元测试?边界条件的组合爆炸

2025-05-21
属性测试胜过单元测试?边界条件的组合爆炸

本文探讨了属性测试(PBT)与传统单元测试的优劣。作者认为,对于单一输入的函数,单元测试足以覆盖大部分情况,但随着输入参数的增加,边界条件的组合呈指数级增长,PBT通过随机生成输入,更有效地发现隐藏的边界错误。然而,PBT也存在门槛,需要掌握复杂的输入策略生成技巧,而大多数PBT示例过于简单,无法体现其在处理复杂输入空间时的优势。

开发

Overlap:AI视频营销代理商招募产品工程师

2025-05-21
Overlap:AI视频营销代理商招募产品工程师

Overlap是一家YC支持的AI视频营销公司,为媒体公司提供AI驱动的视频搜索、编辑和理解工具。他们正在招聘一名产品工程师,负责开发和维护其基于Next.js前端和Python后端的网络应用,以及优化Google Cloud基础设施。理想候选人应具备Python后端开发经验,熟悉Google Cloud Platform,并对AI和机器学习技术有所了解。这是一个快速发展初创企业的机会,能够接触尖端AI技术,并拥有大量股权激励。

开发

Rust 中的 panic 和 unwrap(): 何时以及如何使用?

2025-05-21

本文深入探讨了 Rust 编程语言中 `panic` 和 `unwrap()` 的使用。作者认为,`panic` 不应用于常规错误处理,而应作为程序中错误的信号。`unwrap()` 在测试、示例代码和原型设计中是可以接受的,但在生产环境中应谨慎使用,因为它可能导致程序崩溃。作者详细解释了运行时不变式,以及为什么有时无法或不需要将所有不变式转换为编译时不变式。最后,作者建议在可能的情况下使用 `expect()` 而不是 `unwrap()`,并讨论了是否应该对 `unwrap()` 的使用进行 lint 的问题。

开发 unwrap

AI编码助手时代,程序员的未来在哪里?

2025-05-21
AI编码助手时代,程序员的未来在哪里?

随着AI编码助手的兴起,初级工程师的角色正在消失。作者认为,这并非暂时的,而是对计算机科学教育的一次挑战。以往,初级工程师主要负责编写代码,而资深工程师负责问题分解和架构设计。但现在,AI可以承担大部分代码编写工作,初级工程师的价值被削弱。作者建议计算机科学教育应回归其数学根源,更加注重培养学生的抽象问题解决能力,并通过考试来检验学生的实际问题解决能力,而非单纯的编码能力。这将帮助学生在AI时代更好地适应行业需求。

开发
1 2 80 81 82 84 86 87 88 213 214