分类: 开发

Telescope:基于 Web 的 ClickHouse 日志查看器

2025-02-26
Telescope:基于 Web 的 ClickHouse 日志查看器

Telescope 是一款基于 Web 的日志查看工具,旨在提供直观的界面来探索存储在 ClickHouse 数据库中的日志数据。它支持多种类型的日志,用户可以轻松配置连接,并使用查询来高效地过滤、搜索和分析日志。目前处于测试阶段,但已提供一个可供体验的在线版本,未来计划添加更多功能,例如保存查询预设、支持自定义SQL语句等。

迭代对数编码:一种新型浮点数编码格式

2025-02-26

本文介绍了一种新颖的实数编码格式——迭代对数编码。不同于传统的浮点数表示方法,该格式使用一系列符号位来表示数字,每个符号位表示数字在特定范围内的正负性。这种方法能够表示范围极广的数字,包括那些传统浮点数无法表示的极大或极小值,并具有独特的字典序特性。虽然精度分布不均匀,但该方法在表示特定范围的数字时具有优势,尤其适用于需要处理极大或极小值以及对精度要求不高的场景。

开发

Windows 文件名中的神秘方块:UTF-16 代理对的奇遇

2025-02-26

本文讲述了Windows系统中一个奇特的现象:任务管理器中出现许多名称包含奇怪方块的小型可执行文件。这些文件并非恶意程序,而是由于文件名使用了UTF-16代理对造成的显示问题。UTF-16为了兼容扩展的Unicode字符集,使用了代理对来表示超出基本多语言平面的字符。当字符串处理产生孤立或格式错误的代理对时,就会导致文件名无法显示。文章解释了代理对的概念,并提供了一个Python脚本,可以生成包含不可渲染文件名的文件,从而重现这一现象。

开发 代理对

DeepGEMM:高效FP8矩阵乘法库,性能超越专家级调优库

2025-02-26
DeepGEMM:高效FP8矩阵乘法库,性能超越专家级调优库

DeepGEMM是一个针对NVIDIA Hopper架构Tensor Core优化的FP8通用矩阵乘法(GEMM)库。它采用轻量级JIT编译,无需安装时编译,支持普通和混合专家(MoE)分组GEMM。通过CUDA核心两级累加(提升)来解决FP8精度问题,其简洁的设计(~300行核心代码)使其易于学习和理解Hopper FP8矩阵乘法优化技术。尽管轻量级,DeepGEMM的性能在各种矩阵形状上都匹配甚至超越了专家级调优库。

开发 FP8 GEMM Hopper

EdgeDB更名为Gel,并全面拥抱PostgreSQL生态

2025-02-26
EdgeDB更名为Gel,并全面拥抱PostgreSQL生态

数据库创业公司EdgeDB正式更名为Gel,并宣布其6.0版本全面支持SQL,原生支持PostgreSQL协议。Gel将自己定位为PostgreSQL的前端层,类似于TypeScript之于JavaScript,通过智能编译器提升数据模式和查询效率。此次更名旨在提升品牌清晰度和简洁性,并更好地融入PostgreSQL蓬勃发展的生态系统。Gel 6.0 的发布标志着其从仅支持其专属查询语言EdgeQL转向支持SQL,降低了使用门槛,扩展了应用场景。

开发 Gel

MyCoder:命令行AI编码助手,帮你搞定一切编码难题

2025-02-25
MyCoder:命令行AI编码助手,帮你搞定一切编码难题

MyCoder是一个强大的基于命令行的AI代理系统,可以执行任意任务,尤其擅长编码任务。它采用模块化工具架构,可以与文件交互、执行命令、发出网络请求以及生成子代理以并行执行任务。只需一个Anthropic API密钥,MyCoder就能修复构建错误、更新依赖项、重构代码、添加新功能等。它支持交互模式和从文件读取提示,并具有智能日志记录和自修改能力。MyCoder 使用 Claude API,并遵循约定式提交和 GitHub Actions 进行持续集成和发布。

开发

ggwave:基于声音的超低带宽数据传输库

2025-02-25
ggwave:基于声音的超低带宽数据传输库

ggwave是一个轻量级的开源库,允许通过声音在无网络连接的设备之间传输少量数据。它采用FSK调制方案,带宽在8-16字节/秒之间,并使用纠错码提高鲁棒性。ggwave可应用于物联网、音频二维码、设备配对等场景,并提供多种平台的示例应用和便捷的安装方式。该库支持多种音频后端,用户可根据自身需求选择。

开发 声音通信

网页交互新范式:Invoker 命令详解

2025-02-25

本文详解了网页交互的新提案:Invoker 命令。它通过在 `` 元素上添加 `commandfor` 和 `command` 属性,以更易访问和声明的方式为按钮分配行为,减少 JavaScript 代码量。该提案定义了 `CommandEvent` 事件,允许开发者自定义交互行为,并对 `` 和 `` 元素提供了内置支持,同时注重无障碍性和安全性。此外,它还支持自定义命令,并提供了丰富的示例代码,展示如何使用该提案简化网页交互开发。

开发 无障碍性

在浏览器中运行Python的未来:SPy项目初探

2025-02-25
在浏览器中运行Python的未来:SPy项目初探

为了提升Python代码在浏览器中的运行速度,Anaconda和Cloudflare的工程师们开发了SPy项目。SPy并非简单的Python移植,而是一种全新的语言,其代码可以混合编译时和运行时执行的代码(分别称为蓝代码和红代码)。蓝代码类似于Python代码,可在编译时进行预计算,从而大幅提升性能。SPy代码可以被解释执行或编译成C代码,再进一步编译成原生二进制或WebAssembly字节码。通过将一个生成艺术的例子从PyScript移植到SPy,作者展示了SPy带来的显著性能提升,速度提升超过100倍。虽然SPy仍处于早期阶段,但其展现出的潜力令人瞩目,有望在未来实现Python代码在浏览器中以接近Rust的速度原生运行。

开发

PyPy的低开销统计内存分析:巧妙结合VMProf和垃圾收集器

2025-02-25

本文介绍了一种针对PyPy的低开销统计内存分析方法。该方法并非保存每次内存分配,而是仅保存每n个分配字节,巧妙地将采样逻辑整合到PyPy的垃圾收集器(GC)的bump pointer分配器检查中。通过这种方式,即使开启内存采样,快速路径也与未开启采样时完全相同,从而极大地降低了性能开销。实验结果表明,该方法在不同采样率下具有良好的性能表现,为内存分析提供了更精细的控制和更低的开销。

开发 内存分析

大型语言模型:文档排序的意外之喜

2025-02-25
大型语言模型:文档排序的意外之喜

本文论证了大型语言模型(LLM)在列表式文档排序中的有效性,并提出了一些复杂问题可以通过转化为文档排序问题来解决。作者以利用补丁差异定位N日漏洞为例,展示了如何将这一安全工程问题转化为文档排序问题。通过将补丁差异(文档)根据其与安全建议(查询)的相关性进行排序,LLM可以高效地定位修复漏洞的特定函数。这项技术已在多个安全会议上得到验证,并被证明可以应用于其他安全问题,如模糊测试目标选择和优先级排序。未来改进方向包括对排名结果进行分析和生成可验证的证据,例如自动生成可测试的漏洞利用程序。

开发 文档排序

OCaml生态系统利器:Dune构建系统及一系列实用库

2025-02-25
OCaml生态系统利器:Dune构建系统及一系列实用库

本文介绍了OCaml编程语言的强大生态系统组件。Dune (前身为Jbuilder)是一个强大的可组合构建系统;Base库替代了OCaml标准库,提供更好的性能和可移植性;Core库在Base基础上扩展了更多功能;Async库支持异步编程;Bonsai库用于构建声明式增量状态机;Incremental库用于构建自调整计算;Base_quickcheck库用于基于属性的随机测试;Patdiff库是一个针对代码和配置文件优化的差异工具。这些库共同构成了OCaml开发的坚实基础,提升了开发效率和代码质量。

开发 Base

免费的 Gemini 代码助手:提升开发者效率

2025-02-25
免费的 Gemini 代码助手:提升开发者效率

谷歌推出了免费的 Gemini 代码助手,集成到 Visual Studio Code 和 JetBrains IDE 中,为个人开发者提供代码补全、生成和聊天功能。它拥有比其他免费助手高 90 倍的代码补全次数限制,并支持高达 128,000 个输入令牌的上下文窗口,允许开发者处理大型文件。开发者可以使用自然语言(多种语言)进行代码生成、解释和改进,例如生成简单的 HTML 表单或编写发送每日天气预报的脚本。这将大大提高开发效率,让开发者专注于创造性工作。

开发

GoatDB:轻量级NoDB数据库,赋能Deno和React开发

2025-02-25
GoatDB:轻量级NoDB数据库,赋能Deno和React开发

GoatDB是一个实时、版本控制的数据库,适用于Deno和React,部署极其便捷。它非常适合原型设计、自托管、单租户应用程序以及无需大型后端或复杂数据库的超轻量级多租户设置。GoatDB具有客户端处理、离线优先、实时协作等特性,并提供React hooks简化状态管理。其高效的增量查询机制、内置同步功能以及强大的安全模型,使其成为快速原型开发和协作项目的理想选择。

开发

浏览器使用:赋能AI控制你的浏览器

2025-02-25
浏览器使用:赋能AI控制你的浏览器

想象一下,你的AI可以像人一样操控你的浏览器:搜索信息、点击链接、甚至帮你完成复杂的网络任务。Browser-Use 正是这样一个强大的库,它允许你用 Python 代码编写 AI 代理,直接控制浏览器执行各种操作,例如在Reddit上搜索内容、添加购物清单、甚至在Salesforce中添加联系人。该项目提供易于使用的API,并有配套的UI示例和详细文档,甚至还组建了委员会来定义浏览器代理的UI/UX最佳实践。无论是开发者还是AI研究者,都能从这个项目中获益良多。

开发

Hyperspace:利用APFS克隆技术释放Mac磁盘空间的神器

2025-02-25
Hyperspace:利用APFS克隆技术释放Mac磁盘空间的神器

资深开发者John Siracusa推出了一款名为Hyperspace的Mac应用,它巧妙地利用APFS文件系统的克隆特性,帮助用户释放宝贵的磁盘空间。不同于其他删除重复文件的应用,Hyperspace通过将具有相同内容的文件转换为共享同一数据实例的克隆文件,从而实现无损回收空间。文章详细介绍了Hyperspace的开发历程,以及作者在使用SwiftUI和Swift 6过程中的经验和挑战。尽管Hyperspace操作文件的方式存在风险,但其强大的功能和易用性使其成为Mac用户的一大福音。

开发

Elixir拥抱Python:Pythonx让Livebook实现多语言编程

2025-02-25

为了解决Elixir在数据科学领域与现有Python生态系统整合的难题,本文介绍了Pythonx项目。Pythonx将Python解释器嵌入Erlang虚拟机,实现了Elixir和Python之间的数据自动转换和代码评估,并简化了虚拟环境管理。通过Pythonx,开发者可以在Livebook笔记本中无缝地混合使用Elixir和Python代码,极大提升了开发效率,同时也提升了Livebook的实用性。文章还讨论了GIL锁等潜在问题及替代方案,并介绍了Fine项目,一个用于简化NIF开发的C++库。

开发 Livebook

编程语言新思路:类型细化与编译时安全

2025-02-25

一篇博客文章探讨了编程语言的未来方向,作者提出了若干富有创意的特性设想,例如基于类型细化的函数重载,以及在C风格结构体中运用联合类型和类型细化来优化内存使用。文章还介绍了如何在编译时保证内存安全,并提出“assume”函数的概念,允许程序员在满足特定条件下绕过安全检查,方便调试。这些新颖的设想旨在提升编程语言的类型安全性和效率,值得关注。

Git 高级配置:核心开发者如何配置 Git?

2025-02-25
Git 高级配置:核心开发者如何配置 Git?

本文深入探讨了鲜为人知的 Git 配置设置,这些设置可以显著提升 Git 使用体验。作者分享了 Git 核心开发者们在“春季大扫除”实验中发现的最佳配置,并将其分为三大类:明显提升 Git 使用体验的设置(如改进分支排序、diff 算法、推送和获取操作)、无害且偶尔有用的设置(如自动更正提示、提交时显示 diff 信息、重用冲突解决方案),以及根据个人喜好选择的设置(如改进合并冲突、rebase 默认设置、文件系统监控)。作者详细解释了每个设置的作用,并提供了相应的命令,帮助读者优化自己的 Git 配置,提升效率。

开发

绕过TCP/UDP:一场网络实验的意外之旅

2025-02-25
绕过TCP/UDP:一场网络实验的意外之旅

作者尝试创建一个自定义的网络传输协议,绕过TCP和UDP,探究其在不同操作系统和网络环境下的行为。实验发现,自定义协议在本地环回测试中部分成功,但在跨网络环境下,除AWS外,大部分云服务器和网络设备会丢弃自定义协议包,并存在跨平台兼容性差等问题。最终结论:除非必要,还是乖乖使用TCP或UDP吧!

开发

MSVC Address Sanitizer (ASan) 的重大升级

2025-02-25
MSVC Address Sanitizer (ASan) 的重大升级

微软大幅提升了 MSVC Address Sanitizer (ASan) 的质量。他们将 ASan 的主要部分上游到 LLVM,从而能够更快地整合 LLVM 社区的改进。此外,他们还将 ASan 集成到 MSVC 代码库中,包括编译器、链接器和工具,从而在持续集成中检测内存安全问题。Visual Studio 2022 版本 17.13 中修复了许多问题,包括减少误报、改进错误报告和处理多进程场景。

开发 MSVC ASan

Xcode频繁联网:隐私隐患与构建速度瓶颈

2025-02-25

开发者Jeff Johnson发现Xcode在构建项目时频繁连接Apple服务器,导致构建速度变慢,尤其是在“收集供应输入”阶段。他通过Little Snitch禁用与developerservices2.apple.com的连接后,解决了构建速度问题。此外,他还发现Xcode在启动和打开项目时也会连接到其他Apple服务器,例如devimages-cdn.apple.com和appstoreconnect.apple.com,这些连接似乎并非必需,并可能上传开发者信息给Apple。Jeff认为Xcode的行为如同一个开发者数据收集工具,侵犯了开发者隐私。

开发

HTTP/2:为什么在Ruby HTTP服务器中它并不重要

2025-02-25

本文探讨了HTTP/2协议在Ruby HTTP服务器(例如Puma)中的应用价值。作者认为,HTTP/2的主要优势在于通过多路复用提高互联网环境下的页面加载速度,但在局域网环境中,其优势并不明显。由于局域网内的往返时间极短,并且连接通常保持较长时间,因此TCP慢启动的影响微乎其微。此外,HTTP/2的“服务器推送”功能已被证明弊大于利,已被更优雅的103 Early Hints取代。作者建议将HTTP/2的处理留给负载均衡器或反向代理,以简化应用服务器的部署和维护,提高效率。

开发

LLPlayer:一款为语言学习而生的多语言字幕神器

2025-02-25

LLPlayer 是一款开源的媒体播放器,主打语言学习功能。它支持双字幕显示、AI 实时字幕生成(支持 99 种语言)、实时翻译(支持 134 种语言)、OCR 字幕识别、多种视频和字幕格式播放、一键词典查询等功能。基于 OpenAI Whisper、Google Translate、DeepL 和 ffmpeg 等技术,LLPlayer 效率极高,并提供字幕侧边栏和防剧透功能。所有代码均使用 C# 编写,方便定制。

开发

DeepEP:高效的专家并行通信库

2025-02-25
DeepEP:高效的专家并行通信库

DeepEP是一个为混合专家(MoE)和专家并行(EP)量身定制的通信库。它提供高吞吐量和低延迟的全对全GPU内核(也称为MoE调度和合并)。该库还支持低精度运算,包括FP8。DeepEP针对DeepSeek-V3论文中提出的组限制门控算法进行了优化,提供了一套针对非对称域带宽转发的内核,例如从NVLink域转发数据到RDMA域。这些内核具有高吞吐量,适用于训练和推理预填充任务。此外,它们还支持SM(流多处理器)数量控制。对于延迟敏感的推理解码,DeepEP包含一组低延迟内核,使用纯RDMA来最大限度地减少延迟。该库还引入了一种基于hook的通信计算重叠方法,该方法不占用任何SM资源。

在AI时代,博客写作还有意义吗?

2025-02-25
在AI时代,博客写作还有意义吗?

作者探讨了在ChatGPT等AI盛行的时代,博客写作的价值。虽然AI可以轻易获取和整合信息,但博客写作依然重要:它能巩固自身知识,帮助他人,建立个人品牌(虽然这很难单靠博客实现),获得成就感,以及构建写作作品集,展现思考能力,为职业发展加分。作者认为,AI对博客的影响主要在于降低了读者互动带来的成就感,但这并不足以否定博客的价值。

开发

Uncle Bob 与 John Ousterhout 关于软件设计的论战

2025-02-25
Uncle Bob 与 John Ousterhout 关于软件设计的论战

Robert “Uncle Bob” Martin 和 John Ousterhout 就软件设计理念展开了一场精彩的论战,涵盖了方法长度、代码注释和测试驱动开发(TDD)等关键议题。双方就代码分解的程度、注释的必要性以及 TDD 的优缺点展开了激烈的辩论,并通过代码示例和具体的场景分析来支持各自的观点。这场论战揭示了软件设计中权衡取舍的重要性,以及在追求简洁性与可读性时应避免走向极端。

开发 代码规范

Lua DSL:构建HTML生成器的巧妙方法

2025-02-24
Lua DSL:构建HTML生成器的巧妙方法

本文介绍了如何在Lua中构建领域特定语言(DSL)来生成HTML。作者巧妙地利用Lua的语法特性,如可选括号和函数链式调用,并结合函数环境和元表技术,实现了简洁优雅的HTML代码生成。通过自定义`__index`元方法动态生成HTML标签函数,并利用`append_all`函数高效地拼接字符串,最终构建了一个功能完善的HTML生成器DSL,有效提升了代码可读性和开发效率。文章还强调了HTML转义的重要性,避免了潜在的安全风险。

开发 HTML生成器

Electro:一款超高速轻量级图片查看器

2025-02-24
Electro:一款超高速轻量级图片查看器

Electro 是一款使用 Rust 构建的超高速轻量级图片查看器,它具有开发者优先的设计理念,内置命令行终端,并支持本地和网络图片的即时查看。其核心在于极致的性能,加载图像几乎无延迟。Electro 开源且易于扩展,开发者可以贡献代码或构建自己的版本。

Geocodio 的免费层:在防止滥用和支持合法用户之间取得平衡

2025-02-24
Geocodio 的免费层:在防止滥用和支持合法用户之间取得平衡

Geocodio 坚持提供免费服务层,但面临滥用风险。起初,简单的IP限制导致用户体验差,并浪费了大量客服时间。后来,他们转向更精细的风险评分系统,综合考虑数十个因素,例如浏览器、IP地址、邮箱等,自动识别并处理高风险注册。中风险注册可能需要验证码或邮箱验证。此系统极大减少了人工干预,平衡了安全性和用户体验,保证了免费层的持续运行。

1 2 151 152 153 155 157 158 159 213 214