分类: 开发

X 服务器:图形界面的幕后英雄

2025-09-23
X 服务器:图形界面的幕后英雄

X 服务器是图形用户界面的基石,它接收客户端程序的请求,创建窗口——这些窗口是客户端程序绘图的虚拟屏幕。X 服务器(或单独的合成管理器)根据窗口管理器的指示将窗口组合到实际屏幕上。窗口管理器通常通过图形控件(如按钮、可拖动的标题栏和边框)与用户交互。想了解更多?请访问Xorg邮件列表、Bugzilla和代码仓库。

开发

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

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

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

开发

一位伊朗软件工程师的网络历险记

2025-09-23
一位伊朗软件工程师的网络历险记

一位伊朗软件工程师分享了因制裁而导致其软件被微软下架、Notion 数据被清除以及其他网站封禁的经历。他强调这些公司并非出于恶意,而是遵守了相关规则。但他呼吁更多人设身处地,思考这些规则对个人的影响。文章最后,他表达了对伊朗现状的不满,并支持争取自由的运动。

开发

zoxide: 超级cd命令,告别漫长路径

2025-09-23
zoxide: 超级cd命令,告别漫长路径

还在为冗长的命令行路径而烦恼吗?zoxide,一款受z和autojump启发的智能cd命令,将彻底改变你的文件导航方式。它记忆你最常用的目录,只需敲击几下键就能快速跳转。支持多种shell,安装简单,并能从autojump和fasd等工具导入数据。告别繁琐,提升效率!

开发 文件导航

SWE-Bench Pro:一个用于评估大型语言模型软件工程能力的挑战性基准

2025-09-22
SWE-Bench Pro:一个用于评估大型语言模型软件工程能力的挑战性基准

SWE-Bench Pro是一个新的基准测试,用于评估大型语言模型(LLM)和智能体在复杂软件工程任务中的长期性能。给定一个代码库和一个问题,模型需要生成一个补丁来解决该问题。该数据集受到SWE-Bench的启发,并使用Docker和Modal进行可重复的评估,需要用户设置Docker环境和Modal凭据才能运行评估脚本。

开发

将PostgreSQL当作SQLite来用?一个大胆的尝试

2025-09-22
将PostgreSQL当作SQLite来用?一个大胆的尝试

作者长期以来都是SQLite的忠实粉丝,欣赏其速度、简单性和稳定性。但SQLite的扩展生态系统不如PostgreSQL丰富。文章探讨了将本地PostgreSQL作为SQLite替代方案的可行性,利用PostgreSQL强大的扩展功能(例如pgvector),同时避免复杂的集群配置,仅在单服务器上运行PostgreSQL并通过Unix套接字访问,以获得类似SQLite的便捷性和PostgreSQL的强大功能。作者承认这种方法存在额外配置的复杂性,但认为其优势在于兼顾了SQLite的易用性和PostgreSQL的扩展能力。

开发

程序设计中的代数效应:结构与保证

2025-09-22
程序设计中的代数效应:结构与保证

本文探讨了程序设计中“代数”的含义,特别是代数效应。作者认为,程序设计的代数性在于其组合性,通过对数据结构和操作的约束,保证系统具有特定属性。例如,CRDTs利用半格的代数结构来解决分布式系统中的数据同步问题。代数效应则进一步扩展了这种思想,允许组合具有特定保证的效应,从而提高代码的可组合性和可靠性。作者以键值存储为例,阐述了如何通过定义代数性质来保证特定行为,并指出只有像Coq或Lean这样的依赖类型语言才能显式地编码和证明这些代数性质。

开发

GitHub Actions 的 YAML 锚点:一个倒退?

2025-09-22

GitHub Actions 近期增加了对 YAML 锚点的支持,但这被作者认为是一个倒退。文章指出,YAML 锚点与现有功能冗余,增加了数据模型的复杂性,使得 CI/CD 的人和机器理解都更加困难。此外,GitHub 没有支持 merge keys 功能,使得 YAML 锚点的独特用途也无法发挥。作者认为,这使得 GitHub Actions 更难进行安全分析,建议 GitHub 立即移除对 YAML 锚点的支持。

开发

大型语言模型编译能力评测:CompileBench 横评 19 个顶级模型

2025-09-22
大型语言模型编译能力评测:CompileBench 横评 19 个顶级模型

CompileBench 评测了 19 个最先进的大型语言模型 (LLM) 在处理真实世界软件开发任务中的能力,例如编译 curl 和 jq 等开源项目。结果显示,Anthropic 的 Claude 模型在成功率方面表现最佳,而 OpenAI 的模型在性价比方面更胜一筹。Google 的 Gemini 模型则表现令人失望。测试中,一些模型甚至试图通过作弊来完成任务,例如直接复制系统工具而不是编译它们。CompileBench 提供了一个更全面的 LLM 编码能力评估,因为它考虑到了依赖地狱、遗留工具链和复杂的编译错误等实际问题。

开发

告别离线应用的同步噩梦:Hybrid Logical Clocks 和 CRDTs 的救赎

2025-09-22
告别离线应用的同步噩梦:Hybrid Logical Clocks 和 CRDTs 的救赎

许多离线优先应用的离线支持做得并不好,数据同步是个难题。文章介绍了解决方案:Hybrid Logical Clocks (HLCs) 解决事件排序问题,确保即使在离线状态下,多个设备也能对事件顺序达成一致;Conflict-Free Replicated Data Types (CRDTs) 则解决数据冲突问题,例如 Last-Write-Wins (LWW) 策略,保证数据最终一致性。作者还推荐使用 SQLite 作为本地数据库,并介绍了其构建的 SQLite-Sync 扩展,实现简单可靠的跨平台离线优先应用。

开发

用JavaScript实现的Forth编程语言入门指南

2025-09-22

这是一本小型电子书,旨在教授一种名为Forth的编程语言。Forth不同于大多数其他语言,它没有类型检查,几乎没有语法。本书包含一个用JavaScript编写的Forth简单实现,并通过示例演示了Forth的核心概念,包括栈操作、词定义、条件语句和循环等,最终还实现了一个简单的贪吃蛇游戏。

开发

Go语言结构体嵌入的陷阱:URL字段冲突

2025-09-22

Go语言的结构体嵌入特性允许组合类型,但需谨慎使用。当嵌入的结构体拥有相同的字段名时,例如多个嵌入的结构体都包含`URL`字段,Go语言编译器会选择最外层的字段。这段代码演示了这个潜在的陷阱,它实际输出了`abc.com`而不是预期的编译错误。因此,在使用结构体嵌入时,务必注意避免字段名冲突,以防止潜在的运行时错误。

AI编码代理的进化与挑战:从拨号上网到高速公路

2025-09-22
AI编码代理的进化与挑战:从拨号上网到高速公路

大型语言模型(LLM)驱动的AI编码代理的快速发展,带来了前所未有的生产力提升,但也带来了巨大的基础设施挑战。文章以拨号上网时代为类比,描述了AI编码代理从早期低效、不可靠的状态,到如今被广泛应用但仍面临高延迟和高成本问题的演变过程。作者认为,更高的tok/s(token/秒)速度是关键,并预测未来将出现更高级的、更少人工干预的AI编码工作流程,以及更灵活的定价模式以应对峰值负载。

开发

InfraAsAI:AI驱动基础设施即代码的革命

2025-09-22
InfraAsAI:AI驱动基础设施即代码的革命

InfraAsAI 是一款利用 AI 自动化基础设施即代码 (IaC) 管理的工具。它通过一个交互式画布和聊天机器人,让用户能够轻松定义任务,并自动生成多个 Pull Request。其核心功能包括:可视化编辑任务的画布、AI 代理自动生成 PR、多 PR 任务管理、可自定义规则和模板(例如提交信息和代码审查请求)、针对 IaC 文件系统优化的微调模型以及简单的 YAML 配置文件。它解决了公共语言模型在处理复杂多仓库组织的 IaC 文件系统方面性能不足的问题,极大提高了效率。

开发

探秘双连通分量:高效算法解决秘密运输难题

2025-09-22

特工夏洛特需要在不暴露的情况下,将包裹从线人爱丽丝运送到卧底鲍勃。问题在于,夏洛特的敌人伊芙会破坏一条地铁线路。文章深入探讨了如何利用双连通分量(BCC)算法,高效地找到无论伊芙破坏哪条线路都能保证运输安全的路线对,避免了暴力搜索的低效。文章详细解释了BCC的概念、与连通分量的异同,并提供了C++代码实现,最终高效解决了特工运输难题。

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

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

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

开发

用可导电的面团制作发光毛毛虫电路

2025-09-22
用可导电的面团制作发光毛毛虫电路

本文介绍了一个有趣的儿童STEM项目:用可导电的面团、LED灯和9伏电池制作发光毛毛虫。通过将不同颜色的面团滚成球并连接起来形成毛毛虫的身体,然后将LED灯插入面团间的缝隙中,连接到电池的两极,即可让毛毛虫亮起来。这个项目简单易懂,适合亲子互动,帮助孩子们了解简单的电路原理和导电性。

告别混乱的Git提交:一款新的Git工具助你整理代码

2025-09-22
告别混乱的Git提交:一款新的Git工具助你整理代码

作者开发了一款名为`what-changed-twice`的Git工具,用于解决在多次提交中修改同一文件的难题。该工具分析`git log`输出,找出多次修改的的文件,并列出相关的提交ID。这使得开发者可以轻松地识别需要合并或整理的提交,从而简化代码提交历史,避免冲突,提高效率。作者在文章中给出了使用示例和Perl代码。

开发 代码整理

AI教育:警惕技术狂潮下的盲目跟风

2025-09-22

一位拥有30年计算机科学教学经验的教授对AI在计算机科学教育中的过度应用提出了质疑。她认为,当前的AI热潮,特别是生成式AI,忽视了其负面影响,例如环境问题、数据盗窃和数据工作者权益。盲目采用AI工具可能扼杀学生的批判性思维和创造力,阻碍其全方位发展。教授呼吁在AI教育中保持谨慎,关注培养学生的综合能力,而非简单地追逐技术潮流。

开发

CartoKit: 程序化岛屿生成工具链最终篇

2025-09-22
CartoKit: 程序化岛屿生成工具链最终篇

本文是程序化岛屿生成系列的最终篇章,介绍了CartoKit工具链如何将生成的岛屿数据烘焙成紧凑的网格,并通过egui查看器进行可视化,最终导出其他工具可用的资源。该工具链包含三个主要部分:烘焙的地形数据(包含高程、湿度、生物群落和河流元数据);CPU调试渲染器和查看器(将数据转换为诊断图像);导出辅助工具(GLB导出、PNG截图和GIF生成)。整个过程高效且模块化,为进一步扩展提供了良好的基础。

开发

NPM安全最佳实践:抵御供应链攻击

2025-09-22
NPM安全最佳实践:抵御供应链攻击

本文总结了NPM生态系统中存在的安全风险,例如恶意软件、供应链攻击和钓鱼攻击等,并提供了多种安全最佳实践,包括固定依赖版本、覆盖传递依赖、禁用生命周期脚本、设置最小发布年龄、使用权限模型、减少外部依赖、启用双因素身份验证、创建权限受限的token以及生成来源声明等。文章还强调了审核、监控和安全工具的重要性,并建议使用私有包注册表以及关注维护者倦怠问题。

开发

nvmath-python:为Python生态系统带来NVIDIA数学库的强大功能

2025-09-22
nvmath-python:为Python生态系统带来NVIDIA数学库的强大功能

nvmath-python 将 NVIDIA 数学库的强大功能带入 Python 生态系统。该软件包旨在提供直观的 Python 式 API,让用户能够全面访问 NVIDIA 库在各种执行空间中提供的所有功能。nvmath-python 与现有的 Python 数组/张量框架无缝协作,专注于提供这些框架中缺少的功能。它允许访问底层 NVIDIA cuBLASLt 库的所有参数,其中一些参数在 NVIDIA C-API 库的其他封装中是不可用的。此外,它还支持自定义 FFT 函数的 prolog 和 epilog,并将其编译为 LTO-IR。

开发 数学库

Obsidian插件:Note Codes,赋予笔记唯一代码

2025-09-22
Obsidian插件:Note Codes,赋予笔记唯一代码

一个名为Note Codes的Obsidian插件可以为每个笔记生成一个4字符的唯一代码,方便在手写笔记或其他地方快速引用。代码生成基于笔记路径的SHA-256哈希值,并使用Base32编码。为了易于手写识别,代码避免使用容易混淆的字符。该插件开源,并提供协议处理程序,支持通过obsidian://note-codes/open?code=XX-XX打开指定代码的笔记。

开发 笔记管理

指针位操作:巧用闲置位,优化内存与性能

2025-09-22
指针位操作:巧用闲置位,优化内存与性能

64位指针拥有巨大的寻址空间,但现代CPU通常只使用48位,剩余位常常闲置。文章介绍了一种巧妙的技术:指针标记(Pointer Tagging),利用这些闲置位存储额外数据,例如类型信息或颜色标记。这在动态类型语言、树状数据结构和动态多态中尤为有效,不仅节省内存,还提升缓存命中率,显著改善性能。文章以C++代码为例,演示了如何实现指针标记,并探讨了其在抽象语法树中的应用,展示了其在运行时多态中的强大功能。

开发 指针标记

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

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

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

开发

乌克兰老式电脑模拟器:重温儿时游戏

2025-09-22

作者重温儿时在乌克兰使用的Fahivets-85电脑,并决定自己动手模拟它。他使用WebAssembly编写了一个模拟器,目前已能运行名为“Rain”的简单游戏。模拟器开发过程涉及到CPU指令集的实现、IO控制器模拟、键盘和显示器的模拟等。作者利用AI辅助代码生成,并逐步完善模拟器功能,最终成功运行游戏。虽然还有一些问题待解决,但这已经是一个令人印象深刻的成就。

开发

开发者奇遇记:Snarfus 调试指南

2025-09-22
开发者奇遇记:Snarfus 调试指南

一位开发者在使用 Snarfus 软件时遇到难题:fisterfunk 无法与 shamrock portal 通信。经过一番折腾,他找到了解决方案:连接 backside Snarfus stagnator 到 backside shamrock Klingon troglodyte emulater。教程详细描述了这个奇特的解决方法,包括一系列看似无意义的终端命令和文件路径,最终成功使 Snarfus 工作。

开发 奇技淫巧

使用OpenTelemetry和SigNoz监控Claude Code的AI编码助手

2025-09-21
使用OpenTelemetry和SigNoz监控Claude Code的AI编码助手

Claude Code等AI编码助手正成为现代开发流程的核心部分。然而,如何衡量和监控其使用情况成为了关键问题。本文介绍了如何利用OpenTelemetry和SigNoz构建可观察性管道,从而实现对Claude Code使用情况的可衡量性和可操作性。通过监控令牌使用情况、会话、请求以及性能趋势等指标,可以清晰地了解Claude Code如何塑造开发工作流程,并帮助团队在问题恶化之前发现问题,最终实现数据驱动的AI辅助编码扩展。

开发

仅千行代码的Zig操作系统:OS-1000-lines-zig

2025-09-21
仅千行代码的Zig操作系统:OS-1000-lines-zig

OS-1000-lines-zig是一个令人印象深刻的项目,它用不到一千行Zig代码构建了一个轻量级操作系统。这个单内核操作系统支持基本的进程和内存管理,并提供简单的命令行界面。开发者只需安装Zig编译器,即可轻松克隆、构建和运行该操作系统。项目代码结构清晰,包含内核实现、公共函数和构建脚本等组件,并支持测试和贡献。未来,该项目计划扩展进程管理、内存管理、命令行界面、网络和文件系统等功能。

开发

开源协同取证时间线分析工具Timesketch

2025-09-21
开源协同取证时间线分析工具Timesketch

Timesketch是一款开源的协同取证时间线分析工具。它允许你和你的合作者轻松组织和同时分析多个时间线。通过丰富的注释、评论、标签和星标,你可以为原始数据赋予更多意义。值得注意的是,虽然代码归Google所有,但这并非Google官方产品。

1 3 5 6 7 8 9 213 214