分类: 开发

NordVPN终于为Linux用户带来了图形界面

2025-05-14
NordVPN终于为Linux用户带来了图形界面

长期以来,NordVPN的Linux客户端仅提供命令行界面,使用体验欠佳。而竞争对手Surfshark和ExpressVPN早已推出图形界面。现在,NordVPN终于推出了自己的Linux图形界面,让用户可以通过点击操作连接、设置和主题偏好等,极大提升了易用性。新界面建立在原有命令行基础上,保留了安全性与可靠性,只是增加了用户期待已久的图形界面。大部分功能都可以在图形界面中轻松访问,只有少数高级工具仍需使用命令行。此次更新弥补了NordVPN在Linux用户体验上的不足,使其与其他平台体验保持一致。

开发

C++ 元编程技巧:优化 Variant 的访问性能

2025-05-14

本文探讨了如何利用 C++ 元编程技术优化 std::variant 的访问性能,以达到接近手工编写 switch 语句的效率。文章比较了几种方法,包括跳转表、调度表、宏、递归 switch 和短路折叠,并分析了它们的优缺点和编译器优化策略。最终,作者提出了一种结合短路折叠和 C++26 预期特性(扩展语句)的方案,实现了高效的泛型访问,避免了性能瓶颈。

开发 std::variant

Stack AI招募10倍工程师:构建AI赋能应用平台

2025-05-14
Stack AI招募10倍工程师:构建AI赋能应用平台

Stack AI,一家由两名MIT博士创立、YC和Google投资的AI公司,正在招聘10倍工程师。他们开发了一个无代码平台,整合了OpenAI、Anthropic等AI模型和多种数据源,旨在使人人能够构建AI应用。公司拥有超过8.5万用户和300多付费客户,寻求精通Python、数据库、AWS和容器化技术的工程师,参与构建可扩展的后端系统,并与AI模型集成。理想候选人应具备强大的问题解决能力和团队合作精神,并对AI充满热情。

开发 AI招聘

大型语言模型代码生成:简洁性与经济激励的冲突

2025-05-14
大型语言模型代码生成:简洁性与经济激励的冲突

作者发现大型语言模型(LLM)生成的代码冗长且低效,这与其基于 token 计费的经济模型有关。LLM 为了最大化 token 数量,倾向于生成冗余代码,即使这会影响代码质量。作者提出几种策略来应对这个问题,例如强制规划、严格的代码生成协议、基于 Git 的实验和修剪以及使用更便宜的模型。最终,作者呼吁 AI 公司调整经济激励机制,优先考虑代码质量而不是 token 数量,以促进更简洁高效的代码生成。

开发 经济激励

TwoFold:让文本文件像动态文件一样

2025-05-14
TwoFold:让文本文件像动态文件一样

TwoFold是一个命令行工具,它能让纯文本文件像动态文件一样工作。它结合了文本扩展器和模板引擎的功能,灵感源于Emacs Org-mode、Python Jupyter Notebooks和React JS。TwoFold通过处理文本文件,识别所有类似LISP/XML的标签,并将它们转换成有用的输出。它兼容XML和HTML文档,并且可以自定义标签标记。它可以监听文件的变化,允许在同一文件和位置进行实时协作,例如验证信息、计算统计数据或检查拼写错误。TwoFold支持多种文件类型,例如.txt、Markdown、Emacs Org、reStructured Text、HTML、XML和源代码文件,但不支持二进制文件。它使用Bun运行,用户可以轻松编写自己的标签并加载它们。

开发

用MetaPost绘制物理教材插图:一个自动化绘图解决方案

2025-05-14
用MetaPost绘制物理教材插图:一个自动化绘图解决方案

作者因需要绘制数百张物理教材插图而苦恼于传统矢量绘图软件的效率问题,最终选择MetaPost作为解决方案。MetaPost允许将图片定义为变量函数,方便调整布局和复用元素。文章详细介绍了作者使用MetaPost绘制各种形状(曲线、球体、管状物等)以及纹理的方法,并提供了相应的代码示例。尽管最终教材项目取消,作者仍将改进后的代码库开源,该库包含了绘制各种物理学相关图形的功能。

GNOME 48 的无障碍性改进:AccessKit、Orca 快捷键和更多

2025-05-14

GNOME 48 在无障碍性方面取得了显著进步。GTK 4.18 集成了 AccessKit 后端,首次实现了在 Windows 和 macOS 上的 GTK 应用无障碍访问。Wayland 上 Orca 屏幕阅读器的键盘快捷键支持也已完成,填补了重要的无障碍性缺口。此外,WebKitGTK 的无障碍性得到改进,使 GNOME Web 成为一个完全无障碍的沙盒化浏览器。新的无障碍工具 Elevado 也已发布,为开发者提供了探索和检查应用无障碍功能的新途径。许多小的改进也提升了 GTK 及相关库的无障碍性,例如改进文件选择器、列表框、按钮大小检测以及文本属性报告等。

开发

Git-Bug:颠覆式Git仓库问题管理工具

2025-05-14
Git-Bug:颠覆式Git仓库问题管理工具

Git-Bug是一款独立的、分布式的、离线优先的问题管理工具,它将问题、评论等作为对象嵌入到Git仓库中(而非文件!),允许你将其推送到或拉取自一个或多个远程仓库。它利用Git的去中心化架构,支持离线工作和无缝同步,并提供闪电般的快速搜索功能。此外,它还支持与GitHub和GitLab等平台的第三方桥接,以及灵活的CLI、TUI和Web浏览器界面。Git-Bug由Michael Muré创建,并由众多贡献者、支持者和赞助商共同维护,其代码遵循GPLv3或更高版本许可证。

开发 问题管理

NetBSD服务器与家族企业内斗:一场关于信任与技术的较量

2025-05-14
NetBSD服务器与家族企业内斗:一场关于信任与技术的较量

十六年前,作者受朋友委托帮助一个家族企业建立IT系统,以解决其混乱的财务状况。他搭建了基于NetBSD的服务器,整合了企业数据,但遭到了公司内部人员的强烈阻挠,此人试图通过清除服务器数据来掩盖财务问题。最终,作者凭借过往的渊源识破了阴谋,但服务器还是被毁坏。尽管如此,作者凭借提前备份的数据保护了企业信息,但最终还是决定离开这个家族企业,因为企业的管理层无力解决内部腐败问题。这个故事讲述了信任、技术和道德的冲突,以及有些问题无法解决的无奈现实。

开发

工程驱动型任务排序:更快交付更多价值

2025-05-14

本文介绍了一种工程驱动的任务排序方法,它能帮助团队更快地交付更多价值。传统上,产品经理根据PRD确定任务顺序,但工程师更了解任务的成本和依赖关系。更好的方法是,工程师根据价值、成本和可行性对任务进行排序,甚至通过重新定义解决方案来降低成本。例如,文中案例中,工程师通过发送周报替代构建复杂的仪表盘,先交付了部分价值,然后再处理更复杂的任务。这种方法显著提高了价值实现率,让团队在有限时间内创造更大的价值。

开发

GitHub 提升未认证请求的速率限制

2025-05-14
GitHub 提升未认证请求的速率限制

GitHub 为了增强平台安全性及稳定性,正在更新未经身份验证请求的速率限制。此举针对通过 HTTPS 克隆仓库、匿名访问 REST API 和从 raw.githubusercontent.com 下载文件等操作。最近 GitHub 发现 API 刮取活动增多,此更新旨在保护平台,确保全球开发者都能稳定可靠地使用 GitHub。未经身份验证的用户可能会遇到新的速率限制,但已认证用户将继续享有更高的速率限制。GitHub 建议使用身份验证以获得更一致和可靠的服务访问。

开发

基于SWIM协议和BadgerDB的分布式数据库复制方案

2025-05-14
基于SWIM协议和BadgerDB的分布式数据库复制方案

这篇文章描述了一种利用SWIM协议和BadgerDB增量备份功能实现分布式数据库复制的方案。通过Hashicorp的memberlist包提供的TCP Push/Pull机制,节点定期计算本地状态并发送给其他节点。远程节点合并远程状态和本地状态,触发复制过程。节点状态定义为其他节点的已知最新版本集合。当节点收到状态后,会向远程节点发送HTTP请求,并行同步auth,config和log数据库的增量备份,实现数据的实际复制。

开发 SWIM协议

重温经典:微软SAM语音合成器回归浏览器

2025-05-14

还记得Windows XP里那个标志性的机器人语音吗?现在,微软SAM文本转语音技术以JavaScript的形式重现!这个基于浏览器的版本完美复刻了Windows XP的经典语音,无需服务器处理,可离线使用。你可以自定义音高、速度等参数,创造出各种不同的声音效果,从娇小的精灵到巨大的机器人,尽情玩转这波怀旧风潮。

开发

Nextcloud Android应用上传功能受阻:谷歌拒绝访问权限

2025-05-14
Nextcloud Android应用上传功能受阻:谷歌拒绝访问权限

Nextcloud,一个自托管云平台,其Android应用自2024年中以来一直无法上传非媒体文件。谷歌以隐私为由拒绝恢复Nextcloud所需的访问权限,导致用户体验严重下降。Nextcloud团队表示已尝试与谷歌沟通,但未获得有效解决。此问题影响了Nextcloud用户的文件同步和上传功能,使其难以完全替代Google Workspace。

开发

macOS核心音频守护进程中的类型混淆漏洞利用

2025-05-14
macOS核心音频守护进程中的类型混淆漏洞利用

本文讲述了作者如何通过自定义模糊测试工具、动态检测和静态分析,发现并利用macOS核心音频守护进程(coreaudiod)中的一个高危类型混淆漏洞。作者采用知识驱动型模糊测试方法,结合模糊测试和手动逆向工程,最终发现该漏洞允许攻击者绕过沙箱限制。该漏洞已由苹果修复,CVE编号为CVE-2024-54529。

开发 类型混淆

黑铁匠:如何通过多租户服务器无服务器CI平台盈利

2025-05-14
黑铁匠:如何通过多租户服务器无服务器CI平台盈利

一家名为Blacksmith的YC初创公司,构建了一个用于CI工作负载的无服务器云平台。起初,他们依靠模拟来预测利润,直到发现多租户系统的经济效益。通过利用CI工作负载的峰值特性,Blacksmith能够有效地利用其服务器资源。大量短暂的CI作业(5到40分钟)以及客户分布在不同时区,导致服务器利用率呈现出波峰波谷,看似混乱却高效。Blacksmith采用数百台裸机游戏CPU,使用Firecracker虚拟化,按需创建和销毁微型虚拟机。更多客户意味着更多随机的活动,使整体运行更平稳,从而降低了每个作业的服务成本,提高了利润率。文章详细分析了不同利用率下的利润率,以及时区和地理位置对资源利用率的影响,最终证明了多租户模型的经济效益。

Halide相机应用:HDR模式的真相与单次拍摄HDR的革命

2025-05-14
Halide相机应用:HDR模式的真相与单次拍摄HDR的革命

Halide相机应用开发者深入探讨了HDR摄影的误区。传统的HDR模式(如iPhone的“HDR模式”)实际上是通过多张照片合成并进行色调映射,并非真正的HDR。这导致图像细节损失和人工痕迹。文章介绍了Halide的新功能:基于单张照片的HDR处理,借鉴了传统暗房技术“避让和加重”,让用户自主控制色调映射,保留更多细节,并提供多种HDR显示选项。同时,文章也讨论了HDR显示技术的发展现状及挑战。

开发 HDR摄影

acmsg:AI 驱动的 Git 提交信息生成器

2025-05-14
acmsg:AI 驱动的 Git 提交信息生成器

acmsg 是一个基于 Python 的命令行工具,利用 OpenRouter API 和 AI 模型自动生成 Git 提交信息。它分析暂存的 Git 代码变更,生成上下文相关的提交信息,支持多种 AI 模型,并允许用户编辑生成的提交信息。安装方便,支持 flake 和独立配置文件,首次运行会提示配置 OpenRouter API token。

开发

Rust编写的AV1解码器rav1d性能挑战赛:2万美元奖金等你拿!

2025-05-14
Rust编写的AV1解码器rav1d性能挑战赛:2万美元奖金等你拿!

一个名为rav1d的Rust编写的AV1解码器项目,其性能略逊于C语言编写的dav1d解码器。为了提升rav1d的性能,使其达到与dav1d相同的水平,项目团队发起了一场2万美元的性能挑战赛。参赛者可以通过优化rav1d的Rust代码、Rust编译器或Rust标准库来提升性能,但需遵守一些规则,例如不得修改底层汇编代码或引入非Rust代码。最终奖金将根据对性能提升的贡献大小进行分配。

开发

以太坊简化之路:迈向更简洁、更安全的协议

2025-05-14

本文探讨了以太坊简化协议的必要性及方法。作者认为,简化协议能提升安全性、降低开发成本、促进社区参与。文章提出了通过简化共识层(例如采用3-slot finality)和执行层(例如用RISC-V替换EVM)来实现这一目标。此外,文章建议共享擦除码、序列化格式和树结构等组件,以进一步减少协议复杂性。最终目标是让以太坊的关键代码简洁如比特币,提高其长期的可维护性和安全性。

开发 协议简化

Ash框架:快速搭建应用的预设方案

2025-05-14
Ash框架:快速搭建应用的预设方案

Ash是一个强大的应用开发框架,提供一系列预设方案,方便开发者快速构建应用。用户可以选择包含Phoenix LiveView、GraphQL、PostgreSQL等不同组件的预设,并根据需要后期添加其他功能,例如AI、财务、自动化等模块。即使是新手,也可以轻松上手,通过简单的命令行安装和PostgreSQL数据库快速启动项目。

改变我对编程语言认知的论文和博文

2025-05-14
改变我对编程语言认知的论文和博文

作者分享了一系列改变其对编程语言和编译器理解的论文和博文,涵盖垃圾收集、代码优化、寄存器分配、正则表达式引擎、机器学习、SSA 形式、编译器设计等多个方面。这些文章以其简洁性、创新性和实用性,为作者提供了新的视角和思路,例如使用Z3作为证明引擎,利用模糊测试发现bug,以及高效的表达式解析方法等。文章体现了作者在持续学习和探索编程语言领域的深度和广度。

开发

Mycelium:一种新型数据存储和传输格式

2025-05-14
Mycelium:一种新型数据存储和传输格式

Mycelium 是一种基于类型的数据存储和传输格式,支持引用、表达式、函数、类型等。其虚拟机 MVM 以简洁高效著称,所有值都是不可变的,并通过端口进行进程间交互。MycZip 则负责将 Mycelium 值编码为单个文件,而 Mycelium 网络协议 (MNP) 基于 QUIC,用于在对等节点之间传输数据,并缓存已传输的值以提高效率。Spore 语言则为 MVM 提供了易于使用的编程接口。

开发

GPU纹理Mipmap级别选择深度解析

2025-05-14

本文深入探讨了GPU在纹理采样过程中Mipmap级别选择机制的细节。作者从纹理混叠问题出发,解释了Mipmapping技术及像素导数(ddx()/ddy())的作用。通过分析GLES3.0规范和DirectX 11.3规范,结合实验结果,作者揭示了Mipmap级别选择与像素导数关系的复杂性,以及不同厂商GPU实现上的差异。文章还深入研究了椭圆变换和各向异性过滤对Mipmap级别选择的影响,并提供了相应的软件实现,最终与硬件实现进行了比较。

开发

用IoT设备让家人知道我在开会

2025-05-14

为了避免家人在关键时刻打扰,我制作了一个物联网设备“Tabajara”。它通过连接到Wi-Fi的ESP32和Arduino框架实现。当我的网络摄像头开启时,设备会点亮办公室门的LED面板(红色表示正在开会,蓝色表示未开会)。Python守护程序定期查询Apple的API以检查摄像头使用情况,并向ESP32发送相应的请求。这个简单的设备有效地解决了在家工作的会议被打扰的问题。

用Python和Sympy构建的交互式数学证明助手

2025-05-13
用Python和Sympy构建的交互式数学证明助手

一位开发者构建了一个基于Python和Sympy库的交互式数学证明助手,它能够半自动地证明涉及标量函数的渐近估计。该工具模仿Lean证明助手,支持线性算术和对数线性算术,并允许用户通过提供高级策略来引导证明过程。该助手目前以Python交互模式运行,但未来计划添加图形用户界面。开发者计划扩展该工具以处理更广泛的数学任务,例如函数空间范数的估计。

开发 Sympy

征服Rust:避开学习陷阱的实用指南

2025-05-13
征服Rust:避开学习陷阱的实用指南

本文作者总结了Rust学习者常犯的错误,并提供实用建议。核心在于转变思维模式,将编译器视为合作者而非敌人,积极利用其错误提示学习。作者建议从简单案例入手,逐步增加复杂度,熟练掌握所有权、生命周期等核心概念。此外,作者强调注重细节,阅读标准库文档,并通过实践和代码审查不断提升技能。

开发 开发技巧

Zig vs. Rust:内存安全性的深度比较

2025-05-13

本文深入比较了Zig和Rust在内存安全性方面的差异。Rust通过强大的编译时证明机制,几乎彻底消除了内存安全漏洞,而Zig虽然在C的基础上做了改进,例如使用了切片类型和边界检查,但仍然很容易出现内存安全问题,例如悬空指针和缓冲区溢出。作者通过自身经验和项目数据对比,论证了Rust在大型项目中的内存安全优势,但也指出Zig在某些特定场景,如Wasm沙箱环境下,可能具有应用价值。未来,Zig的成功可能取决于廉价运行时缓解措施的发展。

开发

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

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

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

开发
1 2 88 89 90 92 94 95 96 213 214